Como saber a qual pacote um arquivo pertence

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-.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. ;D

 

--

Artigo de Rubens Queiroz de Almeida.

0 comentários: