- Вопрос или проблема
- После чтения дублирующих меток:
- Окончательный ответ
- Ответ или решение
- 1. Поиск манифестов дистрибутивов
- 2. Использование файлов-источников ISO
- 3. Просмотр установленных пакетов на вашей системе
- Получение списка всех пакетов, установленных при инсталляции
- Просмотр истории установки пакетов
- 4. Восстановление стандартного состояния
- Заключение
Вопрос или проблема
У меня есть система, на которой неизвестное количество пакетов было удалено после установки. Я хотел бы понять, что было изменено в системе, ограничиваясь изменениями, контролируемыми APT. Я знаю, что в некоторых случаях пакеты, помеченные как auto
, были изменены на manual
. Мне не важно, были ли изменены отдельные файлы, я просто хочу знать, какие пакеты были установлены / удалены / помечены как ручные / помечены как автоматические.
С этой целью я хотел бы получить список пакетов, которые по умолчанию устанавливаются и помечаются как manual
в APT из одного образа распределения (.iso
).
Я понимаю, что выбор пользователя во время установки может повлиять на этот список. В идеале, что я ищу, это основной набор.
Если это невозможно, было бы полезно объяснить, почему это невозможно в ответе.
После чтения дублирующих меток:
Я попробовал читать здесь. Как найти вручную установленные пакеты?
Тем не менее, ни один из ответов на самом деле не отвечает на вопрос о том, какие пакеты были вручную установлены / удалены.
Как мне перечислить пакеты, установленные по умолчанию? ссылается на файл .manifest
, который, похоже, не существует в более поздних версиях. По крайней мере, я не могу его найти по переходу по ссылке. На самом деле, ответ, похоже, стал устаревшим.
Окончательный ответ
Зарытый в одном из комментариев есть ссылка на http://releases.ubuntu.com
Если вы перейдете к нужной версии, вы найдете файлы .manifest
. Я считаю, что это ближе всего к тому, чтобы найти ответ. Спасибо @karel за ваш комментарий.
Понимание какие пакеты помечены как ‘Manual’ на самом деле довольно просто: ВСЕ пакеты на установочном .iso помечены как установленные вручную.
Это обходной путь старой проблемы с дизайном APT: было слишком легко для пользователей непреднамеренно удалить всю свою систему вместо того, чтобы внести незначительное изменение, которое они намеревались сделать. Коренная причина заключалась в том, что ТОЛЬКО метапакет -desktop был помечен как “manual”, поэтому в момент, когда вы удаляли метапакет, чтобы изменить медиаплееры или запустить свой собственный файловый менеджер, огромные части установленной системы становились подходящими для автоматического удаления.
Вы все еще видите эту проблему сегодня, когда пользователи Минимального образа ошибочно удаляют свою целую настольную среду.
Найти список пакетов в .iso также довольно легко, хотя он не в самом удобном формате: список файлов, включая пакеты, находится на http://cdimage.ubuntu.com.
Например, если вы хотите список файлов (включая пакеты) в 17.10, вы хотите эти четыре файла.
Теперь ваш вопрос немного необычен поскольку вы хотите информацию; большинство людей просто хотят, чтобы APT исправил проблему. Имейте в виду, что решение, на котором вы сосредоточились (полный список пакетов в .iso), кажется немного XY-проблемой, поэтому давайте также поговорим о простых способах исправить явную основную проблему (много пакетов изменено) тоже:
Простой способ решить проблему обычно заключается в том, чтобы просто установить (или –переустановить) метапакет ubuntu-desktop
. Это одна из причин, по которой метапакеты существуют. Таким образом, еще один способ получить список изменений, которые нужно отменить (вместо полного списка пакетов iso) — это –симулировать apt –переустановку ubuntu-desktop
.
Возможно, есть другой способ сделать это, но я делаю это, посещая официальную страницу релизов Ubuntu, нажимая на ссылку для релиза Ubuntu, кликая на первую красную ссылку в списке, которая говорит (Ubuntu Desktop и Server) после ссылки, и открывая файл с расширением .manifest (например: ubuntu-16.04.3-desktop-amd64.manifest). Обычно я загружаю и сохраняю файл .manifest на своем жестком диске, вместо того чтобы открывать его в новой вкладке своего веб-браузера. Файл .manifest можно открывать локально в любом текстовом редакторе.
Некоторые из пакетов, перечисленных в файле .manifest, обычно используются только для установки Ubuntu, и эти файлы удаляются в ходе процесса установки Ubuntu. Также редактор разделов GParted удаляется во время установки Ubuntu, но его можно переустановить в Ubuntu с помощью sudo apt install gparted
.
Команда
$ gzip -cd /var/log/installer/initial-status.gz | grep "^Package:" > initialpackages.txt
создаст список всех пакетов, которые были установлены во время установки операционной системы, в файле с именем initialpackages.txt
в текущем рабочем каталоге.
Результат может быть неправильным после выполнения обновления версии.
Я думаю, что вам нужно использовать /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
, добавляет их к текущему history.log
и пропускает через grep, извлекая строки с apt[-get] install [и/или переустановить] и показывая остальную часть строки (-o флаг), что соответствует именам пакетов.
Это потребует небольших модификаций (например, с помощью sed
), если вы хотите только имена пакетов на отдельных строках; упражнение для читателя!
Стоит отметить, что менеджер пакетов synaptic (gksu synaptic
или kdesudo synaptic
) в разделе “статус” имеет список “установленных (вручную)”. Если вы отметите весь список для удаления [не применяйте это!!], вы сможете сохранить отмеченные изменения и получить список пакетов таким образом. Предостережение: это зависло synaptic
для меня (вероятно, рассчитывая удаления зависимостей).
Одним из вариантов может быть просмотр страницы релиза вашего дистрибутива (например, https://cdimage.ubuntu.com/ubuntu/releases/24.04.1/release/) файла манифеста (например, https://cdimage.ubuntu.com/ubuntu/releases/24.04.1/release/ubuntu-24.04.1-live-server-arm64+largemem.manifest)
Ответ или решение
Вопрос о том, где найти список пакетов, которые по умолчанию устанавливаются в дистрибутиве Ubuntu, является актуальным для многих пользователей, сталкивающихся с проблемами управления пакетами. Если вы хотите восстановить исходное состояние системы или понять, какие изменения были сделаны, я подготовил подробный ответ на данный вопрос, включая все необходимые аспекты.
1. Поиск манифестов дистрибутивов
Как вы уже упомянули, на сайте Ubuntu Releases можно найти файлы манифестов (manifest files) для различных версий Ubuntu. Эти файлы содержат списки пакетов, которые входят в стандартный набор для каждой версии:
- Перейдите на Ubuntu Releases.
- Найдите нужную вам версию дистрибутива и откройте ссылку на загрузку (например, для Ubuntu Desktop или Server).
- Найдите файл с расширением
.manifest
(например,ubuntu-24.04.1-live-server-arm64+largemem.manifest
), который можно скачать и открыть в текстовом редакторе.
2. Использование файлов-источников ISO
Другим источником информации о пакетах, входящих в ISO-образ, является cdimage.ubuntu.com. На этом сайте можно найти списки файлов и пакетов по различным версиям дистрибутивов, что также может помочь вам понять, какие пакеты были установлены по умолчанию:
- Загрузите нужные файлы из директории, соответствующей вашей версии дистрибутива.
- Откройте файлы в формате
.list
, где также будет содержаться информация о пакетах.
3. Просмотр установленных пакетов на вашей системе
Для анализа уже установленной системы и получения списка пакетов, которые были установлены по умолчанию, вы можете воспользоваться следующими командами:
Получение списка всех пакетов, установленных при инсталляции
gzip -cd /var/log/installer/initial-status.gz | grep "^Package:" > initialpackages.txt
Эта команда извлечет список всех пакетов, установленных во время первичной инсталляции, и сохранит его в файл initialpackages.txt
.
Просмотр истории установки пакетов
Вы можете просмотреть историю установки пакетов с помощью файлов в директории:
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline: apt(?:-get)? install (?!.*--reinstall)\K.*'
Эта команда покажет все пакеты, установленные через команду apt install
, что поможет понять, что было установлено или удалено после установки дистрибутива.
4. Восстановление стандартного состояния
Если вы хотите вернуть свою систему к исходному состоянию, другой простой способ — переустановить метапакет ubuntu-desktop
. Выполните следующую команду:
sudo apt install --reinstall ubuntu-desktop
Это действие должно восстановить большое количество пакетов, которые могли быть удалены.
Заключение
Получение информации о дефолтных пакетах вашего дистрибутива — это важный процесс для управления системой. Возможность обратиться к манифестам и историческим логам позволяет восстановить или оценить текущее состояние системы. Если вы столкнулись с дополнительными вопросами или проблемами, всегда полезно задать их сообществу или обратиться к официальной документации Ubuntu.