Como saber a qual pacote um arquivo pertence

December 19, 2009

Quando mudamos de um sistema para outro, precisamos deixá-lo o mais semelhante possível com o sistema original. Às vezes sabemos o nome de um comando, mas não nos recordamos a qual pacote o arquivo pertence. Para instalar o software, precisamos desta informação.

Sistemas Debian GNU/Linux e derivados, como o Ubuntu, possuem o comando apt-file, que permite consultar a relação de arquivos disponíveis na sua distribuição e nos fornecem exatamente esta informação. IMPORTANTE: vale lembrar que a listagem não se restringe aos pacotes de software instalados em seu sistema, e sim à totalidade dos arquivos disponíveis na distribuição, o que é bem mais interessante. Para obter informações restritas ao que existe no seu sistema, utilize o comando dpkg.

Para instalar:

  apt-get install apt-file

Uma vez instalado o software, temos que criar o banco de dados, a partir dos repositórios listados no arquivo /etc/apt/sources.list. Este comando faz o download dos arquivos chamados Contents-<ARCH>.gz dos repositórios. Para isto, emita o comando:

  apt-file update

O comando irá gerar uma saída como:

  Downloading Index ftp://linorg.usp.br/debian/dists/testing/Contents-i386.diff/Index:
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                   Dload  Upload   Total   Spent    Left  Speed
  100  1913  100  1913    0     0  16327      0 --:--:-- --:--:-- --:--:--  207k
  Calculating old sha1sum...
  File is up-to-date.

Isto feito, o comando já pode ser usado. Por exemplo, para determinar a qual pacote pertence o comando txt2tags, emita o comando:

  % apt-file search txt2tags
  
  txt2tags: /usr/bin/txt2tags
  txt2tags: /usr/share/doc-base/txt2tags-quickref
  txt2tags: /usr/share/doc-base/txt2tags-userguide
  txt2tags: /usr/share/doc/txt2tags/README
  txt2tags: /usr/share/doc/txt2tags/README.Debian
  txt2tags: /usr/share/doc/txt2tags/TODO.gz
  txt2tags: /usr/share/doc/txt2tags/changelog.Debian.gz
  txt2tags: /usr/share/doc/txt2tags/changelog.gz
  txt2tags: /usr/share/doc/txt2tags/copyright
  .... dezenas de linhas excluídas

Vemos que neste caso, o comando txt2tags pertence ao pacote txt2tags. Neste caso, a resposta é bastante óbvia. Mas se pegarmos, da lista de arquivos do próprio pacote txt2tags, algum arquivo com nome obscuro, fica mais evidente a utilidade do sofware:

  % apt-file search module-body.py
  txt2tags: /usr/share/doc/txt2tags/examples/module/module-body.py

Uma mão na roda. Não dá para viver sem ele. Também não dá para viver sem o txt2tags.

Autor: Rubens Queiroz de Almeida
Em : dicas-l.com.br

Creative Commons

Go Back