这个版本的Ubuntu配置离线源方式有点小差别
apt install -y --download-only 软件包名
bash
apt install --download-only sshpass chrony python3-openstackclient mariadb-server python3-pymysql rabbitmq-server memcached python3-memcache keystone glance placement-api nova-api nova-conductor nova-novncproxy nova-scheduler nova-compute neutron-server neutron-plugin-ml2 neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent neutron-openvswitch-agent openstack-dashboard -y
所有下载的软件包会被存储在 /var/cache/apt/archives/ 目录下。将这些 .deb 包移动到某个指定目录,例如 /opt/openstackpkg/
bash
mkdir -p /opt/openstackpkg/
mv /var/cache/apt/archives/*.deb /opt/openstackpkg/
创建仓库
bash
cd /opt/openstackpkg/
apt-ftparchive packages . > Packages
gzip -c Packages > Packages.gz
apt-ftparchive release . > Release
配置离线源;编辑 /etc/apt/sources.list.d/ 下的本地仓库文件,创建或编辑 offline.list
bash
vi /etc/apt/sources.list.d/offline.list
bash
deb [trusted=yes] file:/opt/openstackpkg ./
- deb [trusted=yes] 告诉系统信任该仓库中的软件包。
- file:/opt/openstackpkg ./ 指定本地仓库的路径。
测试,把Ubuntu的http源移开
bash
mv /etc/apt/sources.list.d/ubuntu.sources /root
bash
apt update
bash
root@huhy:/opt/openstackpkg# apt update
Get:1 file:/opt/openstackpkg ./ InRelease
Ign:1 file:/opt/openstackpkg ./ InRelease
Get:2 file:/opt/openstackpkg ./ Release [1,204 B]
Get:2 file:/opt/openstackpkg ./ Release [1,204 B]
Get:3 file:/opt/openstackpkg ./ Release.gpg
Ign:3 file:/opt/openstackpkg ./ Release.gpg
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
下载测试
bash
apt install rabbitmq-server -y
处理依赖问题(可选)
在离线环境中,如果安装时遇到依赖问题,可以使用以下方式解决:
手动安装依赖: 将所有需要的依赖项下载到离线机器并手动安装:
bash
dpkg -i /opt/openstackpkg/*.deb
修复依赖关系: 如果有依赖关系未满足,使用以下命令自动安装缺失的依赖:
bash
apt-get install -f
其他工具(可选)
为了简化离线软件包管理,可以使用 apt-offline 工具,它可以自动管理和解决依赖关系:
在离线机器上生成需要下载的软件包清单:
bash
apt-offline set /tmp/apt-offline.sig
在联网机器上下载所有需要的软件包:
bash
apt-offline get /tmp/apt-offline.sig --bundle /tmp/apt-offline.zip
在离线机器上安装这些软件包:
bash
apt-offline install /tmp/apt-offline.zip