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ção 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:
[root]@[/] # 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:
[root]@[/] # 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:
[root]@[/] # 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:
[root]@[/] # 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:
[root]@[/] # 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:
[root]@[/] # 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: [root]@[/] # 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:
[root]@[/] # 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:
[kov]@[couve] $ 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:
[root]@[/] # 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.
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. Responda às perguntas de acordo com sua vontade.
A opção "apt-listchanges deve ser chamado automaticamente pelo apt?" é muito útil pois mostra a lista de mudanças de todos os pacotes que serão instalados pelo apt durante uma atualização e permite que você as examine antes de continuar. A opção "apt-listchanges deve pedir confirmação após mostrar os changelogs?" é útil pois pergunta se você deseja continuar com a instalação depois de ter lido a lista de mudanças. Se você disser que não deseja continuar o apt-listchanges retorna um erro e o apt aborta a atualização.
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.7.7 - Março de 2002kov@debian.org