4

Каков лучший инструмент, который для любого данного пакета, по возможности, обеспечивает следующую информацию:

  • Для чего используется пакет?
  • Когда это было установлено?
  • Был ли этот пакет установлен вручную или он требовался другим пакетом?
  • Существуют ли в настоящее время какие-либо пакеты, которые зависят от этого пакета, то есть что-то сломается, если он будет удален?

2 ответа2

4

Это большой вопрос. Вы могли бы подумать, что был бы один хороший, удобный инструмент, чтобы сказать вам такие вещи, но я этого не знаю. Я пойду один за другим и дам свои лучшие предложения.

  1. Для чего используется пакет?
  2. Когда это было установлено?
  3. Был ли этот пакет установлен вручную или он требовался другим пакетом?
  4. Существуют ли в настоящее время какие-либо пакеты, которые зависят от этого пакета, то есть что-то сломается, если он будет удален?
  1. В командной строке aptitude show package или apt-cache show package предоставит описание пакета, а также много другой информации. Synaptic позволяет искать элемент различными способами и предоставляет описание пакета. (Описания, которые вы получаете от всех этих методов, идентичны. Они все получают информацию из одного места в .deb, я полагаю.)

  2. Такая простая вещь, но кроме копания в логах, я не могу придумать, как это сделать. Synaptic, похоже, не хранит эту информацию в качестве метаданных. (Это сделало бы большую ошибку в списке желаний.) Вот один из способов сделать это:

    zgrep package /var/log/dpkg*
    

    Это немного глупо, и это даст много выходных данных, но также должно дать вам желаемую дату. (Вам нужен zgrep так как старые журналы будут архивироваться в архиве.) Кстати, вы должны быть пользователем root даже для поиска логов dpkg .

  3. Если вы запускаете aptitude show package для установленного пакета, установите флажок «Автоматически установлен». Если он говорит да, он был введен как зависимость какого-то другого пакета. (Для записи, есть вещи, которые вы можете сделать, чтобы вручную изменить этот параметр. То есть вы можете пометить пакет, который будет выглядеть установленным вручную, даже если он фактически был установлен как зависимость. Но по большей части результаты здесь должны быть действительными.) Вы также можете фильтровать поиски Synaptic для поиска объектов, установленных как зависимости.

  4. Грубый способ проверить это:

    aptitude -s remove package
    

    Флаг -s имитирует команды. Вы можете запустить такую команду как обычный пользователь, и нет никакой опасности нанести вред вашей системе. Это позволяет вам легко увидеть, что будет делать предложенное действие. Нужно иметь в виду, что такая проверка покажет вам грубую поломку, но не приведет к более широким ошибкам. Я имею в виду, что вы можете удалить пакет Foo, не нарушая вашу систему, но это может серьезно ограничить полезность пакета Bar. В общем, пакеты объединяются с помощью рекомендаций, чтобы предотвратить это, но это стоит иметь в виду. Вы также можете искать зависимости и обратные зависимости, используя apt-cache , но я считаю, что симуляция запуска - самый яркий способ увидеть, что произойдет.

Еще один общий совет по поиску для Aptitude. В командной строке вы можете использовать эти поиски, чтобы быстро увидеть, что вы установили по выбору, а не то, что было установлено автоматически, как зависимость чего-то другого:

aptitude search '~i !~M' # Find things not installed as something else's dependency
aptitude search '~i ~M'  # Find things installed as something else's dependency
1

В Руководстве пользователя Debian есть раздел, посвященный APT, в котором описаны команды для поиска / запроса и опроса пакетов, установленных в данный момент и репозитория.

Например, команда ниже покажет подробную информацию о конкретном установленном приложении.

apt-cache showpkg package

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .