# 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
- python3-magic (opens new window)
- python-apt-common (opens new window)
- python3-apt (opens new window)
- apt-offline (opens new window)
# apt-offline 使用流程
- 先產生離線機器的 pkgs 清單
apt-offline set apt.sig
- 接著到線上機器去用 apt-offline 打包需要的安裝檔 (install 範例)
apt-offline set apt.sig --install-packages {PKG_1} {PKG_2}...
apt-offline get apt.sig --bundle apt-offline.zip
- 把下載好的 pkgs 打包過後傳到離線機器上安裝 (可以到 /var/cache/apt/archives 檢查)
apt-offline install apt-offline.zip
apt install {PKG_1} {PKG_2}
需要幾點需要注意
- apt-offline 跟 apt 指令互相對應 install、update、upgrade 三種,所以產生的 bundle 必須分開,也就是說
apt-offline set apt.sig --update --install-packages {PKG}
產生的 bundle,並不會打包 PKG 的安裝檔 - apt-offline 只是將檔案移至 cache 目錄底下,
apt-offline install
結束還是需要用 apt install 安裝對應的 pkgs - 打包之前,必須確認目前系統尚未安裝此 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