Como descobrir o pacote ao qual um utilitário pertence [duplicado]

7

Eu instalei o CUDA usando o formulário oficial .deb da página inicial da NVIDIA. Mas encontrei algumas trombas e quis refazer a instalação para garantir que todos os passos ao longo do caminho funcionassem como esperado.

Assim, eu 'apt-get purge cuda...'

Mas agora eu ainda tenho o nvcc que me confunde como eu esperava que ele pertencesse ao pacote cuda.

Como descubro a que pacote o nvcc pertence?

    
por Sim 27.10.2015 / 05:34

4 respostas

9

Verifique com apt-file porque, no seu caso, nvcc faz parte de um pacote ( nvidia-cuda-toolkit ).

Primeiro você precisa instalar o apt-file

sudo apt-get install apt-file
sudo apt-file update

Agora comece

apt-file search nvcc

ou

apt-file search --regex /nvcc$

ou

apt-file search $(which nvcc)

Para verificar por que o pacote nvidia-cuda-toolkit foi instalado, use aptitude .

sudo apt-get install aptitude
aptitude why nvidia-cuda-toolkit
    
por A.B. 27.10.2015 / 06:57
6

A maneira mais fácil de fazer isso é dpkg -S .

Então, para descobrir em qual pacote zgrep está, tente:

$ dpkg -S 'which zgrep'
gzip: /bin/zgrep

Isso mostra que está no pacote gzip .

É claro que você pode usar o caminho para o arquivo, por exemplo:

$ dpkg -S /usr/share/dict/words
diversion by dictionaries-common from: /usr/share/dict/words
diversion by dictionaries-common to: /usr/share/dict/words.pre-dictionaries-common
dictionaries-common, wamerican: /usr/share/dict/words

Isto, aliás, mostra um exemplo mais complexo.

    
por abligh 27.10.2015 / 10:22
1

apt usa o dpkg como back-end para instalar muitos aplicativos, e para o dpkg existe um diretório /var/lib/dpkg/info , onde há muitos *.info arquivos; estes contêm informações sobre todos os arquivos que acompanham um pacote.

Assim você pode fazer grep -i --color 'nvcc' /var/lib/dpkg/info/*.list . Isso pode gerar uma lista muito grande, no entanto, para reduzi-la, podemos usar o utilitário which .

which localiza um determinado arquivo binário / executável. Por exemplo,

xieerqi:$ grep $(which gnome-terminal) /var/lib/dpkg/info>
/var/lib/dpkg/info/gnome-terminal.list:/usr/bin/gnome-terminal.wrapper
/var/lib/dpkg/info/gnome-terminal.list:/usr/bin/gnome-terminal

Isso faz com que o grep pegue o caminho completo para o gnome-terminal executável e descubra qual pacote o instalou. Nesse caso, o pacote foi gnome-terminal .

Um caso não tão óbvio seria nm-tool

xieerqi:$ grep $(which nm-tool) /var/lib/dpkg/info/*.list 
/var/lib/dpkg/info/network-manager.list:/usr/bin/nm-tool

Assim, sabemos que pertence ao network-manager package

    
por Sergiy Kolodyazhnyy 27.10.2015 / 07:20
1

sudo apt-cache search nvcc

retorna:

libnvvm2 - NVIDIA CUDA Compiler NVVM runtime library nvidia-cuda-toolkit - NVIDIA CUDA toolkit

O apt-cache já deve estar instalado em seu sistema.

    
por Manos Ikonomakis 27.10.2015 / 11:30