Pack Debian packages with apt-offline

# Pack Debian packages with apt-offline

最近遇到對方要求需要在無網路的環境下進行安裝 Package,簡單的方式可以一個一個去找到需要的安裝檔,但為了節省時間,我們希望這個流程能盡量簡化,在網路上找到了 apt-offline 的工具,做個筆記備忘。

# 離線機器安裝 apt-offline 跟相依跟相依的相依

環境 Ubuntu 20.04 LTS * 2

​ 下載後使用 dpkg -i 進行安裝 e.g. dpkg -i ./apt-offline_1.8.2-1_all.deb

# apt-offline 使用流程

  1. 先產生離線機器的 pkgs 清單
    • apt-offline set apt.sig
  2. 接著到線上機器去用 apt-offline 打包需要的安裝檔 (install 範例)
    1. apt-offline set apt.sig --install-packages {PKG_1} {PKG_2}...
    2. apt-offline get apt.sig --bundle apt-offline.zip
  3. 把下載好的 pkgs 打包過後傳到離線機器上安裝 (可以到 /var/cache/apt/archives 檢查)
    • apt-offline install apt-offline.zip
  4. apt install {PKG_1} {PKG_2}

需要幾點需要注意

  1. apt-offline 跟 apt 指令互相對應 install、update、upgrade 三種,所以產生的 bundle 必須分開,也就是說apt-offline set apt.sig --update --install-packages {PKG} 產生的 bundle,並不會打包 PKG 的安裝檔
  2. apt-offline 只是將檔案移至 cache 目錄底下,apt-offline install 結束還是需要用 apt install 安裝對應的 pkgs
  3. 打包之前,必須確認目前系統尚未安裝此 pkgs,不然 apt-offline 不會去下載對應的 pkgs

# references

  • http://manpages.ubuntu.com/manpages/bionic/man8/apt-offline.8.html

  • https://wiki.debian.org/SecureApt

  • https://richard0610.medium.com/linux-apt-%E7%9A%84%E9%9B%A2%E7%B7%9A%E5%AE%89%E8%A3%9D-43c04abb49d4