apt-离线

apt-离线

在没有直接互联网连接的隔离 IT 环境中,是否有推荐的流程能够安装 Ubuntu 软件包及其传递依赖项?

我能想到两个挑战 -

  1. 将每个感兴趣的包沿着其递归依赖项集捆绑起来,以便交付到隔离环境中

  2. 设置目标 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 版本相同。

先决条件

  1. apt-offine在您的在线主机上安装:

    sudo apt install apt-offline
    
  2. apt-offline从以下位置为您的隔离主机下载:

    https://packages.ubuntu.com/jammy/all/apt-offline/download

    确保将其替换jammy为您的隔离主机的实际代号。您可以使用 进行查询lsb_release -c

  3. 将下载的apt-offline软件包传输到你的隔离主机并安装它:

    sudo dpkg -i apt-offline_1.8.4-1_all.deb
    

更新

要更新隔离主机上的软件包列表:

  1. 在您的隔离主机上为该任务创建一个签名文件:

    sudo apt-offline set apt-offline.sig --update
    
  2. 将该文件移动到您的在线主机并下载文件以进行离线更新:

    apt-offline get apt-offline.sig --bundle bundle.zip
    
  3. 将捆绑包从在线主机移动到隔离主机并安装它:

    sudo apt-offline install bundle.zip
    

安装软件包

要在隔离主机上安装软件包,只需执行与更新相同的操作,但要为安装创建一个签名文件。例如对于软件包gitg++

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

相关内容