Я пишу инструкции для кого-то еще и хочу знать, нужно ли мне включить пару команд apt install
в свой фрагмент, чтобы сделать его полностью копируемым / вставляемым при новой установке Ubuntu. .
Как мне узнать, была ли данная программа включена в мою установку Ubuntu или я установил ее позже?
Они используют ту же версию Ubuntu, что и я, поэтому мне не нужно знать, была ли эта программа только начал быть предустановленным в определенной версии Ubuntu.
Простой способ определить, установлен ли пакет Настольным Установщиком Ubuntu, состоит в том, чтобы проверить, включен ли он в ubuntu-desktop
метапакет. Это - метапакет, который определяет то, что установит установщик:
Вы видите список непосредственных зависимостей с помощью команды: apt depends ubuntu-desktop
.
, Но что, если Ваш пакет не перечислен среди непосредственных зависимостей? Можно легко узнать путем тестирования пакета с Кв.
, Например, давайте моделируем удаление nautilus
(файловый менеджер Gnome). Мы будем, конечно, использовать эти --simulate
флаг; нет никакой потребности уничтожить нашу систему для ответа на этот простой вопрос. Вы видите ниже того удаления nautilus
также результаты в удалении ubuntu-desktop
. Это - прямое доказательство, которое nautilus
установлено Рабочим столом установщик Ubuntu:
$ apt remove nautilus --simulate
NOTE: This is only a simulation!
[...]
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
gnome-shell-extension-desktop-icons nautilus nautilus-share ubuntu-desktop
ubuntu-desktop-minimal
0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.
Remv ubuntu-desktop [1.440]
Remv ubuntu-desktop-minimal [1.440]
Remv gnome-shell-extension-desktop-icons [19.10.2-1]
Remv nautilus-share [0.7.3-2ubuntu3]
Remv nautilus [1:3.34.1-1ubuntu1]
Позволяют нам подробно остановиться на том примере двумя способами. Давайте спустим дерево зависимостей и попытаемся удалить подзависимость (nautilus-data
). Мы делаем это путем изменения с [1 111] до [1 112]. Кроме того, давайте использовать grep
для сокращения объемов производства. Вы видите, ниже которого это - эффективный способ протестировать любого (под-) зависимость [1 114] где угодно в цепочке зависимостей. nautilus-data
пакет установлен Настольным Установщиком Ubuntu:
$ apt autoremove nautilus-data --simulate | grep ubuntu-desktop
session-shortcuts tree ubuntu-desktop ubuntu-desktop-minimal
Remv ubuntu-desktop [1.440]
Remv ubuntu-desktop-minimal [1.440]
Позволяют нам посмотреть на случай с противоположным результатом. chrome
не зависимость [1 117]. Это было установлено когда-то позже. Удаление его не удалит ubuntu-desktop
:
$ apt autoremove chrome --simulate | grep ubuntu-desktop
(No output)
Способная метка showmanual... близко к тому, что Вы хотите, но она перечисляет вещи как обновления предварительно установленных вещей также. Поместите ниже командной строки в файл и выполните ее как сценарий:
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
Я не думаю, что существует любой сценарий или программа, которая делает то, что Вы хотите. О единственном способе сказать должен запустить Ubuntu живой USB и видеть, существуют ли какие-либо программы не на нем. Несколько программ не становятся установленными, как gparted, он идет 'живой', но не на установленной версии. Видели несколько вопросов как это.