Я хотел бы перечислить все пакеты, который использует данный файл. Я готов использовать любой инструмент (такой как 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' принял бы файлы вместо пакетов, которые, возможно, были точно, что я после.
Заранее спасибо и я надеемся, что вопрос ясен.
Нет никакого общего способа найти пакеты, которые используют данный файл. Можно объединиться 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 или Новомодный сценарий), и комментирование линии загрузки модуля или препятствование тому, чтобы сервис запустился во время начальной загрузки.
Веб-пыль эльфа? Их объединенными полномочиями команда инструментов пакета будет блистать ослепительный свет и заставлять темноту отскочить!
dlocate -S
найти пакет владельцаaptitude remove -sy $pkg
узнать все зависимые пакеты (-syD
добавить деталь; aptitude why
найти всего одну цепочку зависимости).Или за один шаг:
aptitude remove -sy $(dlocate -S /path/to/file |sed 's#:.*##' |uniq )
способный файл должен работать на это. Я не протестировал это