更新されたリストを受け取り、オフラインコンピュータにインポートするにはどうすればよいですか?

更新されたリストを受け取り、オフラインコンピュータにインポートするにはどうすればよいですか?

私のPCの1つがインターネットに接続されておらず、Ubuntuがインストールされており、最新バージョンにアップグレードしようとしました。最新の更新リストを入手すると、apt-get --print-uris install <package>パッケージと依存関係を公開してダウンロードしてURLを簡単に入手できることがわかりました。インターネットが接続されている他のコンピュータと接続し、オフラインコンピュータに移動してインストールします。その前に更新リストをインポートしてオフラインコンピュータにインポートする方法も知りたいです。

apt-get --print-uris updateマイオフラインコンピュータには、このようなものがリストされています'http://security.ubuntu.com/ubuntu/dists/focal-security/main/cnf/Commands-amd64.xz' security.ubuntu.com_ubuntu_dists_focal-security_main_cnf_Commands-amd64。このパッケージをダウンロードする必要がありますか?オフラインコンピュータで動作させるにはどうすればよいですか?

答え1

良い質問です。鶏が先か卵が先かの問題です。--print-uris最新のパッケージのリストがなければ、便利なものを出力する方法はありません。

ネットワーク接続されたシステムがsources.listオフラインシステムと同じ構成を持つ場合そして同じパッケージがインストールされ、既知のいくつかのパッケージをインストールしてからそのパッケージをUSBスティックにダウンロードすると機能しますapt-get updateapt-get --print-uris install PACKAGES

それ以外の場合は、最新のパッケージの完全なリストをオフラインシステムに返す必要があります。

パッケージリストはに保存されているため、コピーまたは/var/lib/apt/lists/コピーする必要があります。

apt updateインターネットが接続されているコンピュータで実行し、パッケージリストをUSBスティックにコピーしてオフラインコンピュータに転送できます。

おおよそ次のようになります。

インターネットに接続されたマシンから:

mount "$USB_DEVICE" /mnt
mkdir -p /mnt/lists/

apt update
cp /var/lib/apt/lists/* /mnt/lists/

umount /mnt

を実行すると、cpサブディレクトリ(たとえば..../partial)をコピーできないという警告が表示されることがあります。これらの警告は重要ではありません。無視してください。

オフラインマシンから:

mount "$USB_DEVICE" /mnt
cp /mnt/lists/* /var/lib/apt/lists/

apt-get --print-uris dist-upgrade > /mnt/URIs.txt

umount /mnt

これで、URIs.txtを含むUSBスティックをインターネットに接続されているコンピュータに再インポートしてパッケージファイルのダウンロードを開始し、USBスティックにコピーしてオフラインコンピュータに転送できます。

関連情報