web-dev-qa-db-ja.com

同じdebianパッケージを別のシステムにインストールする

システムにインストールされているDebianパッケージのリストをエクスポートし、それらの同じパッケージを新しいシステムにインストールするにはどうすればよいですか?

13
jes5199

バックアップするには:

Sudo dpkg --get-selections > /tmp/dpkglist.txt

復元するには:

Sudo dpkg --set-selections < /tmp/dpkglist.txt
Sudo apt-get -y update
Sudo apt-get dselect-upgrade

追加のオプションと情報については、この質問も参照してください: buntu、既存のマシンのように新しいマシンをセットアップする方法

サーバーインベントリの一部としてdpgklistをSVNにチェックインする毎日のcronjobで上記を実行しています。これにより、サーバー全体にインストールされたパッケージの適切な正確なインベントリを保持し、サーバーに特定のパッケージがないかどうかを確認するためにすばやく並べて比較することが簡単になります。

17
faultyserver

aptitudeもこのユースケースを満たし、他の方法ではできない「自動インストール」パッケージに関する情報を保持します。参照マシンで以下を実行します。

aptitude search -F '%p' '~i!~M' > package_list 

コピーpackage_list他のマシンに移動して実行

xargs aptitude --schedule-only install < package_list; aptitude install; 
10
Vihang D

これは良いアイデアであり、これを習慣にするなら、 apt-proxy を使用して1つのサーバーをセットアップすることもできます。

0
user17642

faultyserversの回答は、別のコマンドを実行した後でのみ機能しました http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html

Sudo apt-get install dselect Sudo dselect access Sudo dselect update

その実行前

Sudo apt-get dselect-upgrade

返されただけ

[...]
dpkg:警告:パッケージがデータベースの302行目にありません:xfonts-utils
dpkg:警告:不明なパッケージが見つかりました;これは、使用可能なデータベースが古く、フロントエンドメソッドを介して更新する必要があることを意味する場合があります
pi @ FHEM-new:/ tmp $ Sudo apt-get dselect-upgrade
パッケージリストを読み込んでいます...完了
依存関係ツリーを構築しています
状態情報を読み取っています...完了
0アップグレード、0新しくインストール、0を削除、0をアップグレードしない.

新しいRaspberry(Raspbian GNU/Linux 8(jessie))に古いRaspberry Pi(Raspbian GNU/Linux 7(wheezy)を実行)から同じパッケージをインストールしようとしていました。

0
adiuva