Existem alguns programas, conhecidos como front-ends para o sistema APT que facilitam em muito a listagem dos pacotes disponíveis para instalação, os instalados, em quais seções se encontram, quais suas prioridades, descrições, etc.
Mas... nossa intenção aqui é aprender a usar o APT puro. Então o que fazer para descobrir o nome do pacote que você pode querer a vir instalar?
Para isso temos uma série de recursos. Vamos começar com o apt-cache. Esse programa é usado pelo sistema APT para manter seu banco de dados. Nós vamos entrar apenas nos aspectos práticos dele.
Por exemplo, suponha que você está com vontade de relembrar os bons tempos do atari 2600. Você quer usar o APT para instalar um emulador de atari e depois baixar alguns jogos. Você pode fazer:
# apt-cache search atari atari-fdisk-cross - Partition editor for Atari (running on non-Atari) circuslinux - The clowns are trying to pop balloons to score points! madbomber - A Kaboom! clone tcs - Character set translator. atari800 - Atari emulator for svgalib/X/curses stella - Atari 2600 Emulator for X windows xmess-x - X binaries for Multi-Emulator Super System
Achamos então vários pacotes relacionados ao que queremos e breves descrições. Para ter mais informações sobre um pacote, posso, então, usar:
# apt-cache show stella Package: stella Priority: extra Section: non-free/otherosfs Installed-Size: 830 Maintainer: Tom Lear <tom@trap.mtview.ca.us> Architecture: i386 Version: 1.1-2 Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1) Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb Size: 483430 MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5 Description: Atari 2600 Emulator for X windows Stella is a portable emulator of the old Atari 2600 video-game console written in C++. You can play most Atari 2600 games with it. The latest news, code and binaries for Stella can be found at: http://www4.ncsu.edu/~bwmott/2600
Nessa saída você tem inúmeras informações sobre o pacote que quer instalar (ou não) e a sua descrição completa. No caso de o pacote já estar instalado em seu sistema e haver uma versão mais nova, você verá informações sobre ambos. Por exemplo:
# apt-cache show lilo Package: lilo Priority: important Section: base Installed-Size: 271 Maintainer: Russell Coker <russell@coker.com.au> Architecture: i386 Version: 1:21.7-3 Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate Suggests: lilo-doc Conflicts: manpages (<<1.29-3) Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb Size: 143052 MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e Description: LInux LOader - The Classic OS loader can load Linux and others This Package contains lilo (the installer) and boot-record-images to install Linux, OS/2, DOS and generic Boot Sectors of other OSes. . You can use Lilo to manage your Master Boot Record (with a simple text screen) or call Lilo from other Boot-Loaders to jump-start the Linux kernel. Package: lilo Status: install ok installed Priority: important Section: base Installed-Size: 190 Maintainer: Vincent Renardias <vincent@debian.org> Version: 1:21.4.3-2 Depends: libc6 (>= 2.1.2) Recommends: mbr Suggests: lilo-doc Description: LInux LOader - The Classic OS loader can load Linux and others This Package contains lilo (the installer) and boot-record-images to install Linux, OS/2, DOS and generic Boot Sectors of other OSes. . You can use Lilo to manage your Master Boot Record (with a simple text screen) or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
Note, que a primeira a ser listada é a disponível e a segunda, a que já se encontra instalada. Para uma informação mais geral sobre o pacote, você usa:
# apt-cache showpkg penguin-command Package: penguin-command Versions: 1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status) Reverse Depends: Dependencies: 1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3) Provides: 1.4.5-1 - Reverse Provides:
Para saber de quais pacotes ele depende, apenas:
# apt-cache depends penguin-command penguin-command Depends: libc6 Depends: libpng2 Depends: libsdl-mixer1.1 Depends: libsdl1.1 Depends: zlib1g
Resumindo, temos um bom arsenal para encontrarmos o nome do pacote que queremos.
Uma das maneiras de localizar o nome de um pacote é saber o nome de um arquivo importante que está nesse pacote. Por exemplo, para achar o pacote ao qual pertence um arquivo ".h" necessário a uma compilação você pode fazer:
# dpkg -S stdio.h libc6-dev: /usr/include/stdio.h libc6-dev: /usr/include/bits/stdio.h perl: /usr/lib/perl/5.6.0/CORE/nostdio.h ou: # dpkg -S /usr/include/stdio.h libc6-dev: /usr/include/stdio.h
Para saber o nome de pacotes instalados no seu sistema, para uma possível limpeza, por exemplo, você pode usar:
# dpkg -l | grep mozilla ii mozilla-browse 0.9.6-7 Mozilla Web Browser
O problema com esse comando é que ele pode "quebrar" o nome do pacote. No exemplo acima o nome todo do pacote é mozilla-browser. Para dar um jeito nisso, você pode usar a variável de ambiente COLUMNS, assim, por exemplo:
$ COLUMNS=132 dpkg -l | grep mozilla ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser
ou usar a descrição assim:
# apt-cache search "Mozilla Web Browser" mozilla-browser - Mozilla Web Browser
Você está compilando um programa e, de repente, boom! Há um erro porque falta
um arquivo .h que você não tem. O auto-apt
pode te
salvar de coisas assim. Ele pede para instalar os pacotes caso sejam
necessários pausando o processo dependente e depois de instalado o pacote,
continuando.
O que você faz, basicamente, é executar:
# auto-apt run comando
Onde `comando' é o comando a ser executado que pode vir a precisar de um arquivo qualquer. Por exemplo:
# auto-apt run ./configure
Ele irá então pedir para instalar os pacotes necessários e irá chamar o apt-get automaticamente. Caso você esteja no X, uma interface gráfica substituirá a interface de texto padrão.
O auto-apt mantém bancos de dados que devem ser atualizados para que ele tenha real eficácia, isso é feito chamando os comandos auto-apt update, auto-apt updatedb e auto-apt update-local.
Se você quer instalar um pacote e não consegue achar o seu nome usando o
apt-cache
mas sabe o nome do arquivo do programa ou de algum outro
arquivo que pertence ao pacote pode usar o apt-file
para encontrar
o nome do pacote. Isso é feito assim:
$ apt-file search nomedoarquivo
Ele funciona do mesmo jeito que o dpkg -S, mas também mostra os
pacotes não instalados que contêm o arquivo. Ele poderia também ser usado para
encontrar que pacotes contêm arquivos include necessários para uma compilação,
apesar de o auto-apt
ser um método muito melhor para resolver tais
problemas, veja Como instalar pacotes "on
demand", Seção 5.3.
Você pode também listar o conteúdo de um pacote rodando:
$ apt-file list nomedopacote
O apt-file
mantém uma base de dados de quais arquivos cada pacote
contém, assim como o auto-apt e essa base precisa estar atualizada. Isso é
feito rodando:
# apt-file update
Por padrão, o apt-file
usa a mesma base de dados que o
auto-apt
está usando, veja Como instalar
pacotes "on demand", Seção 5.3.
Todo pacote instala em seu diretório de documentação (/usr/share/doc/nomedopacote) um arquivo chamado changelog.Debian.gz que contém a lista de mudanças feitas no pacote desde a última versão. Você pode ler esses arquivos com a ajuda do zless, por exemplo, mas é algo pouco prático acabar de instalar todos os pacotes de uma atualização completa do sistema e então sair procurando os changelogs deles todos.
Há um jeito de automatizar essa tarefa por meio da ferramenta chamada
apt-listchanges
. Para começar instala-se o pacote
apt-listchanges
. Durante a instalação do pacote uma configuração
será feita com o Debconf. Algumas perguntas podem não ser exibidas dependendo
da prioridade que você configurou para seu Debconf usar. Responda às perguntas
de acordo com sua vontade.
A primeira pergunta é sobre a forma com que você quer que as mudanças sejam
exibidas. Você pode fazer com que sejam enviadas por e-mail para você, que é
bom para atualizações automatizadas ou você pode pedir que sejam mostradas em
um paginador como o less
, para que você possa inspecionar as
mudanças antes de permitir que a atualização continue. Se você não quiser que
o apt-listchanges
rode automaticamente durante atualizações você
pode responder none.
Depois do apt-listchanges instalado, logo depois de ter baixado todos os arquivos (ou tê-los adquirido de um CD ou disco montado) o apt irá mostrar as listas de mudanças ocorridas naqueles pacotes antes de iniciar a instalação.
Como usar o APT
1.8.10 - Novembro de 2004kov@debian.org