3

「ビルド マシン」とさまざまな「開発マシン」の間でバージョンが異なる Linux ソフトウェア パッケージのリストを表示する必要があります。これらはビルド VM から時間の経過とともに分岐する可能性があります。

「dpkg –l」を実行して、ゴールド VM と他のボックスにインストールされているパッケージのテキスト ダンプを取得してから、2 つのリストに対して「diff」や「awk grep」などを実行することで、かなりの距離を取得できますが、仕事用のスクリプトを書くよりも優れた仕事をするツールがすでにあるのではないかと思いました。

皆さんはどうやってこれをしますか?

ジャンピエール

4

1 に答える 1

8

パッケージのバージョンも比較するこのスクリプトをコーディングしました。

https://github.com/lepe/scripts/blob/master/compare_ubuntu_apt.pl

使用法:

1) 次のように、両方のコンピューターでパッケージ リストを生成します。

apt --installed list | tail -n+2 > that_server.lst

2) perl スクリプトを実行します。

./compare_ubuntu_apt.pl this_server.lst that_server.lst

結果: (例)

----------------------------------
 DIFFERENCES 
----------------------------------
 @ apparmor : 2.8.95~2430-0ubuntu5.2 -> 2.8.95~2430-0ubuntu5.3
 @ apt : 1.0.1ubuntu2.8 -> 1.0.1ubuntu2.10
 @ apt-transport-https : 1.0.1ubuntu2.8 -> 1.0.1ubuntu2.10
 @ apt-utils : 1.0.1ubuntu2.8 -> 1.0.1ubuntu2.10
 @ base-files : 7.2ubuntu5.2 -> 7.2ubuntu5.3
 @ bash-completion : 1:2.1-4 -> 1:2.1-4ubuntu0.1
----------------------------------
 MISSING IN this_server.lst
----------------------------------
 + acl : 2.2.52-1
 + acpid : 1:2.0.21-1ubuntu2
 + apport : 2.14.1-0ubuntu3.11
 + apport-symptoms : 0.20
 + at : 3.1.14-1ubuntu1
 + at-spi2-core : 2.10.2.is.2.10.1-0ubuntu1
 + attr : 1:2.4.47-1ubuntu1
 + autotools-dev : 20130810.1
----------------------------------
 MISSING IN that_server.lst
----------------------------------
 - apcupsd : 3.14.10-2build1
 - apcupsd-doc : 3.14.10-2build1
 - beep : 1.3-3
 - btrfs-tools : 3.12-1
 - discover : 2.1.2-5.2ubuntu1
于 2015-09-04T05:45:46.837 に答える