如何创建本地软件仓库 搭建yum/apt私有源指南

如何创建本地软件仓库 搭建yum/apt私有源指南
最新回答
不给糖吃就胡闹

2021-05-03 04:16:54

创建本地软件仓库的核心步骤是通过同步外部软件源至内网服务器,搭建HTTP服务实现私有分发,适用于离线部署、加速安装和版本控制。以下是针对Yum(RPM系)和APT(Debian/Ubuntu系)的详细搭建指南

一、Yum私有源搭建(RPM-based系统)
  1. 准备环境

    服务器需安装HTTP服务(如Nginx/Apache)和createrepo工具。

    示例安装命令(CentOS):yum install createrepo nginx -y

  2. 组织软件包

    下载或复制所需RPM包,按分类存放(如/var/www/html/repo/centos/7/os/x86_64)。

  3. 生成元数据

    进入RPM包目录,运行以下命令生成索引文件:createrepo .

    每次增删包后需重新执行此命令更新repodata目录。

  4. 配置HTTP服务

    Nginx示例配置:server { listen 80; server_name your_repo_server_ip; root /var/www/html/repo; location / { autoindex on; # 允许目录列表 }}

    重启服务生效:systemctl restart nginx

  5. 客户端配置

    创建.repo文件(如/etc/yum.repos.d/local.repo):[local-base]name=Local CentOS Basebaseurl=

    http://your_repo_server_ip/repo/centos/7/os/x86_64gpgcheck=0
    # 无签名时设为0,或导入GPG密钥enabled=1[local-extras]name=Local CentOS Extrasbaseurl=
    http://your_repo_server_ip/repo/centos/7/extras/x86_64gpgcheck=0enabled=1

    刷新缓存:yum clean all && yum makecache

二、APT私有源搭建(Debian/Ubuntu系)
  1. 准备环境

    安装必要工具:apt install dpkg-dev apt-utils gnupg -y

  2. 组织软件包

    按标准结构存放.deb包:/var/www/html/apt-repo/├── pool/│ └── (所有.deb包)└── dists/ └── stable/ ├── main/ │ └── binary-amd64/ └── Release

  3. 生成索引文件

    生成Packages.gz:cd /var/www/html/apt-repo/pooldpkg-scanpackages . /dev/null | gzip > ../dists/stable/main/binary-amd64/Packages.gz

    生成Release文件:cd /var/www/html/apt-repoapt-ftparchive release dists/stable > dists/stable/Release

  4. GPG签名(推荐)

    生成签名文件以增强安全性:gpg --default-key "你的GPG密钥ID" -abs -o dists/stable/InRelease dists/stable/Releasegpg --default-key "你的GPG密钥ID" -abs -o dists/stable/Release.gpg dists/stable/Release

  5. 配置HTTP服务

    确保Nginx/Apache可访问仓库目录(配置类似Yum源,需开启目录索引)。

  6. 客户端配置

    编辑/etc/apt/sources.list,添加以下内容:deb

    http://your_repo_server_ip/apt-repo
    dists/stable main

    导入服务器GPG公钥(若启用签名):apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "你的GPG密钥ID"

    更新软件列表:apt update

三、关键注意事项
  • 权限管理:确保HTTP服务目录可读,且客户端用户有访问权限。
  • 定期同步:通过脚本定期从公网源同步更新包,保持本地源时效性。
  • 版本控制:通过目录分类(如stable/testing)实现多版本管理。
  • 安全性:APT源强烈建议启用GPG签名,防止篡改;Yum源可通过gpgcheck=1强制校验。

通过以上步骤,可高效搭建离线可用的私有软件仓库,显著提升内网环境下的软件部署效率与可控性。