Descobre a que pacote um arquivo pertence no Ubuntu / Debian?

261

Eu frequentemente me sinto perdendo um programa, uma página de manual ou outro arquivo quando estou trabalhando no meu sistema Ubuntu 8.04. Existe alguma maneira simples de procurar o pacote que contém um determinado arquivo (se já está instalado ou não)? Talvez alguma opção obscura para o apt ou dpkg?

    
por Jay Conrod 22.07.2009 / 21:06

8 respostas

215
apt-file search filename

ou

apt-file search /path/to/file


Para instalar apt-file , use:

sudo apt-get install apt-file

Você precisará atualizar seu banco de dados antes de poder usá-lo:

sudo apt-file update
    
por 22.07.2009 / 21:08
353

(Debian / Ubuntu) Descubra qual pacote arquivo pertence a :

dpkg -S /usr/bin/ls

'dpkg -S' just matches the string you supply it, so just using 'ls' as an argument matches any file from any package that has 'ls' anywhere in the filename. So usually it's a good idea to use an absolute path. You can see in the second example that 12 thousand files that are known to dpkg match the bare string 'ls'.

    
por 22.07.2009 / 21:13
17

packages.debian.org é o que eu sempre uso para realizar essa tarefa. É superior ao apt-file porque também pode encontrar partes de nomes de arquivos. Ele também está ligado à lista de pacotes principais, que listará descrições, bugs, etc. Tudo em um bom site. Não é tão útil na linha de comando, mas ainda é bastante útil.

Para velocidade, eu marquei o URL:

http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any

no Firefox, e acrescentou "debfind" como uma palavra-chave (clique em "mais" no gerenciador de favoritos com ele hilighted), para que eu possa digitar "debfind" e ele funcionará. Você pode alterar o 'suite' de instável para estável ou testar, se desejar, para outras versões da distribuição.

    
por 22.07.2009 / 22:07
11

Você também pode usar o dlocate. Da página do manual;

$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.
    
por 08.08.2011 / 21:30
4

Eu encontrei o Wajig ...

wajig whichpackage /path/to/file 

por exemplo.

wajig whichpackage /etc/apt/sources.list

O Wajig é uma linha de comando ou ferramenta de console útil que envolve toda a bondade do apt-get, dpkg que você nunca quis aprender. .

Para instalar o uso do wajig:

apt-get install wajig

Esse comando 'whichpackage' depende do apt-file

você ainda precisará atualizar seu banco de dados antes de poder usá-lo: - Eu não sei ainda se wajig update whixh faz uma atualização do apt-get também atualiza o cache de arquivos, mas eu espero que isso ocorra.

sudo wajig update

sudo apt-file update

(e Super Cow, Easter egss ?!)

    
por 14.01.2013 / 03:40
2

Similar à resposta do jamuraa para o Debian, você também pode acessar o link para o Ubuntu. Você terá que rolar um pouco para encontrar a caixa de pesquisa "Pesquisar nos conteúdos dos pacotes" onde você pode inserir o caminho de um arquivo.

    
por 28.10.2013 / 11:40
0

Tente pesquisar arquivos usando o link

Esta é uma aplicação para procurar por arquivos que estão contidos em diferentes pacotes rpms / linux, e é muito útil quando você não tem sequer o rpm instalado em sua máquina.

    
por 20.12.2012 / 01:33
0

O pacote command-not-found fornece dicas sobre possíveis comandos e o nome do pacote debian. Ele funciona digitando o comando no bash shell e olhando sua saída.

Por exemplo, se o nome do comando for conhecido:

zer@ivy:~ 10:45 $ zsh5
The program 'zsh5' is currently not installed.  To run 'zsh5' please ask
your administrator to install the package 'zsh'
zsh5: command not found

e se o comando não é conhecido, algumas suposições são aplicadas:

zer@ivy:~ 09:46 $ zsh
No command 'zsh' found, did you mean:
 Command 'lsh' from package 'lsh-client' (main)
 Command 'osh' from package 'omake' (main)
 Command 'ysh' from package 'libyaml-shell-perl' (main)
 Command 'ssh' from package 'openssh-client' (main)
 Command 'vsh' from package 'crystalspace' (main)
 Command 'dsh' from package 'dsh' (main)
 Command 'ash' from package 'ash' (main)
 Command 'msh' from package 'nmh' (main)
 Command 'zssh' from package 'zssh' (main)
 Command 'qsh' from package 'gridengine-client' (main)
 Command 'sh' from package 'dash' (main)
 Command 'bsh' from package 'bsh' (main)
zsh: command not found
    
por 24.11.2014 / 10:59