Como usar o APT Capítulo 5 - Obtendo informações sobre os pacotes.

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.


5.1 Descobrindo nome dos pacotes

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

5.2 Usando o dpkg para achar nomes de pacotes

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

5.3 Como instalar pacotes "on demand"

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.

5.4 Como descobrir a qual pacote um arquivo pertence

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

5.5 Como manter-se informado das mudanças nos pacotes.

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.

0 comentários:

Postar um comentário