別のコンピュータへのオフラインインストールでDebianインスタンスにインストールされているパッケージのリストを取得する方法

別のコンピュータへのオフラインインストールでDebianインスタンスにインストールされているパッケージのリストを取得する方法

私はDebianインスタンスにパッケージマネージャとしてaptをインストールし、多くのパッケージをインストールしました。インターネット接続なしで別のシステムに同じパッケージをインストールしたいと思います。依存関係で並べ替えられたインストール済みパッケージのリストを作成し、別のコンピュータにインストールできるようにパッケージの.debをインポートする簡単な方法はありますか?

私の目標は、パッケージリストと.debファイルを再生成し、それを使用して更新することで他のコンピュータを更新できることです。

答え1

  1. インストールされたパッケージのリストを取得します。

     dpkg --get-selections '*' > /tmp/selections.txt
    
  2. インターネット接続可能なコンピュータにインストールされているパッケージを再ダウンロードするには:

    apt-get clean
    awk '$2=="hold" || $2 == "install" {print $1}' /tmp/selections.txt | 
      xargs -r apt-get -d -y reinstall
    

インストールされているパッケージのリストが大きすぎて1つのコマンドラインに表示されないようにするためにここで使用されます/var/cache/apt/archives/xargs

注:実行はapt-get cleanオプションです。.debにすでに存在するすべてのファイルが削除されます/var/cache/apt/archives。これは、単にインターネットではなくコンピュータにコピーする必要があるパッケージの数を最小限に抑えるためです(たとえば、以前のバージョン、削除されたパッケージなどがまだディレクトリに存在します)。欠点は、インストールされているすべてのパッケージがすでにアーカイブディレクトリにある場合でも再ダウンロードされることです。

  1. インターネットではなくコンピュータ/tmp/selections.txtにコピーします。/tmp/

  2. /var/cache/apt/archivesインターネット以外のコンピュータの同じディレクトリにすべてをコピーします。 scp、rsync、USBスティック、外付けハードドライブなどの方法は重要ではありません。重要なのは、/var/cache/apt/archivesターゲットマシンにコピーされることです。

  3. インターネットではなくターゲットコンピュータで実行します。

    dpkg --set-selections < /tmp/selections.txt
    apt-get dist-upgrade
    

apt-get dist-upgrade以前にターゲット コンピューターにはインストールされていたが、他のコンピューターにはインストールされていないパッケージを削除するには、次の手順を実行します。dpkg --clear-selections 今後ランニングdpkg --set-selections

dpkgおよびオプションの詳細については、マニュアルページを--get-selections参照してください。--set-selections--clear-selections

関連情報