插件窝 干货文章 如何在Linux上设置本地镜像源

如何在Linux上设置本地镜像源

Ubuntu CentOS multiverse restricted 992    来源:    2025-04-15

在Linux上设置本地镜像源指南

设置本地镜像源可以显著提高软件包安装和更新的速度,特别是在企业环境或多台机器需要更新的情况下。以下是详细的设置步骤:

1. 准备工作

首先确保你有足够的存储空间(通常需要至少50GB空间用于完整镜像)和良好的网络连接。

2. 安装必要的工具

sudo apt-get update
sudo apt-get install -y apache2 nginx createrepo apt-mirror yum-utils

3. 设置APT镜像源(适用于Debian/Ubuntu)

3.1 配置apt-mirror

编辑配置文件:

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

3.2 运行镜像同步

sudo apt-mirror

3.3 配置Web服务器

sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu /var/www/html/ubuntu

4. 设置YUM镜像源(适用于RHEL/CentOS)

4.1 创建存储目录

sudo mkdir -p /var/www/html/centos
sudo chmod -R 755 /var/www/html/centos

4.2 同步镜像

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/

4.3 创建仓库元数据

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

5. 配置客户端使用本地镜像

5.1 对于APT系统(Debian/Ubuntu)

编辑/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

5.2 对于YUM系统(RHEL/CentOS)

创建/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

6. 设置自动同步

创建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

7. 验证设置

在客户端机器上运行:

# Ubuntu/Debian
sudo apt update && sudo apt upgrade

# CentOS/RHEL
sudo yum update

注意事项

  1. 首次同步可能需要较长时间和大量带宽
  2. 确保服务器有足够的存储空间
  3. 考虑设置防火墙规则限制访问(如只允许内网IP)
  4. 对于生产环境,建议设置HTTPS访问

通过以上步骤,你可以成功建立一个本地Linux软件仓库镜像源,显著提高软件包管理效率。