在没有直接互联网连接的隔离 IT 环境中,是否有推荐的流程能够安装 Ubuntu 软件包及其传递依赖项?
我能想到两个挑战 -
将每个感兴趣的包沿着其递归依赖项集捆绑起来,以便交付到隔离环境中
设置目标 Ubuntu 服务器,使其不从互联网寻找软件包,而是使用 (1) 中的软件包,或者设置一个内部下载服务,目标服务器将使用该服务,而不是通常提供软件包的互联网服务器
非常感谢您的评论!
答案1
Apt 可以使用您本地文件系统上的存储库。
您需要创建 repo 并了解要在具有 Internet 访问和 apt-get 的计算机上安装的软件包。
apt-get -d install [packages]
mkdir /media/usb/MyRepo
cp -a /var/cache/apt/archives/*.deb /media/usb/MyRepo
dpkg-scanpackages /media/usb/MyRepo /dev/null > /media/usb/MyRepo/Packages
现在 MyRepo 可以充当存储库。将目录传输到您需要安装的系统(例如 USB 驱动器)。然后
echo "deb file:///media/usb/MyRepo ./" > /etc/apt/sources.list.d/myrepo.list
apt-get update
apt-get install [packages]
您还可以单独安装其他工具,例如apt-medium
用于共享缓存、apt-mirror
镜像存储库等。
答案2
apt-离线
您可以使用apt-offline
在隔离主机上安装软件包或更新/升级它。此工具非常方便,因为它不需要两台主机(在线/隔离)上的 Ubuntu 版本相同。
先决条件
apt-offine
在您的在线主机上安装:sudo apt install apt-offline
apt-offline
从以下位置为您的隔离主机下载:https://packages.ubuntu.com/jammy/all/apt-offline/download
确保将其替换
jammy
为您的隔离主机的实际代号。您可以使用 进行查询lsb_release -c
。将下载的
apt-offline
软件包传输到你的隔离主机并安装它:sudo dpkg -i apt-offline_1.8.4-1_all.deb
更新
要更新隔离主机上的软件包列表:
在您的隔离主机上为该任务创建一个签名文件:
sudo apt-offline set apt-offline.sig --update
将该文件移动到您的在线主机并下载文件以进行离线更新:
apt-offline get apt-offline.sig --bundle bundle.zip
将捆绑包从在线主机移动到隔离主机并安装它:
sudo apt-offline install bundle.zip
安装软件包
要在隔离主机上安装软件包,只需执行与更新相同的操作,但要为安装创建一个签名文件。例如对于软件包git
和g++
:
sudo apt-offline set apt-offline.sig --install-packages git g++
在隔离主机上导入捆绑包后,您可以apt install
照常运行:
sudo apt install git g++
升级
要升级隔离主机,只需执行与更新相同的操作,但要创建用于升级的签名文件:
sudo apt-offline set apt-offline.sig --upgrade
在隔离主机上导入捆绑包后,您可以apt upgrade
照常运行:
sudo apt upgrade