使用 apt-mirror 搭建本地镜像源

使用 apt-mirror 搭建本地镜像源

有时候遇上网络拉闸,或是遇到源维护,情况比较紧急的时候下载速度能把人急死,于是有了搭建本地镜像源的想法

下文将展示如何使用 apt-mirror 和 nginx 搭建 Debian Buster 的 apt 镜像源,也适用于其他 Debian 发行版

环境

  • Debain 10
  • 磁盘空间至少分配 100G
    • 空间大小取决于想要镜像的源,如果只镜像 main 源,则至少预留 100G 空间
    • 如果还要同步源文件、系统更新包等,则还需继续增加磁盘空间,同步 main 源的源文件,则至少要 200G
    • 关于 Linux 磁盘扩容可以查看 如何无损扩展 Debian 硬盘分区

参考

步骤

以下指令默认在 root 下执行,使用其他用户请酌情加 sudo

apt-mirror 拉取 deb 包

以下步骤由于耗时较长,强烈建议在 screen 下执行,在 apt-mirror 下载的时候配置 nginx

  1. 安装 apt-mirror
    • 执行
      apt install apt-mirror
  2. 编辑 apt-mirror 配置文件
    • 配置文件位于 /etc/apt/mirror.list使用 apt-mirror 搭建本地镜像源这里我只是同步了 main 源
    • 强烈建议使用阿里云等其他云厂商的公共源,使用中科大等源速度比较慢,而且容易出现下载错误,导致其他机器安装过程中找不到依赖包
  3. 拉取远程包
    • 执行
      # 使用 apt-mirror 用户避免出现权限错误
      su apt-mirror
      apt-mirror

      等待 apt-mirror 下载远程包

      使用 apt-mirror 搭建本地镜像源

    • 下载的内容会被存储在 /var/spool/apt-mirror/mirror/[你选择的源地址]/debian/ 下
    • 下载完毕后,可以执行 /var/spool/apt-mirror/var/clean.sh 自动清除不需要的文件
  4. (可选)如果需要定时更新包,可以将 apt-mirror 指令写入 crontab

nginx 启动 http 服务

同步远程源之后还需要启动一个远程传输服务来允许其他机器访问本机器的本地源,这里选择 nginx 搭建 http 服务

  1. 新建软链接
    • 由于下载位置位于 /var/spool/apt-mirror/mirror/[你选择的源地址]/debian/,而 nginx 根目录通常在 /var/www,所以新建下载目录到 /var/www 的软链接
      ln -s /var/spool/apt-mirror/mirror/[你选择的源地址]/debian /var/www
  2. 安装 nginx
    apt install nginx
  3.  编辑配置文件
    • 删除 nginx 默认页面
      rm /etc/nginx/sites-enabled/default
    • 新建配置文件
      vim /etc/nginx/sites-available/mirror
      
      # 写入以下内容
      server {
          listen 80;
          server_name _;
          location / {
              root /var/www;
              autoindex on;
          }
      }
  4. 测试并重载 nginx
    nginx -t
    nginx -s reload
  5. 访问 IP + 端口就可以看到下载的本地包使用 apt-mirror 搭建本地镜像源

效果

使用 apt-mirror 搭建本地镜像源在另一个机器上设置源地址

使用 apt-mirror 搭建本地镜像源更新包信息

使用 apt-mirror 搭建本地镜像源安装 nginx

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据