Pequeno Guia do APT
O que significa APT?
APT é a abreviatura de 'Advanced Packaging Tool', isto é, Ferramenta Avançada de Empacotamento. Trata-se de uma coleção de programas e scripts que ajudam o administrador do sistema (no seu caso, o root) na instalação e gerenciamento de arquivos .deb. Ele também ajuda o próprio sistema a saber o que está instalado.
A sources list
O "APT" precisa de um arquivo de configuração que contenha os locais onde se encontram os pacotes instaláveis e atualizáveis. Este arquivo normalmente é chamado de sources.list.
Instalação do Eros-pre2
No Eros-pre2 a 'sources.list' vem vazia, pois a abordagem é diferente: em seu lugar, existe um diretório (ou pasta, se preferir) chamado:
/etc/apt/sources.list.d/
Dentro dele existem dois arquivos:
/etc/apt/sources.list.d/debian.list e
/etc/apt/sources.list.d/sidux.list
A vantagem é que a troca de espelhos é automatizada, tornando o processo mais fácil. Além disso, substituir entradas fica mais seguro.
Você pode adicionar seus próprios arquivos /etc/apt/sources.list.d/*.list sem problemas.
Instalação do Eros-pre1, Gaia, Tartaros e Chaos
A 'sources.list' pode ser encontrada em /etc/apt/sources.list
Todas as ISOs do sidux usam a seguinte 'sources.list' por padrão:
# Free University Berlin/ spline (Student Project LInux NEtwork), Germany deb ftp://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free #deb-src ftp://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free
Fontes complementares, com pacotes não-livres, podem ser encontradas em nossa sempre atualizada sidux.list e debian.list. Em 28/02/2008, 08:00h UTC, ela estava assim:
# See sources.list(5) for more information, especially # Remember that you can only use http, ftp or file URIs # CDROMs are managed through the apt-cdrom tool. # The /etc/apt/sources.list.d/ directory provides a way to add sources.list # entries in separate files that end with sources.list file. # Unstable deb http://ftp.us.debian.org/debian/ unstable main contrib non-free #deb-src http://ftp.us.debian.org/debian/ unstable main contrib non-free # Testing #deb http://ftp.us.debian.org/debian/ testing main contrib non-free #deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free # Experimental #deb http://ftp.us.debian.org/debian/ experimental main contrib non-free #deb-src http://ftp.us.debian.org/debian/ experimental main contrib non-free # Free University Berlin/ spline (Student Project LInux NEtwork), Germany deb ftp://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free #deb-src ftp://ftp.spline.de/pub/sidux/debian/ sid main contrib non-free fix.main fix.contrib fix.non-free
OBSERVAÇÃO: Neste exemplo, 'ftp.us' significa que os repositórios usados são dos Estados Unidos. Você pode editar o arquivo, como root, e usar os espelhos brasileiros: simplesmente mude o país, isto é, 'ftp:us' para 'ftp.br'. Com isso, preserva-se a largura de banda e aumenta-se a velocidade.
Para receber informações sobre atualizações dos pacotes, o APT usa um banco de dados. Este banco contém não só o pacote em si, mas também outros pacotes necessários para que ele funcione (as chamadas dependências). O programa apt-get usa o banco de dados para instalar os pacotes que você pediu e também todas as dependências necessárias, o que garante que tudo irá funcionar no final do processo. A atualização do banco é feita pelo comando 'apt-get update':
# apt-get update (which returns) Get:1 http://sidux.com sid Release.gpg [189B] Get:2 http://sidux.com sid Release.gpg [189B] Get:3 http://sidux.com sid Release.gpg [189B] Get:4 http://ftp.de.debian.org unstable Release.gpg [189B] Get:5 http://sidux.com sid Release [34.1kB] Get:6 http://ftp.us.debian.org unstable Release [79.6kB]
Instalando um novo pacote
Presumindo-se que o banco de dados do APT está atualizado e que o nome do pacote é conhecido, então o seguinte comando instalará um pacote chamado 'qemu' e todas suas dependências: (daqui a pouco mostraremos como procurar e encontrar pacotes)
# apt-get install qemu Reading package lists... Done --> (Lendo lista de pacotes...Pronto) Building dependency tree... Done --> (Construindo árvore de dependências...Pronto) The following extra packages will be installed: --> (Os seguintes pacotes extras serão instalados:) bochsbios openhackware proll vgabios Recommended packages: --> (Pacotes recomendados:) debootstrap vde The following NEW packages will be installed: --> (Os seguintes pacotes NOVOS serão instalados:) bochsbios openhackware proll qemu vgabios 0 upgraded, 5 newly installed, 0 to remove and 20 not upgraded. --> (0 atualizados, 5 novos instalados, 0 a remover e 20 não atualizados.) Need to get 4152kB of archives. --> (Será necessário baixar 4152kB em arquivos.) After unpacking 11.9MB of additional disk space will be used. --> (Após o desempacotamento, 11.98MB de espaço em disco serão usados.) Do you want to continue [Y/n]? n --> (Deseja continuar [Y/n]?)
Apagando um pacote
Da mesma forma, não é nada surpreendente que o comando abaixo desinstale o pacote 'gaim'. Mas atenção: o comando não remove as dependências. Para essas, há o utilitário 'deb-orphan':
# apt-get remove gaim apt-get remove gaim Reading package lists... Done Building dependency tree... Done The following packages will be REMOVED: gaim gaim-irchelper 0 upgraded, 0 newly installed, 2 to remove and 310 not upgraded. Need to get 0B of archives. After unpacking 4743kB disk space will be freed. Do you want to continue [Y/n]? (Reading database ... 174409 files and directories currently installed.) Removing gaim-irchelper ... Removing gaim ...
No caso acima, os arquivos de configuração do pacote 'gaim' não foram apagados do sistema. Eles podem ser úteis se você reinstalar o pacote, pois todas as configurações existentes serão assumidas.
Se você quiser que esses arquivos de configuração sejam apagados também, use o seguinte comando:
# apt-get remove --purge gaim Reading package lists... Done Building dependency tree... Done The following packages will be REMOVED: gaim* 0 upgraded, 0 newly installed, 1 to remove and 309 not upgraded. Need to get 0B of archives. After unpacking 4678kB disk space will be freed. Do you want to continue [Y/n]? Y (Reading database ... 174405 files and directories currently installed.) Removing gaim ... Purging configuration files for gaim ...
Aqui, os arquivos no diretório /etc/gaim foram apagados, juntamente com todos os arquivos de configuração. No entanto, não serão apagados eventuais arquivos criados pela aplicação APÓS a instalação.
Após atualização do banco de dados, pode-se descobrir quais pacotes possuem versões mais novas: (antes de mais nada, é preciso instalar o pacote 'apt-show-versions')
# apt-show-versions -u libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3 passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6 teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1 libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3 fonts-ttf-west-european/unstable upgradeable from 1.3-9 to 1.3-1-1 fonts-ttf-decoratives/unstable upgradeable from 1.3-1 to 1.3-1-1 sysv-rc/unstable upgradeable from 2.86.ds1-3 to 2.86.ds1-4 libpam0g/unstable upgradeable from 0.79-1 to 0.79-3 unionfs-utils/unstable upgradeable from 1.0.14+cvs2005092318w-M1 to 1.0.14+cvs2005092908w-M1libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3 passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6 teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1 libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3 fonts-ttf-west-european/unstable upgradeable from 1.3-9 to 1.3-1-1 fonts-ttf-decoratives/unstable upgradeable from 1.3-1 to 1.3-1-1 sysv-rc/unstable upgradeable from 2.86.ds1-3 to 2.86.ds1-4 libpam0g/unstable upgradeable from 0.79-1 to 0.79-3 unionfs-utils/unstable upgradeable from 1.0.14+cvs2005092318w-M1 to 1.0.14+cvs2005092908w-M1
A atualização de um único pacote, por exemplo 'gcc-4.0', e todas suas dependências, pode ser feita com:
apt-get install gcc-4.0 Reading package lists... Done Building dependency tree... Done gcc-4.0 is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and xxx not upgraded
Rebaixando e/ou congelando um pacote
Às vezes, pode ser necessário reverter um pacote à sua versão anterior (downgrade) ou colocá-lo em espera (hold), devido a um bug sério na versão mais recente que você acabou de instalar.
Colocar um pacote no modo de espera:
echo package hold|dpkg --set-selections
Tirar um pacote do modo de espera:
echo package install|dpkg --set-selections
Listar os pacotes em modo de espera:
dpkg --get-selections | grep hold
Rebaixar um pacote:
Os passos a seguir usam o pacote kmahjongg como exemplo:
ative/descomente os repositórios 'testing' na /etc/apt/sources.list
(apague a #) de forma que fique assim:
deb http://ftp.nl.debian.org/debian/ testing main contrib non-freeapt-get update
apt-get install -t testing kmahjongg
congele o pacote recém-instalado com:
echo kmahjongg hold|dpkg --set-selectionscomente os repositórios 'testing' na /etc/apt/sources.list, isto é, volte com a cerquilha (#)
apt-get update
Quando quiser instalar a última versão do pacote, faça assim:
echo kmahjongg install|dpkg --set-selections apt-get update apt-get install kmahjongg
Atualizando um sistema já instalado - dist-upgrade
Uma atualização de todo o sistema é feita através de um dist-upgrade. Sempre verifique Current Warnings ('Alertas Atuais') no site do sidux, e veja se há avisos contra atualizações de algum pacote. Se houver necessidade de congelar um pacote, veja a seção Rebaixando e/ou congelando um pacote.
Não é recomendável comandar um 'upgrade' apenas para o 'debian sid'.
Freqüência de um 'dist-upgrade'
Comande um 'dist-upgrade' pelo menos uma vez por semana, ou a cada duas semanas. Em último caso, uma vez por mês. Um 'dist-upgrade' feito apenas a cada dois ou três meses está no limite da segurança. Em caso de pacotes que não obedeçam aos padrões ou de pacotes que você tenha compilado, seja mais cuidadoso ao fazer atualizações, porque eles podem quebrar seu sistema devido a incompatibilidades.
Apenas baixando
Uma ótima e pouco conhecida opção é aquela que permite que se conheça quais pacotes farão parte de um 'dist-upgrade'. Para isso, use a variável -d:
apt-get dist-upgrade -d
Essa variável faz com que os pacotes sejam baixados (porém não instalados), a partir do X. Instale-os mais tarde, no init 3, com o 'dist-upgrade'. Isso também lhe dá a oportunidade de verificar se existem alertas contra qualquer pacote, pois você pode continuar ou abortar:
apt-get dist-upgrade -d
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
elinks-data
The following packages have been kept back:
git-core git-gui git-svn gitk icedove libmpich1.0ldbl
The following packages will be upgraded:
alsa-base bsdutils ceni configure-ndiswrapper debhelper
discover1-data elinks file fuse-utils gnucash
gnucash-common initscripts isdnutils-base libaprutil1
libcapi20-3 libdvdread3 libfuse2 libmagic1 libvlc0
linux-sound-base locales mount mozilla-plugin-vlc
python-glade2 python-gtk2 siduxcc siduxcc-common strace
sysv-rc sysvinit sysvinit-utils tzdata util-linux vlc
vlc-nox
35 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 23.4MB of archives.
After this operation, 594kB of additional disk space will be used.
Do you want to continue [Y/n]?
Y
respondendo 'Y', os pacotes serão baixados para seu computador, sem tocar no sistema instalado
Quando o 'dist-upgrade -d' terminar, você precisa completar o processo, imediatamente ou mais tarde; para isso, siga as instruções abaixo:
Saia do KDE:
pressione Ctrl+Alt+F1 [para ir para o terminal de modo texto ]
logue-se como usuário root e digite init 3
apt-get update
apt-get dist-upgrade
rode get-sidux-binary-gfx [para reinstalar os drivers da placa de vídeo, se tiver havido atualização do Xorg e/ou do kernel]
do contrário, digite
init 5 && exit
NOTA: somente faça atualizações (usando ou não o smxi) em init 3... senão, as coisas vão ficar difíceis para você..falta de avisar é que não foi!!!!
Razões para NÃO usar nada além do apt-get para um dist-upgrade
Gerenciadores de pacotes como adept, aptitude, synaptic e kpackage nem sempre dão conta da quantidade enorme de mudanças que acontecem no Sid ( mudanças nas dependências, nos nomes, nos scripts de manutenção...). Não é culpa dos desenvolvedores daquelas aplicações. Essas ferramentas são fabulosas, excelentes para o ramo 'estável' do Debian, só que não estão aptas para lidar com as necessidades muito especiais do Debian Sid.
Use qualquer um deles para procurar pacotes, mas fique com o apt-get na hora de realmente instalar/remover/atualizar o sistema.
Gerenciadores tais como adept, aptitude, synaptic e kpackage são, no mínimo, não-deterministas (para uma seleção de pacotes complexa). Misture isso com um alvo sempre móvel, como é o caso do sid, e (pior ainda) com repositórios não oficiais de qualidade questionável (não usamos nem recomendamos, mas eles são uma realidade nos desktops) e você estará clamando por desastre. Outro ponto é que todos esses gerenciadores com interfaces gráficas necessitam rodar em init 5 e/ou no X e um 'dist-upgrade' (ou mesmo 'upgrade') no init 5 e/ou X, acabará por danificar seu sistema a ponto de não mais poder ser reparado, mais cedo ou mais tarde.
Já o apt-get faz estritamente o que é pedido a ele. Se houver algum problema, fica fácil localizar o erro para depuração/correção; se o apt-get quiser remover metade de seu sistema (devido a transições nas bibliotecas), é só chamar o administrador (quer dizer, você mesmo) para dar, no mínimo, uma olhada séria (e consultar os Avisos na página do sidux, não se esqueça).
É por isso que o Debian usa exclusivamente o apt-get, não uma das outras ferramentas de gerenciamento de pacotes.
Procurando pacotes com o apt-cache
Outro comando muito útil do sistema APT é o apt-cache; ele procura no banco de dados do APT e mostra informações sobre pacotes; p. ex., uma lista com todos os pacotes que contenham ou referenciem "sidux" e "manual" pode ser obtida assim:
$ apt-cache search sidux manual sidux-manual-de - the official de sidux manual sidux-manual-ro - the official ro sidux manual sidux-manual-hr - the official hr sidux manual sidux-manual-common - the official sidux manual - common files sidux-manual-en - the official en sidux manual sidux-manual-ru - the official ru sidux manual sidux-manual-dk - the official dk sidux manual sidux-manual - the official sidux manual - all languages sidux-manual-nl - the official nl sidux manual sidux-manual-es - the official es sidux manual
Se quiser mais informações sobre um pacote em particular, você pode usar:
$ apt-cache show sidux-manual-en Package: sidux-manual-en Priority: optional Section: doc Installed-Size: 1088 Maintainer: Kel Modderman <kel@otaku42.de> Architecture: all Source: sidux-manual Version: 01.12.2007.06.03-1 Depends: sidux-manual-common Filename: pool/main/s/sidux-manual/sidux-manual-en_01.12.2007.06.03-1_all.deb Size: 391222 MD5sum: 60f2175c3c5709745a4b4256ccc3c49d SHA1: e275a0b27628b6aa210a4ced48d3646b438e78b8 SHA256: 2792580c7a091521301064180a1d0d8901f0a4af407b90432b9f8d8b6b3603ca Description: the official en sidux manual This manual is divided into common sections, for example, a subject pertaining to partitioning is found in Partitioning your Hard Drive, and topics regarding the Internet/WIFI are grouped in Internet and Networking. There are some topics that cannot be grouped or require stand-alone status. . As with any new documentation there will be errors/mistakes/typos, although we hope otherwise regarding errors and mistakes (typos we can live with) please forgive us. . As the body of work grows, more documentation will be added and we at sidux are sure that this will prove to be a very valuable resource for you and we thank you for being a part of sidux.
Todas as versões instaláveis do pacote (elas dependem de sua sources.list) podem ser listadas se você digitar:
$ apt-cache policy sidux-manual-pt-br
sidux-manual-pt-br:
Installed: (none)
Candidate: 01.34.2007.08.29-2
Version table:
*** 01.34.2007.08.29-2 0
500 http://sidux.com sid/main Packages
100 /var/lib/dpkg/status
Uma descrição completa do Sistema APT pode ser encontrada em APT-HOWTO
Procurando um pacote com o kio-apt
kio-apt é uma aplicação que oferece uma maneira de usar a interface gráfica via konqueror, sem correr riscos. Ele procura pacotes sem opções de instalação ou atualização no APT.
Esta é uma boa alternativa para outros gerenciadores, como adept, aptitude, synaptic e kpackage; assim você fica livre da tentação de instalar/atualizar pacotes no X usando ferramentas não preparadas para o Debian sid.
Você pode pesquisar o banco de dados dos pacotes tanto online quanto offline. Ele também faz uma boa síntese com informações retiradas do apt-cache policy e do apt-cache show.
Como procurar:
- apt:/search?expressão:procura no banco de dados por 'expressão', corresponde ao apt-cache search
- apt:/show?pacote: mostra informações detalhadas sobre 'pacote', como dependências, qual a versão instalada etc; corresponde ao apt-cache show.
- apt:/policy?pacote: mostra se o 'pacote' está instalado ou não, sua versão e alguns outros dados; corresponde a apt-cache policy.
- apt:/list?pacote: lista os arquivos em 'pacote'.


Instalação
sux apt-get update && apt-get install kio-apt
Depois abra o Konqueror e digite:
apt:/
...e aperte [Enter]. Veja descrição detalhada de todas as opções possíveis, incluindo busca em formulário compacto ou estendido.
A descrição completa do Sistema APT pode ser encontrada em APT-HOWTO

