Ubuntu 22.04离线软件包仓库搭建、客户端配置及存储空间咨询
Ubuntu 22.04离线软件包仓库搭建、客户端配置及存储空间咨询
没问题,我来一步步帮你搞定Ubuntu 22.04离线仓库的搭建、客户端配置,还有存储空间的估算——都是实战过的方案,放心用!
一、搭建离线软件包仓库服务器
1. 安装必备工具
先在仓库服务器上安装所需的软件,用来下载包、生成索引和提供web服务:
sudo apt update && sudo apt install apache2 dpkg-dev apt-mirror -y
2. 配置apt-mirror下载源
编辑apt-mirror的配置文件,指定要下载的Ubuntu 22.04(代号jammy)源和存储路径:
sudo nano /etc/apt/mirror.list
把文件里默认的内容注释掉,替换成以下配置(按需调整要下载的组件,比如universe和multiverse如果不需要可以去掉):
# 设置下载包的存储根目录 set base_path /var/www/html/ubuntu # 要同步的Ubuntu 22.04源 deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse # 配置清理规则(可选) set clean http://archive.ubuntu.com/ubuntu set clean http://security.ubuntu.com/ubuntu
3. 开始批量下载软件包
运行apt-mirror开始同步,这个过程耗时取决于你的网络带宽,耐心等待就行:
sudo apt-mirror
4. 生成仓库索引文件
下载完成后,需要生成apt能识别的索引文件,否则客户端无法找到包。进入对应目录执行命令(以amd64架构为例,如果你用其他架构替换binary-amd64即可):
# 处理主仓库索引 cd /var/www/html/ubuntu/dists/jammy sudo dpkg-scanpackages main/binary-amd64 /dev/null | gzip -9c > main/binary-amd64/Packages.gz sudo dpkg-scanpackages restricted/binary-amd64 /dev/null | gzip -9c > restricted/binary-amd64/Packages.gz sudo dpkg-scanpackages universe/binary-amd64 /dev/null | gzip -9c > universe/binary-amd64/Packages.gz sudo dpkg-scanpackages multiverse/binary-amd64 /dev/null | gzip -9c > multiverse/binary-amd64/Packages.gz # 处理更新、安全、backports仓库的索引(重复上面的逻辑,替换目录即可) cd /var/www/html/ubuntu/dists/jammy-updates sudo dpkg-scanpackages main/binary-amd64 /dev/null | gzip -9c > main/binary-amd64/Packages.gz # 其他组件和仓库同理,依次执行
5. 启动web服务确保可访问
启动apache服务,让客户端能通过http访问仓库:
sudo systemctl start apache2 sudo systemctl enable apache2
你可以在服务器本地访问http://localhost/ubuntu,如果能看到仓库的目录结构,说明web服务正常。
二、客户端配置(5台机器通用步骤)
1. 备份原有源文件
先备份默认的源列表,防止配置出错后无法恢复:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2. 替换为离线仓库源
编辑源文件,把所有内容替换成你的离线仓库地址(把<服务器IP>换成仓库服务器的实际IP):
sudo nano /etc/apt/sources.list
写入以下内容:
deb http://<服务器IP>/ubuntu jammy main restricted universe multiverse deb http://<服务器IP>/ubuntu jammy-updates main restricted universe multiverse deb http://<服务器IP>/ubuntu jammy-backports main restricted universe multiverse deb http://<服务器IP>/ubuntu jammy-security main restricted universe multiverse
3. 测试离线仓库可用性
更新apt缓存,测试是否能正常识别离线仓库:
sudo apt update
如果没有报错,就可以正常使用apt install等命令从离线仓库安装软件包了。
三、离线仓库存储空间估算
存储空间的大小取决于你要同步的组件和更新内容:
- 如果同步完整的jammy仓库(main+restricted+universe+multiverse)加上所有更新、安全补丁、backports,amd64架构大概需要80-100GB的空间。
- 如果只同步
main和restricted(官方支持的免费开源包),空间需求会降到30-40GB左右。 - 注意:随着时间推移,官方会不断推送更新包,仓库的大小会逐渐增加,建议预留150GB以上的存储空间,方便后续同步新的更新内容。
备注:内容来源于stack exchange,提问作者OmiPenguin




