在麒麟系统(基于Ubuntu或Debuntu)的离线环境中创建本地APT仓库

在麒麟系统(基于Ubuntu或Debuntu)的离线环境中创建本地APT仓库,可以按照以下步骤操作:


步骤 1:准备依赖工具

bash 复制代码
# 安装生成仓库元数据的工具
sudo apt-get install dpkg-dev

步骤 2:收集所有需要的DEB包

将离线环境所需的.deb软件包(包括依赖包)复制到一个目录中,例如:

bash 复制代码
sudo mkdir -p /var/my-repo
cp /path/to/debs/*.deb /var/my-repo/

步骤 3:生成APT仓库元数据

bash 复制代码
cd /var/my-repo
# 生成 Packages.gz 文件
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

步骤 4(可选):配置HTTP访问

如果其他机器需要通过HTTP访问仓库:

bash 复制代码
# 安装Nginx
sudo apt-get install nginx
# 将仓库目录链接到Nginx的Web根目录
sudo ln -s /var/my-repo /var/www/html/myrepo
# 重启Nginx
sudo systemctl restart nginx

步骤 5:配置客户端使用本地仓库

在需要访问仓库的机器上,编辑 /etc/apt/sources.list,添加:

bash 复制代码
# 文件路径方式(仅本机)
deb [trusted=yes] file:/var/my-repo ./
# 或HTTP方式(其他机器)
deb [trusted=yes] http://<服务器IP>/myrepo ./

更新APT缓存:

bash 复制代码
sudo apt-get update

步骤 6:测试安装软件

bash 复制代码
sudo apt-get install <包名>

可选优化

  1. 自动化脚本

    创建脚本 update-repo.sh,自动更新元数据:

    bash 复制代码
    #!/bin/bash
    cd /var/my-repo
    dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
  2. 签名仓库(安全增强)

    使用GPG签名仓库(需配置密钥):

    bash 复制代码
    apt-get install gnupg
    gpg --gen-key
    dpkg-scanpackages . | gzip -9c > Packages.gz
    gpg --armor --export <KEY-ID> > public.key
  3. 使用更专业的工具

    使用 reprepro 管理复杂仓库:

    bash 复制代码
    sudo apt-get install reprepro
    mkdir -p /var/my-repo/conf
    # 创建配置文件 /var/my-repo/conf/distributions

常见问题

  • 依赖缺失 :确保所有依赖的.deb包已包含在仓库中。
  • 权限问题:确保仓库目录的读取权限(HTTP服务需开放访问)。
  • 路径错误 :检查 sources.list 中的路径是否正确。

通过以上步骤,您可以在离线环境中快速搭建一个APT仓库,支持软件包的本地分发和安装。

相关推荐
m0_738120724 分钟前
Solar月赛(应急响应)——攻击者使用什么漏洞获取了服务器的配置文件?
运维·服务器·安全·web安全·网络安全
咕噜签名分发冰淇淋7 分钟前
应用app的服务器如何增加高并发
运维·服务器
NotStrandedYet10 分钟前
信创国产Linux操作系统汇总:从桌面到服务器,百花齐放
linux·信创·国产化
爱喝水的鱼丶13 分钟前
SAP-ABAP:SAP ABAP OpenSQL JOIN 操作权威指南高效关联多表数据
运维·开发语言·数据库·sap·abap
特种加菲猫26 分钟前
从文件到文件描述符:理解程序与文件的交互本质
linux·笔记
懋学的前端攻城狮1 小时前
深入浅出Linux-01:系统化掌握基础操作
linux·后端
孙克旭_1 小时前
day064-kodbox接入对象存储与配置负载均衡
linux·运维·阿里云·负载均衡
forestqq2 小时前
zabbix平台无法删除已停用主机的处理案例
运维·服务器·zabbix
Java侠2 小时前
graylog6.3 docker-compose部署全流程
运维·docker·容器·graylog·docker compose
大锦终2 小时前
【Linux】环境变量
linux·运维·服务器