私の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 update
。apt-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スティックにコピーしてオフラインコンピュータに転送できます。