У меня есть система, в которой после установки было удалено неизвестное количество пакетов. Я хотел бы понять, что было изменено в системе, ограничившись изменениями, которые контролируются APT. Я знаю, что в некоторых случаях пакеты с пометкой auto
были изменены на manual
. Меня не волнует, были ли изменены отдельные файлы, я просто хочу знать, какие пакеты были установлены / удалены / отмечены вручную / отмечены автоматически.
С этой целью я хотел бы получить список пакетов, которые будут установлены и помечены manual
в apt по умолчанию из одного образа дистрибутива ( .iso
).
Я понимаю, что выбор пользователя во время установки может повлиять на этот список. В идеале я ищу базовый набор.
Если это невозможно, то было бы полезно объяснить, почему это невозможно в ответе.
Я пробовал читать здесь. Как найти пакеты, установленные вручную?
Однако ни один из ответов на самом деле не отвечает на вопрос о том, какие пакеты были установлены / удалены вручную.
Как мне указать пакеты, установленные по умолчанию? относится к файлу .manifest
, который, похоже, не существует в более поздних выпусках. По крайней мере, я не могу найти его по клику. По сути, ответ кажется устаревшим.
В одном из комментариев есть ссылка на http://releases.ubuntu.com
Если вы перейдете к желаемой версии, вы найдете .manifest
файлов. Я считаю, что это лучшее, что я могу найти для ответа. Спасибо @karel за ваш комментарий.
Понять , какие пакеты помечены как «Ручные» , на самом деле довольно просто: ВСЕ пакеты в установочном .iso помечены как установленные вручную.
Это обходное решение старой проблемы с дизайном apt: пользователям было слишком легко невольно удалить всю систему вместо незначительных изменений, которые они намеревались внести. Основной причиной было то, что ТОЛЬКО метапакет -desktop был помечен как «ручной», поэтому в тот момент, когда вы удалили метапакет, чтобы сменить музыкальный проигрыватель или запустить собственный файловый менеджер, огромные куски установленной системы стали автоматически удаляться. [ 1110]
Вы все еще видите эту проблему сегодня, когда пользователи минимального изображения ошибочно удаляют всю среду рабочего стола.
Найти список пакетов в .iso также довольно просто, хотя и не в самом удобном формате: список файлов, включая пакеты, находится по адресу http: // cdimage .ubuntu.com .
Например, если вам нужен список файлов (включая пакеты) в 17.10, вы хотите эти четыре файлов .
Теперь ваш вопрос немного необычен , так как вам нужна информация ; большинство людей просто хотели бы решить проблему. Помните, что решение, к которому вы подключились (полный список пакетов в .iso), кажется чем-то вроде XY Problem , поэтому давайте также поговорим о простых способах решения кажущейся основной проблемы (многие пакеты изменены) тоже:
Самый простой способ решить проблему - это просто установить (или --reinstall) метапакет ubuntu-desktop
. Это одна из причин, по которой есть метапакеты. Таким образом, еще один способ получить список изменений, которые нужно отменить (вместо полного списка iso-пакетов), чтобы --simulate apt --reinstall из ubuntu-desktop
.
Возможно, существует другой способ сделать это, но способ, которым я делаю это, состоит в том, чтобы посетить официальную веб-страницу Релизов Ubuntu, нажать на ссылку для релиза Ubuntu, нажмите первый красный URL в списке, в котором говорится (Рабочий стол Ubuntu и Сервер) после ссылки, и откройте файл, который имеет .manifest расширение (пример: ubuntu-16.04.3-desktop-amd64.manifest). Я обычно загружаю и сохранил .manifest файл к своему жесткому диску, вместо того, чтобы открыть его на новой вкладке в моем веб-браузере. .manifest файл может быть открыт локально в любом текстовом редакторе.
Я думаю, что Вы хотите использовать /var/log/apt/history.log
и его друзья для предоставления изменений, которые были внесены:
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline: apt(?:-get)? install (?!.*--reinstall)\K.*'
(Измененный из источника)
Даст Вам все пакеты, которые были установлены в командной строке с помощью изменения apt-get install
.
Это получает заархивированные файлы в старом history.log
s добавляет их с током history.log
и проходит через grep, извлечение строк со способным [-получает] установка [и/или переустанавливает] и остальная часть показа строки (-o флаг), который составляет имя (имена) пакета.
Этому будет нужно немного модификации (например, с sed
) если Вы хотите просто имена пакета на отдельных строках; осуществление для читателя!
Стоит отметить что синаптический диспетчер пакетов (gksu synaptic
или kdesudo synaptic
) в "состоянии" раздел имеет "установленный (вручную)" список. Если Вы отмечаете целый список для удаления [не применяют его!!] необходимо смочь сохранить заметные изменения и получить список пакетов тот путь.Внимание: это заперлось synaptic
для меня (вычисление удалений зависимости, по-видимому).