Сравнение моей версии с чистой установкой

Я использую и обновляю Ubuntu с версии 9. Конечно, у меня теперь 13.04 и после установки чистого 13.04 на другой компьютер, я заметил немало отличий (plymouth, lightdm, некоторое программное обеспечение ведет себя по-разному , и т.д.). Я сделал немало настроек за этот период, поэтому, вероятно, из-за этого.

Так что мне интересно, есть ли способ увидеть, что отличает моя и чистая версия. Не полный список файлов diff, но, возможно, различия в программном пакете (синаптика?) Или что-то, что будет легче читать и сравнивать. Есть ли способ?

1
задан 26 June 2013 в 04:59

2 ответа

Следующий сценарий может использоваться для сравнения списка установленного пакета с файлом .manifest для распространения. Я разработал его с помощью «ubuntu-16.04.1-desktop-amd64.manifest» против экземпляра LTS Ubuntu 16.04.1, имеющего количество добавленных и удаленных пакетов.

#!/bin/bash

# The first parameter to this script is the manifest file name.

# Take the first column of the manifest. This is the name of the
# package without version information.
cut --fields=1 $1 | \
    sort > \
         manifestpkglist.tmp

# Get the list of packages installed on this sysem. Packages with
# deinstalled status are ignored. Only the first column of the output
# having the package names is considered.
dpkg --get-selections | \
    grep --invert-match deinstall | \
    cut --fields=1 | \
    sort > \
         installedpkglist.tmp

# Report the differences.
diff --side-by-side \
     --suppress-common-lines \
     manifestpkglist.tmp \
     installedpkglist.tmp

# Remove the intermediate files.
rm --force \
   manifestpkglist.tmp \
   installedpkglist.tmp

Сценарий принимает файл манифеста как вход. Чтобы запустить его, сделайте исполняемый файл сценария $ chmod u+x manifest-diff.sh и выполните, передав имя файла манифеста в качестве первого параметра: $ ./manifest-diff.sh ubuntu-16.04.1-desktop-amd64.manifest

Ограничение этого скрипта заключается в том, что он не делает различия между пакетами которые были явно установлены, и те, которые были добавлены для выполнения зависимостей. Предположительно, такая информация доступна в системе, поскольку это необходимо для функции autoremove менеджера пакетов. Лучший сценарий будет включать эту информацию.

2
ответ дан 24 May 2018 в 20:39
  • 1
    Довольно круто, спасибо! Я вернусь, когда вернусь домой. – Shomz 14 August 2016 в 21:37

По какой-то причине шаблон «! ~ M» отозвал шаблон «~ i», поэтому я получил все пакеты (включая никогда не установленные).

, если вы делаете [!d1 ]

# aptitude search ~ i

все работает.

1
ответ дан 24 May 2018 в 20:39
  • 1
    на bash '!' должен каким-то образом сбежать. Вы пытались «! ~ M» или \! ~ M? – Emmanuel 27 June 2013 в 13:32
  • 2
    Да, даже сбежал с \ это не сработало. Но в любом случае наличие метапакетов в списке не так уж плохо. – Hatredman 6 July 2013 в 20:08

Другие вопросы по тегам:

Похожие вопросы: