Não existe uma maneira geral de encontrar pacotes que usem um determinado arquivo. Você pode combinar dpkg -S
ou dlocate
para descobrir qual pacote contém um arquivo, com apt-rdepends
para descobrir quais pacotes dependem desse pacote. Mas isso não cobrirá todos os casos e não informará de quais arquivos cada pacote depende (não que isso seja realmente significativo: as dependências se aplicam a pacotes como um todo e, com frequência, não podem ser identificadas em um arquivo específico na embalagem dependente).
Um caso que você não conseguirá encontrar através de dependências é a dependência de pacotes essenciais (aqueles para os quais os metadados incluem Essential: yes
). Todo sistema deve ter a coleção completa de pacotes essenciais, ou se você acredita que cada pacote depende de cada pacote essencial. Caso em questão: kvm.ko
é um módulo do kernel, pertencente ao pacote do kernel, que é essencial.
Outro caso que nem sempre é possível encontrar por dependências é o plug-ins. Muitos programas carregarão quaisquer plug-ins que encontrarem instalados e serão executados mesmo se o plug-in não estiver presente, portanto, o programa geralmente não declara dependência do plug-in. (O plug-in pode declarar uma dependência em algum tipo de estrutura de plug-in da qual o pacote que fornece o executável principal do programa depende, mas nem sempre é o caso.) Ponto de partida: o módulo do kernel kvm
é um componente opcional da máquina virtual kvm; você pode executar /usr/bin/kvm
mesmo se o módulo do kernel kvm
não estiver carregado, será apenas mais lento.
Aqui, a mensagem do VirtualBox é tão genérica e segura que é enganosa. A mensagem supõe que a extensão KVM está compilada no kernel, mas no seu sistema é realmente um módulo que pode ser descarregado. Simplesmente descarregar o módulo é suficiente para satisfazer o VirtualBox: basta executar rmmod kvm_amd kvm_intel kvm
. Você também pode evitar que o pacote qemu-kvm
carregue o módulo kvm
editando /etc/init.d/qemu-kvm
ou /etc/init/qemu-kvm.conf
(dependendo se a versão do Ubuntu possui um script SysVinit ou Upstart) e comentando a linha de carregamento do módulo ou impedindo que o serviço seja iniciado no momento da inicialização.