Как получить сводку установленных пакетов по репозиторию и увидеть отличия от чистой установки?

Как получить сводку установленных пакетов по репозиторию и увидеть отличия от чистой установки?

Я только что обновил несколько ПК до Ubuntu Trusty 14.04. Для этого я устанавливал все с нуля, чтобы получить чистую систему, оставляя только /home (и /etc для справки).

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

В общем, вот что мне хотелось бы иметь:

  1. Получить список всех установленных пакетов и для каждого из них указать репозиторий, из которого он был получен (если доступен). По сути, это будет список apt-cache policyдля каждого пакета, но сведенный в аккуратный список.

  2. Для пакетов из «неофициальных источников» — указание, доступна ли версия из официальных источников.(Я имею в виду репозиторий, указанный в /etc/apt/sources.list).

    Иногда я устанавливал пропатченные пакеты от сторонних разработчиков, и этот пакет не обновляется из-за конфликтующего номера версии. Я хочу иметь список, который подскажет мне, имеет ли смысл откатываться к официальной версии.

  3. Список всех файлов в файловой системе, поступивших из установленного пакета (включая файлы конфигурации), но которые были впоследствии изменены.

  4. Список всех файлов в файловой системе (исключая /home и, возможно, /etc), которые не являются файлами установленного пакета..

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

решение1

На мой вопрос уже частично дан ответ наКак получить список устаревших пакетов?.

Ответы предполагают использование

apt-show-versions | grep 'No available version'   # Show all package not coming from repo
aptitude search '~o'                              # Similar

Я думаю, мы тоже можем сделать:

apt-show-versions | grep -v uptodate              # All packages that are not up-to-date

Это приведет к появлению пакетов, которые не являются актуальными, т. е. пакетов, которые можно обновить из включенных репозиториев, или пакетов, не поступающих из таких репозиториев.

Чтобы получить список всех доступных версий таких пакетов, мы можем сделать следующее:

apt-show-versions -a $(apt-show-versions | grep -v uptodate | sed -r 's/:.*//')

Я также нашел вопрос, ссылающийся на deborphan -a(Как составить список установленных пакетов в apt, которые не поддерживаются репозиторием?)

deborphan -a             # List all packages that have no reverse dependencies

Итак, подведем итог: у меня есть некоторые ответы на пункты 1 и 2, но я все еще ищу ответы на пункты 3 и 4:

  1. apt-show-versionsхороший ответ
  2. То же самое, одна из комбинаций команд выше. Ключевым шагом здесь, конечно, является то, что сначала нужно убедиться, что в /etc/apt включены только официальные репозитории.
  3. ?
  4. ?

Связанный контент