Имеются две машины:
, какой инструмент лучше всего выводит «набор», diff
вид пакетов установлено:
Получить список всех пакетов для каждого компьютера в виде текстовых файлов:
$ ssh server-a dpkg --get-selections | grep '\binstall
Использовать оболочку "set операции " для получения желаемых результатов:
$ comm -12 <(sort server-a.txt) <(sort server-b.txt) > both.txt
$ comm -23 <(sort server-a.txt) <(sort server-b.txt) > only-server-a.txt
$ comm -13 <(sort server-a.txt) <(sort server-b.txt) > only-server-b.txt
Просмотрите, сколько пакетов в каждом наборе:
$ wc -l *.txt
2238 both.txt
948 only-server-a.txt
89 only-server-b.txt
3186 server-a.txt
2327 server-b.txt
8788 total
Использовать оболочку "set операции " для получения желаемых результатов:
$ comm -12 <(sort server-a.txt) <(sort server-b.txt) > both.txt
$ comm -23 <(sort server-a.txt) <(sort server-b.txt) > only-server-a.txt
$ comm -13 <(sort server-a.txt) <(sort server-b.txt) > only-server-b.txt
Просмотрите, сколько пакетов в каждом наборе:
$ wc -l *.txt
2238 both.txt
948 only-server-a.txt
89 only-server-b.txt
3186 server-a.txt
2327 server-b.txt
8788 total
Использовать оболочку "set операции " для получения желаемых результатов:
$ comm -12 <(sort server-a.txt) <(sort server-b.txt) > both.txt
$ comm -23 <(sort server-a.txt) <(sort server-b.txt) > only-server-a.txt
$ comm -13 <(sort server-a.txt) <(sort server-b.txt) > only-server-b.txt
Просмотрите, сколько пакетов в каждом наборе:
$ wc -l *.txt
2238 both.txt
948 only-server-a.txt
89 only-server-b.txt
3186 server-a.txt
2327 server-b.txt
8788 total
Я только что написал этот сценарий, который сравнивает также версии пакетов (если вам не нужны версии, то то, что опубликовал rndrük, лучше):
https://github.com/lepe/ scripts / blob / master / compare_ubuntu_apt.pl
Использование:
1) Создать список пакетов на обоих компьютерах, например:
apt --installed list | tail -n+2 > that_server.lst
[ 118] 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