Узнайте, какие пакеты были установлены с конкретным пакетом?

У меня простой вопрос.

Когда вы устанавливаете пакет, используя apt-get install, часто он устанавливает несколько пакетов зависимостей, а также основной. Мне было интересно, если есть способ полностью отменить эту установку. Зачастую удаление основного пакета оставляет несколько пакетов позади. Например, я недавно установил kubuntu-desktop. Желая полностью удалить его, мне пришлось следовать инструкциям на этой странице:

http://www.psychocats.net/ubuntu/puregnome

Я хотел бы точно знать, как они получили эту информацию, касающуюся всех пакетов для удаления.

Спасибо за любую помощь!

4
задан 14 February 2013 в 22:25

4 ответа

Попробуйте debfoster. Сначала установите его, используя sudo apt-get install debfoster, а затем запустите sudo debfoster kubuntu-desktop. Он удалит все метапакеты, установленные как часть kubuntu-desktop.

0
ответ дан 14 February 2013 в 22:25

Используйте apt-cache depends, чтобы перечислить все пакеты «внутри» метапакета:

apt-cache depends kxstudio-meta-audio-plugins-lv2
kxstudio-meta-audio-plugins-lv2
  Depends: carla-lv2
  Depends: carla
  Depends: carla-dbg
  Depends: abgate
  Depends: avldrums.lv2
  Depends: drmr
  Depends: eq10q
  Depends: freaked-plugins
  (...)
0
ответ дан 14 February 2013 в 22:25

Я думаю, что самый простой способ узнать, какие пакеты поставляются с чем-то вроде kubuntu-desktop (или любого другого пакета), это проверить http://packages.ubuntu.com/ . Это дает вам подробный список всего, что требуется, рекомендуется и предлагается для каждого пакета, доступного через официальные репозитории.

Для 10.10 пакет kubuntu-desktop находится здесь: http://packages.ubuntu.com/maverick/kubuntu-desktop

Если что-то помечено «зависит», это требуется для правильной работы пакета. Если он помечен как «рекомендует», то он устанавливается по умолчанию, но не является обязательным (apt-get install --no-intstall-Recommended останавливает их установку), а предлагаемые являются чисто дополнительными и не устанавливаются по умолчанию. [ 114]

Вы также можете проверить это в менеджере пакетов synaptic (установлен по умолчанию - в меню администратора, как мне кажется). Щелкните правой кнопкой мыши по любому пакету и выберите «Свойства», перейдите на вкладку «Зависимости» и убедитесь, что раскрывающийся список «Зависимости». Здесь показана та же информация, что и на сайте packages.ubuntu.com.

Насколько я знаю, оба эти метода перечисляют прямые зависимости текущего пакета, но не зависимости от зависимостей. Я не на 100% в этом, но это меня не удивит.

Если вы устанавливаете пакеты через apt-get, и в него входят зависимости и рекомендуемые пакеты, прежде чем нажимать клавишу «y», вы всегда можете скопировать списки пакетов, которые будут установлены. Затем вы можете подключить этот список к apt-get remove, и он должен избавиться от всего этого. Просто убедитесь, что ничто из того, что вы установили (что вы хотите сохранить), также не зависит от того, что будет удалено.

Еще одним полезным инструментом является apt-get autoremove. Это удалит все, что вы не установили вручную (оно было извлечено как зависимость или предложенный пакет), что было зависимостью от того, что больше не установлено. По моему опыту, это не всегда работает для метапакетов, таких как kubuntu-desktop.

0
ответ дан 14 February 2013 в 22:25

В большинстве случаев команда autoremove из apt-get сделает свое дело, она удалит все пакеты, установленные и помеченные как , автоматически установленные, но не требуются никаким другим установленным пакетом. Это предпочтительный и безопасный метод, когда мастер-пакет не является метапакетом.

Это не относится к метапакетам, таким как kubuntu-desktop, а потому, что пакеты, установленные как следствие установки метапакета, не помечены как автоматически установленные, поэтому их нельзя удалить с помощью autoremove.

Удаление всех пакетов, помеченных как зависимости или рекомендованных данным метапакетом, например kubuntu-desktop, может быть опасным, поскольку некоторые из этих пакетов могут находиться в вашей системе до установки метапакета.

Самым безопасным способом для продолжения, на мой взгляд, является анализ /var/log/dpkg.log и его предков, чтобы увидеть, какие пакеты были установлены в метках времени вокруг метки времени установки данного пакета-нарушителя. Я предлагаю команду для получения более краткого и ясного представления о конкатенации задействованных файлов журнала:

less $(ls -rt /var/log/dpkg.log*) |
  awk '$3 ~ /^(install|upgrade|remove|purge)$/' |
  less
0
ответ дан 14 February 2013 в 22:25

Другие вопросы по тегам:

Похожие вопросы: