Найдите все пакеты, который использует данный Файл в Ubuntu?

Я хотел бы перечислить все пакеты, который использует данный файл. Я готов использовать любой инструмент (такой как dpkg, dlocate, способный файл и т.д.), возражайте, когда я говорю 'использование', я не имею в виду обязательно, только владеет/устанавливает файлом, я хотел бы знать, какой пакет также ссылаются на него, ссылка против него и т.д.

вот мой вариант использования:

Я установил и KVM и VirtualBox и закончил тем, что использовал только VirtualBox, как оказалось, VirtualBox и KVM конкурируют за какие-то ресурсы, достаточно к счастью, за меня я не использую KVM, таким образом, я просто удалил его.

путем издания:

sudo apt-get purge kvm

Но это не было достаточно и когда я пытался выполнить VirtualBox на последующей начальной загрузке, я получил следующую ошибку:

Ошибка: не удалось запустить машину. Сообщение об ошибке: VirtualBox не может работать в корневом режиме VMX. Отключите расширение ядра KVM, перекомпилируйте свое ядро и перезагрузку (VERR_VMX_IN_VMX_ROOT_MODE)

рассмотрение загруженных модулей показало, что kvm модули ядра были все еще загружены

mcradle:~> lsmod | grep -i kvm
kvm_intel              39416  0
kvm                   244969  1 kvm_intel

настроенный на веб-поиск, который предложил произвести чистку qemu-kvm

sudo apt-get purge qemu-kvm

это добилось цели, теперь мой вопрос: как я, возможно, систематически добирался до этого заключения без веб-волшебной пыли? В особенности было бы хорошо знать, как можно сказать, какой пакет зависит от данного файла?

Возражайте, тот dlocate-S не достаточно хорош, потому что он показывает пакет владельца файла, и я хотел найти пакет, который заставляет 'kvm.ko' быть загруженным!

mcradle:/etc# dlocate -S kvm.ko
linux-image-2.6.32-25-generic-pae: /lib/modules/2.6.32-25-generic-pae/kernel/arch/x86/kvm/kvm.ko

если бы 'способный-rdepends-r' принял бы файлы вместо пакетов, которые, возможно, были точно, что я после.

Заранее спасибо и я надеемся, что вопрос ясен.

2
задан 29.11.2010, 11:09

3 ответа

Нет никакого общего способа найти пакеты, которые используют данный файл. Можно объединиться dpkg -S или dlocate найти то, с чем пакет содержит файл, apt-rdepends найти, какие пакеты зависят от того пакета. Но это не покроет все случаи, и это не скажет Вам, от каких файлов каждый пакет зависит (не, что это действительно значимо: зависимости относятся к пакетам в целом, и часто они не могут быть точно определены в конкретный файл в зависевшем - на пакет).

Один случай, который Вы не сможете найти через зависимости, является зависимостями от существенных пакетов (те, для которых метаданные включают Essential: yes). Каждая система должна иметь полный набор существенных пакетов, или если Вам нравится каждый пакет, как, предполагается, зависит от каждого существенного пакета. Рассматриваемый вопрос: kvm.ko модуль ядра, принадлежа пакету ядра, который важен.

Другой случай, который Вы не можете всегда находить через зависимости, является плагинами. Много программ загрузят любые плагины, которые они находят установленными и выполнят, даже если плагин не там, таким образом, программа обычно не объявляет зависимости от плагина. (Плагин может объявить зависимость от некоторой сменной платформы, от которой зависит пакет, обеспечивающий основной исполняемый файл программы, но это не всегда имеет место.) Рассматриваемый вопрос: kvm модуль ядра является дополнительным компонентом kvm виртуальной машины; можно работать /usr/bin/kvm даже если kvm модуль ядра не загружается, это просто будет медленнее.

Здесь сообщение от VirtualBox так универсально и избегает рискованных действий, что это вводит в заблуждение. Сообщение предполагает, что расширение KVM компилируется в ядро, но в Вашей системе это - действительно модуль, который может быть разгружен. Просто разгрузки модуля достаточно для удовлетворения VirtualBox: просто выполненный rmmod kvm_amd kvm_intel kvm. Можно также сохранить qemu-kvm пакет от загрузки kvm модуль путем редактирования /etc/init.d/qemu-kvm или /etc/init/qemu-kvm.conf (зависящий, имеет ли Ваш релиз Ubuntu сценарий SysVinit или Новомодный сценарий), и комментирование линии загрузки модуля или препятствование тому, чтобы сервис запустился во время начальной загрузки.

1
ответ дан 12.12.2019, 00:20

Веб-пыль эльфа? Их объединенными полномочиями команда инструментов пакета будет блистать ослепительный свет и заставлять темноту отскочить!

  1. использовать dlocate -S найти пакет владельца
  2. использовать aptitude remove -sy $pkg узнать все зависимые пакеты (-syD добавить деталь; aptitude why найти всего одну цепочку зависимости).

Или за один шаг:

  1. aptitude remove -sy $(dlocate -S /path/to/file |sed 's#:.*##' |uniq )
1
ответ дан 12.12.2019, 00:20

способный файл должен работать на это. Я не протестировал это

-1
ответ дан 12.12.2019, 00:20

Теги

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