Могу ли я узнать, для какого именно пакета он установлен?
Итак, я могу увидеть, или он установлен вручную, или что он установлен как зависимость другого пакета? Или что он установлен как часть дистрибутива?
Быстрое решение состоит в том, чтобы ввести следующую команду в терминале:
aptitude why $package
или, если вас интересует только конечная причина:
aptitude why $package --show-summary
Заменить $ package с именем пакета, и вам может понадобиться сначала установить пакет aptitude
.
Вот вывод, который вы можете получить для aptitude why aspell --show-summary
Packages requiring aspell:
inkscape
Для более подробной информации вы запустите aptitude why aspell
. Ниже вы можете прочитать пример выходных данных следующим образом: «Вы вручную установили inkscape
, для которого требуется libgtkspell
, для которого требуется libenchantic2a
, для которого требуется aspell
». (Маркеры i
указывают на установленные пакеты; маркеры A
указывают на автоматически установленные пакеты.)
i inkscape Depends libgtkspell0 (>= 2.0.10)
i A libgtkspell0 Depends libenchant1c2a (>= 1.6.0)
i A libenchant1c2a Depends aspell-en | myspell-dictionary | aspell-dictionary | ispell-dictionary | hunspell-dictionary
i A aspell-en Depends aspell (>= 0.60.3-2)
Наконец, следующая команда
apt-cache rdepends --installed $package
перечисляет другие пакеты, установленные на вашем компьютере. которые напрямую зависят от $ package . Вы можете добавить опцию --recurse
, чтобы получить список всех пакетов, которые прямо или косвенно зависят от нее.
Да, вы можете, и это довольно очевидная команда, на самом деле. Предполагая, что вы установили aptitude, вы можете открыть тип объявления в окне терминала:
aptitude why package
. Это должно дать список пакетов, которые зависят от этого конкретного пакета. Если это пакет, установленный вручную, он скажет что-то вроде «Не удалось найти причину для установки пакета».
Вот простой способ, который не зависит от aptitude
, который 10.10 больше не поставляется по умолчанию.
Уведомление
Вам нужен root-доступ для запуска этих команд.
blockquote>Графически
Откройте Synaptic и попробуйте удалить его.
Если появляется диалоговое окно с просьбой удалить другие пакеты, это пакеты, которые (рекурсивно) зависят от него.
Из терминала
apt-get remove package_name_goes_here -s
Опять же, пакеты, которые будут удалены в результате, - это все те, которые (рекурсивно) зависят от него. (Параметр
-s
говоритapt-get
, что на самом деле не следует удалять пакет.)
Быстрое и краткое объяснение того, почему был установлен определенный пакет, можно узнать, набрав в терминале следующую команду (Applications -> Accessories -> Terminal
):
aptitude why <package-name>
Замените на имя пакета, который вы например, при наборе aptitude why libgoo-canvas-perl
выводится следующее:
i shutter Suggests libgoo-canvas-perl
Это в основном означает, что пакет shutter
в этом случае предложил установить libgoo-canvas-perl
. Затем, набрав aptitude why shutter
, я могу пройтись по цепочке зависимостей.
Однако, есть одна оговорка. Я часто замечаю, что aptitude находит наиболее правдоподобное объяснение ситуации, которая, возможно, не соответствует действительности, но тем не менее даст вам ключ к дальнейшему рассмотрению.
В моем случае shutter
предлагает libgoo-canvas-perl
- однако предлагаемые пакеты не устанавливаются автоматически по умолчанию. Тем не менее, это пробуждает мою память об «опыте» с невозможностью редактировать скриншоты с помощью shutter
, что привело меня к ручной установке ligbgoo-canvas-perl
Наконец, вы можете узнать, был ли пакет установлен автоматически ( значение, которое система управления пакетами определила как обязательное при рассмотрении зависимостей и рекомендаций других пакетов, которые вы просили установить), выполнив следующую команду.
aptitude show <package-name>
Это выведет строку, подобную приведенной ниже (3-я строка вывода):
Automatically installed: no
Для получения дополнительной информации запустите info aptitude
(в терминале) или посетите вики Aptitude. страница
Чтобы узнать , когда был установлен конкретный пакет, есть две опции:
Install
(учтите случай), чтобы получить список всех записей, касающихся установки. Тем не менее, это будет показывать только пакеты, установленные с использованием Synaptic Выполните следующую команду в терминале. Это будет искать в журналах dpkg записи истории установки. Однако существует максимальный предел количества этих журналов, поэтому, если искомый пакет был установлен давно, вы можете его не найти. Подробнее здесь
zcat -f /var/log/dpkg.log* | grep "\ install\ " | grep -i <package-name>