设置本地镜像源可以显著提高软件包安装和更新的速度,特别是在企业环境或多台机器需要更新的情况下。以下是详细的设置步骤:
首先确保你有足够的存储空间(通常需要至少50GB空间用于完整镜像)和良好的网络连接。
sudo apt-get update
sudo apt-get install -y apache2 nginx createrepo apt-mirror yum-utils
编辑配置文件:
sudo nano /etc/apt/mirror.list
示例内容:
############# config ##################
#
set base_path /var/spool/apt-mirror
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu focal-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
clean http://archive.ubuntu.com/ubuntu
sudo apt-mirror
sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu /var/www/html/ubuntu
sudo mkdir -p /var/www/html/centos
sudo chmod -R 755 /var/www/html/centos
sudo reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/centos/
sudo reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/centos/
sudo reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/centos/
sudo createrepo -g comps.xml /var/www/html/centos/base
sudo createrepo -g comps.xml /var/www/html/centos/updates
sudo createrepo -g comps.xml /var/www/html/centos/extras
编辑/etc/apt/sources.list
:
deb http://[your-server-ip]/ubuntu focal main restricted universe multiverse
deb http://[your-server-ip]/ubuntu focal-security main restricted universe multiverse
deb http://[your-server-ip]/ubuntu focal-updates main restricted universe multiverse
deb http://[your-server-ip]/ubuntu focal-backports main restricted universe multiverse
创建/etc/yum.repos.d/local.repo
:
[local-base]
name=Local CentOS Base
baseurl=http://[your-server-ip]/centos/base
gpgcheck=0
enabled=1
[local-updates]
name=Local CentOS Updates
baseurl=http://[your-server-ip]/centos/updates
gpgcheck=0
enabled=1
[local-extras]
name=Local CentOS Extras
baseurl=http://[your-server-ip]/centos/extras
gpgcheck=0
enabled=1
创建cron任务定期更新镜像:
sudo crontab -e
添加以下内容(每天凌晨2点同步):
0 2 * * * /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
对于YUM系统:
0 2 * * * /usr/bin/reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/centos/ && /usr/bin/createrepo -g comps.xml /var/www/html/centos/base
在客户端机器上运行:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade
# CentOS/RHEL
sudo yum update
通过以上步骤,你可以成功建立一个本地Linux软件仓库镜像源,显著提高软件包管理效率。