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

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

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

2
задан 26 June 2013 в 03:59

3 ответа

Вы могли сравнить список установленного пакета с ".manifest" файлом Вашего распределения,

Например, декларация 13.04/i386 может быть найдена здесь:

http://mirrors.mit.edu/ubuntu-releases/13.04/ubuntu-13.04-desktop-i386.manifest

Получить Ваши установленные пакеты:

#aptitude search ~i \!~M

Относительно настройки Вы, возможно, сделали существует инструмент, который может помогать Вам сравнить измененные конфигурационные файлы с информацией о контрольной сумме пакета: debsums

#debsums -ce 

(-e для проверки только конфигурационных файлов,-c только измененные файлы)

Редактирование:

пакеты, установленные в течение года, зарегистрированы /var/log/apt. Более старые журналы истории удалены logrotate. Я сделал тот сценарий для получения, установленный пакет (заботьтесь для не изменения awk шаблонов при копировании).

# cd /var/opt/log
#(zcat $(ls -rt history*gz); cat history.log ) | awk '
 /^Commandline: (apt-get install|synaptic|aptitude)/{ 
         cmdl=$0 
         getline
         if(/^Install|^Remove/) {
            print cmdl
            print
         }
  }' | less
2
ответ дан 26 June 2013 в 03:59

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

Если вы выполните

# aptitude search ~ i

, все будет работать.

0
ответ дан 26 June 2013 в 03:59

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

#!/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

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

0
ответ дан 26 June 2013 в 03:59

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

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