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 atariAchamos 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:
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
# apt-cache show stellaNessa 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:
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
# apt-cache show liloNote, 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:
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.
# apt-cache showpkg penguin-commandPara saber de quais pacotes ele depende, apenas:
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:
# apt-cache depends penguin-commandResumindo, temos um bom arsenal para encontrarmos o nome do pacote que queremos.
penguin-command
Depends: libc6
Depends: libpng2
Depends: libsdl-mixer1.1
Depends: libsdl1.1
Depends: zlib1g
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.hPara saber o nome de pacotes instalados no seu sistema, para uma possível limpeza, por exemplo, você pode usar:
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
# dpkg -l | grep mozillaO 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:
ii mozilla-browse 0.9.6-7 Mozilla Web Browser
$ COLUMNS=132 dpkg -l | grep mozillaou usar a descrição assim:
ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser
# 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. Oauto-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 comandoOnde `comando' é o comando a ser executado que pode vir a precisar de um arquivo qualquer. Por exemplo:
# auto-apt run ./configureEle 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 oapt-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 nomedoarquivoEle 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 nomedopacoteO
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 updatePor 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