当前位置: 首页 > news >正文

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

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


步骤 1:准备依赖工具

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

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

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

sudo mkdir -p /var/my-repo
cp /path/to/debs/*.deb /var/my-repo/

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

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

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

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

# 安装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,添加:

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

更新APT缓存:

sudo apt-get update

步骤 6:测试安装软件

sudo apt-get install <包名>

可选优化

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

    #!/bin/bash
    cd /var/my-repo
    dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
    
  2. 签名仓库(安全增强)
    使用GPG签名仓库(需配置密钥):

    apt-get install gnupg
    gpg --gen-key
    dpkg-scanpackages . | gzip -9c > Packages.gz
    gpg --armor --export <KEY-ID> > public.key
    
  3. 使用更专业的工具
    使用 reprepro 管理复杂仓库:

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

常见问题

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

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

相关文章:

  • 基于django美团美食销售数据分析与可视化系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • Redis 本地安装
  • 【Kafka】深入了解Kafka
  • 【文章写作】以数字素养筑基,绘治理现代化蓝图
  • CSS 用于图片的样式属性
  • STM32-汇编2、外设
  • EasyRTC嵌入式音视频通话SDK:微信生态支持、轻量化架构与跨平台兼容性(Linix/Windows/ARM/Android/iOS/LiteOS)
  • HarmonyOS 开发中条件渲染的选择:if/else 与取反操作的对比与实践
  • Chapter 4-16. Troubleshooting Congestion in Fibre Channel Fabrics
  • AcWing 838:堆排序 ← 数组模拟
  • (C语言)递归求整数的二进制(递归求法)(C语言教学)
  • VSCode创建VUE项目(三)使用axios调用后台服务
  • Android自动化测试终极指南:从单元到性能全覆盖!
  • [免费]SpringBoot+Vue城市交通管理系统【论文+源码+SQL脚本】
  • Visual Studio调试的技巧
  • Python第六章04:列表操作练习题
  • pie保护
  • 什么是 Cache Line?
  • 编译安装redis,systemtcl配置redis自启动,系统并发调优
  • 搭建ISCSI传输的配置与管理
  • 特朗普访中东绕行以色列,专家:凸显美以利益分歧扩大
  • 高波︱忆陈昊:在中年之前离去
  • 美元指数上涨超1%重返101上方,创1个月新高
  • 人民币对美元即期汇率盘中创半年新高,离岸市场升破7.2
  • 商务部就开展打击战略矿产走私出口专项行动应询答记者问
  • 印控克什米尔地区再次传出爆炸声