Você está na página 1de 37

Captulo 2.

Gesto de pacotes Debian





Captulo 2. Gesto de pacotes Debian
ndice
2.1. Pr-requisitos da gesto de pacotes Debian
2.1.1. Configurao de pacotes
2.1.2. Precaues bsicas
2.1.3. A vida com actualizaes eternas
2.1.4. Bsico do arquivos Debian
2.1.5. Debian 100% software livre
2.1.6. Dependncias de pacote
2.1.7. O fluxo de eventos da gesto de pacotes
2.1.8. Primeira resposta a problemas com a gesto de pacotes
2.2. Operaes bsicas de gesto de pacotes
2.2.1. apt-get / apt-cache contra o aptitude
2.2.2. Operaes bsicas de gesto de pacotes com a linha de comandos
2.2.3. Uso interactivo do aptitude
2.2.4. Teclas de atalho do aptitude
2.2.5. Vistas de pacote no aptitude
2.2.6. Opes do mtodo de pesquisa com o aptitude
2.2.7. A frmula regex do aptitude
2.2.8. Resoluo de dependncias do aptitude
2.2.9. Relatrios (logs) de actividade de pacotes
2.3. Exemplos de operaes do aptitude
2.3.1. Listagem de pacotes com correspondncia por expresso regular nos nomes de pacotes
2.3.2. Explorar com a correspondncia de expresso regular
2.3.3. Purgar pacotes removidos definitivamente
2.3.4. Acertar o estado auto/manual de instalao
2.3.5. Actualizao total ao sistema
2.4. Operaes de gesto avanada de pacotes
2.4.1. Operaes de gesto avanada de pacotes com linha de comandos
2.4.2. Verificao dos ficheiros pacotes instalados
2.4.3. Salvaguardar para problemas de pacotes.
2.4.4. Procurar nos meta-dados do pacote
2.5. Os interiores da gesto de pacotes Debian
2.5.1. Meta dados do arquivo
2.5.2. Ficheiro "Release" de nvel de topo e autenticidade:
2.5.3. Ficheiros "Release" do nvel de arquivo
2.5.4. Obter os meta dados do pacote
2.5.5. O estado dos pacote para o APT
2.5.6. O estado dos pacote para o aptitude
2.5.7. Copias locais dos pacotes obtidos
2.5.8. Nomes de ficheiros de pacotes Debian
2.5.9. O comando dpkg
2.5.10. O comando update-alternatives
2.5.11. O comando dpkg-statoverride
2.5.12. O comando dpkg-divert
2.6. Recuperao de um sistema danificado
2.6.1. Incompatibilidade com configuraes antigas de utilizador
2.6.2. Pacotes diferentes com ficheiros sobrepostos
2.6.3. Corrigir script problemtico de pacote
2.6.4. Recuperao com o comando dpkg
2.6.5. Recuperar dados de seleco de pacotes
2.7. Dicas para a gesto de pacotes
2.7.1. Como escolher os pacotes Debian
2.7.2. Pacotes de fontes de arquivos misturados
2.7.3. Moldar a verso candidata
2.7.4. Actualizaes e Backports
2.7.5. Bloquear pacotes instalados por "Recomendados"
2.7.6. Acompanhar testing com alguns pacotes de unstable
2.7.7. Acompanhar unstable com alguns pacotes de experimental
2.7.8. Descarga e actualizao automtica de pacotes
2.7.9. Limitar a largura de banda de descarga para o APT
2.7.10. Downgrade de emergncia
2.7.11. Quem fez o upload do pacote?
2.7.12. O pacote equivs
2.7.13. Portar um pacote para o sistema stable
2.7.14. Servidor proxy para o APT
2.7.15. Pequeno arquivo de pacotes pblico
2.7.16. Gravar e copiar a configurao do sistema
2.7.17. Converter e instalar um pacote binrio aliengena
2.7.18. Extrair um pacote sem o dpkg
2.7.19. Mais leituras sobre a gesto de pacotes
Nota
Este captulo escrito assumindo que o lanamento estvel mais recente tem o nome de cdigo: wheezy.
Debian uma organizao voluntria que constri distribuies consistentes de pacotes binrios pr-compilados de software
livre e distribui-os a partir do seu arquivo.
O arquivo Debian oferecido por muitos sites mirror remotos para acesso atravs de mtodos HTTP e FTP. Tambm est
disponvel em CD-ROM/DVD.
O sistema de gesto de pacotes Debian, quando utilizado de modo apropriado, oferece ao utilizador o instalar de conjuntos
consistentes de pacotes binrios no sistema a partir do arquivo. Actualmente, existem 41274 pacotes disponveis para a
arquitectura amd64.
O sistema de gesto de pacotes Debian tem um histrico rico e muitas opes de escolha para o programa cliente do utilizador e
de mtodo de acesso ao arquivo. Actualmente, recomendamos o seguinte:
apt-get(8) para todas as operaes de linha de comandos, incluindo a instalao e remoo de pacotes, e dist-upgrade.
aptitude(8) para uma interface de texto interactiva para gerir os pacotes instalados e procurar os pacotes disponveis.
update-manager(8) para manter o seu sistema actualizado se voc estiver a correr o ambiente de trabalho GNOME.
Tabela 2.1. Lista de ferramentas de gesto de pacotes Debian
pacote popcon tamanho descrio
apt
V:857,
I:999
3569
Advanced Packaging Tool (APT), front-end para o dpkg que disponibiliza os mtodos "http",
"ftp", e "file" para acesso a arquivos (comandos apt-get/apt-cache includos)
aptitude
V:227,
I:991
4488 Gestor de pacotes baseado em terminal interactivo com aptitude(8)
tasksel
V:51,
I:966
715 ferramenta para seleccionar tarefas para instalao no sistema Debian (frontend para o APT)
unattended-
upgrades
V:59,
I:471
312
pacote de melhoria para o APT para activar a instalao automtica de actualizaes de
segurana
dselect
V:8,
I:80
2516
gestor de pacotes baseado em terminal (foi o standard anterior, frontend para o APT e outros
mtodos de acesso antigos)
dpkg
V:910,
I:999
6427 sistema de gesto de pacotes para Debian
synaptic
V:111,
I:478
7667 gestor de pacotes grfico (frontend do GNOME para o APT)
apt-utils
V:429,
I:997
1364 Programas utilitrios do APT: apt-extracttemplates(1), apt-ftparchive(1), e apt-sortpkgs(1)
apt-
listchanges
V:369,
I:757
203 ferramenta de notificao do histrico de alteraes do pacote
apt-
listbugs
V:9,
I:15
418 lista bugs crticos antes de cada instalao do APT
apt-file
V:20,
I:87
69 Utilitrio de busca de pacotes do APT - interface de linha de comandos
apt-
rdepends
V:1, I:8 64 lista recursivamente dependncias de pacotes
2.1. Pr-requisitos da gesto de pacotes Debian
2.1.1. Configurao de pacotes
Aqui esto alguns pontos chave para a configurao de pacotes no sistema Debian.
A configurao manual feita pelo administrador do sistema respeitada. Por outras palavras, o sistema de configurao de
pacotes no faz configuraes intrusivas por convenincia.
Cada pacote vem com o seu prprio script de configurao com a interface de utilizador standard chamada debconf(7)
para ajudar no processo inicial de instalao do pacote.
Os Programadores do Debian do o seu melhor para tornar a sua experincia de actualizao isenta de falhas com scripts
de configurao de pacotes.
As funcionalidades totais do software empacotado esto disponveis ao administrador do sistema. Mas aquelas com riscos
de segurana esto desactivadas na instalao predefinida.
Se voc activou manualmente um servio com alguns riscos de segurana voc o responsvel pelo confinamento de
risco.
A configurao esotrica pode ser activada manualmente pelo administrador do sistema. Isto pode criar interferncias com
programas de ajuda genricos populares para a configurao do sistema.
2.1.2. Precaues bsicas
Ateno
No instale pacotes de misturas aleatrias de suites. Provavelmente vai quebrar a consistncia do pacote o
que requer conhecimentos profundos de gesto do sistema tais como ABI compilador, verso de biblioteca,
funcionalidades do interpretador, etc.
O administrador novato de sistemas Debian deve manter-se com o lanamento stable de Debian e aplicar apenas as
actualizaes de segurana. Eu quero dizer que melhor evitar algumas das seguintes aces vlidas, como uma precauo, at
que voc compreenda muito bem o sistema Debian. Aqui ficam algumas lembranas.
No inclua testing ou unstable em "/etc/apt/sources.list".
No misture Debian standard com outros arquivos que no sejam Debian, como o Ubuntu em "/etc/apt/sources.list".
No crie "/etc/apt/preferences".
No altere o comportamento predefinido das ferramentas de gesto de pacotes atravs de ficheiros de configurao sem
conhecer os seus impactos totais.
No instale pacotes aleatrios com "dpkg -i <qualquer_pacote>".
Nunca instale pacotes aleatrios com "dpkg --force-all -i <qualquer_pacote>".
No apague ou altere os ficheiros em "/var/lib/dpkg/".
No sobrescreva ficheiros do sistema ao instalar programas compilados a partir do cdigo-fonte.
Instale-os em "/usr/local" ou "/opt", se necessrio.
Os efeitos no-compatveis causados ao sistema de gesto de pacotes de Debian, pelas aces referidas acima, podem deixar o
seu sistema inutilizado.
O administrador de sistema Debian srio que corre servidores de misses crticas, deve tomar precaues extra.
No instale nenhuns pacotes incluindo as actualizaes de segurana da Debian sem os testar completamente com as suas
configuraes particulares sob condies seguras.
Voc como o administrador do sistema o responsvel final pelo seu sistema.
A longa histria de estabilidade do sistema Debian no uma garantia por si s.
2.1.3. A vida com actualizaes eternas
Apesar dos meus avisos em cima, eu sei que muitos leitores deste documento desejam correr as suites testing ou unstable de
Debian como o seu sistema principal para ambientes de trabalho auto-administrados. Isto porque funcionam muito bem, so
actualizadas frequentemente, e oferecem as funcionalidades mais recentes.
Cuidado
Para o seu servidor de produo, recomendada a suite stable com as actualizaes de segurana. O
mesmo pode ser dito para PCs de ambiente de trabalho onde voc pode dispor de esforos limitados de
administrao, p.e. o PC da sua me.
No preciso mais do que simplesmente definir a string da distribuio em "/etc/apt/sources.list" para o nome de suite:
"testing" ou "unstable"; ou o nome de cdigo: "jessie" ou "sid". Isto f-lo viver a vida das actualizaes eternas.
O uso de testing ou unstable muito divertido mas vem com alguns riscos. Embora a suite unstable do sistema Debian parea
muito estvel na maior parte do tempo, tem havido alguns problemas com pacotes nas suites testing e unstable do sistema
Debian e alguns deles no foram triviais de resolver. Poder ser muito doloroso para si. Por vezes, voc pode ter um pacote
danificado ou uma funcionalidade em falta por algumas semanas.
Aqui esto algumas ideias para assegurar recuperao fcil e rpida de bugs nos pacotes Debian:
Faa um sistema de duplo arranque ao instalar a suite stable do sistema Debian noutra partio.
Tenha o CD de instalao ' mo' para o arranque de recuperao
Considere instalar o apt-listbugs para verificar informao do Debian Bug Tracking System (BTS) antes das
actualizaes
Conhea o suficiente da infraestrutura do sistema de pacotes para contornar o problema
Crie um chroot ou ambiente semelhante para antecipadamente correr nele o sistema mais recente (veja Seco 9.10,
Sistema virtualizado)
(Se voc no conseguir fazer nenhumas destas aces de precauo, provavelmente no est preparado para as suites testing e
unstable.)
O Esclarecimento com o seguinte salva uma pessoa do karma da eterna luta do inferno das actualizaes e permite-lhe alcanar o
nirvana de Debian.
2.1.4. Bsico do arquivos Debian
Vamos olhar para o arquivo Debian a partir da perspectiva do utilizador do sistema.
Dica
A poltica oficial do arquivo Debian est definida em Manual de Polticas Debian, Captulo 2 - O Arquivo
Debian.
Para o tpico acesso HTTP, o arquivo est especificado no ficheiro "/etc/apt/sources.list" como o seguinte exemplo para o
sistema stable = wheezy actual.
deb http://ftp.XX.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.XX.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib
deb-src http://security.debian.org/ wheezy/updates main contrib
Por favor note que "ftp.XX.debian.org" tem de ser substitudo com o URL do mirror apropriado para a sua localizao, para
EUA "ftp.us.debian.org", o qual pode ser encontrado em a lista de mirrors Debian de todo o mundo. O estado destes servidores
pode ser verificado no Debian Mirror Checker.
Aqui, eu uso o nome de cdigo "wheezy" em vez do nome de suite "stable" para evitar surpresas quando a prxima stable for
lanada.
O significado de "/etc/apt/sources.list" descrito em sources.list(5) e os pontos chave so os seguintes:
A linha "deb" define os pacotes binrios.
A linha "deb-src" define os pacotes fonte.
O 1 argumento o URL raiz do arquivo Debian.
O 2 argumento o nome da distribuio: seja o nome de suite ou o nome de cdigo.
O 3 argumento e seguintes so a lista de nomes de rea de arquivo vlidos do arquivo Debian.
As linhas "deb-src" pode ser omitidas (ou comentadas ao colocar um "#" no inicio da linha) se for apenas para o aptitude o qual
no acede a meta-dados relacionados com a fonte. Isso acelera as actualizaes dos meta-dados do arquivo. O URL pode ser
"http://", "ftp://", "file://", .
Dica
Se for usado "sid" no exemplo em cima em vez de "wheezy", a linha "deb: http://security.debian.org/ "
para actualizaes de segurana em "/etc/apt/sources.list", no necessria. Isto porque no h arquivo
de actualizaes de segurana para "sid" (unstable).
Aqui est uma lista de URLs de sites de arquivo Debian e nomes das suites ou nomes de cdigo utilizados no ficheiro de
configurao.
Tabela 2.2. Lista de sites de arquivos Debian
URL do arquivo
nome da suite (nome de
cdigo)
objectivo
http://ftp.XX.debian.org/debian/ stable (wheezy) lanamento (wheezy) stable
http://ftp.XX.debian.org/debian/ testing (jessie) lanamento (jessie) testing
http://ftp.XX.debian.org/debian/ unstable (sid) lanamento (sid) unstable
http://ftp.XX.debian.org/debian/ experimental
pr-lanamento experimental (opcional, apenas para
desenvolvedores)
http://ftp.XX.debian.org/debian/ stable-proposed-updates
Actualizaes para o prximo lanamento de ponto estvel
(opcional)
http://security.debian.org/ stable/updates
actualizaes de segurana para o lanamento stable
(importante)
http://security.debian.org/ testing/updates
actualizaes de segurana para o lanamento testing
(importante)
http://ftp.XX.debian.org/debian/ wheezy-updates
actualizaes compatveis para filtro de spam, clientes IM, etc.
para wheezy
http://ftp.XX.debian.org/debian/ wheezy-backports pacotes backport mais recentes para wheezy (opcional)
Cuidado
Apenas o puro lanamento stable com as actualizaes de segurana disponibilizam a melhor estabilidade.
Correr o lanamento stable misturado com alguns pacotes dos lanamentos testing ou unstable mais
arriscado que correr o lanamento unstable puro devido a verses erradas de bibliotecas e etc. Se realmente
voc precisa da verso mais recente de alguns programas sob o lanamento stable, por favor utilize pacotes
do wheezy-updates e http://backports.debian.org (veja os servios Seco 2.7.4, Actualizaes e
Backports) Estes servios tm de ser utilizados com cuidados extra.
Cuidado
Basicamente voc deve listar apenas uma das suites stable, testing, ou unstable na linha "deb". Se voc
listar qualquer combinao das suites stable, testing, e unstable na linha "deb", os programas do APT
abrandam enquanto apenas o arquivo mais recente efectivo. Faz sentido vrias listagens quando o ficheiro
"/etc/apt/preferences" utilizado com objectivos claros (veja Seco 2.7.3, Moldar a verso candidata).
Dica
Para o sistema Debian com as suites stable e testing, uma boa ideia incluir linhas com
"http://security.debian.org/" em "/etc/apt/sources.list" para activar as actualizaes de segurana
como no exemplo em cima.
Nota
Os bugs de segurana do arquivo stable so corrigidos pela equipa de segurana do Debian. Esta actividade
tem sido bastante rigorosa e fidedigna. Os do arquivo testing podero ser corrigidos pela equipa de
segurana de Debian testing. Por vrias razes, esta actividade no to rigorosa como a de stable e voc
pode necessitar de aguardar pela migrao de pacotes unstable com as correces. Os pacotes do arquivo
unstable so corrigidos pelo maintainer. Os pacotes unstable mantidos activamente esto geralmente em
boa forma por conterem as correces de segurana mais recentes desde a origem. Veja a FAQ de segurana
Debian para saber como Debian lida com os bugs de segurana.
Tabela 2.3. Lista de rea de arquivo Debian
rea nmero de pacotes critrio do componente do pacote
main 40500 em conformidade com DFSG e nenhuma dependncia a non-free
contrib 248 em conformidade com DFSG mas com dependncias a non-free
non-free 526 no complacente com DFSG
Aqui o nmero de pacotes em cima para a arquitectura amd64. A rea main disponibiliza o sistema Debian (veja Seco 2.1.5,
Debian 100% software livre).
A organizao do arquivo Debian pode ser melhor estudada ao apontar o seu explorador a cada URL de arquivo seguido de
dists ou pool.
A distribuio referida de duas maneiras, a suite ou o nome-de-cdigo. A palavra distribuio usada alternativamente como o
sinnimo de suite em muitas documentaes. A relao entre a suite e o nome de cdigo pode ser resumida ao seguinte.
Tabela 2.4. A relao entre suite e nome de cdigo
Tempo suite = stable suite = testing suite = unstable
aps o lanamento wheezy nome de cdigo = wheezy nome de cdigo = jessie nome de cdigo = sid
aps o lanamento jessie nome de cdigo = jessie nome de cdigo = jessie+1 nome de cdigo = sid
A histria dos nomes de cdigo est descrita em Debian FAQ: 6.2.1 Que outros nomes de cdigo foram usados no passado?
Na terminologia estrita do arquivo Debian, a palavra "seco" utilizada especialmente para categorizar os pacotes pela rea de
aplicao. (Apesar da palavra "seco main" poder por vezes ser utilizada para descrever a rea do arquivo Debian com o nome
"main".)
Cada vez que feito um novo upload por um desenvolvedor de Debian (DD) para o arquivo unstable (por processamento do
incoming), necessrio que o DD assegure que os pacotes enviados sejam compatveis com o conjunto de pacotes mais recente
no arquivo unstable mais recente.
Se o DD quebrar esta compatibilidade intencionalmente para uma actualizao importante de biblioteca ou etc., geralmente
existe um anncio na lista de email debian-devel etc.
Antes que um conjunto de pacotes seja movido pelo script de manuteno do arquivo Debian do arquivo unstable para o arquivo
testing, o script de manuteno do arquivo no verifica apenas a maturidade (cerca de 10 dias de idade) e o estado dos relatrios
de bug RC para os pacotes mas tambm tenta assegurar que sejam compatveis com o conjunto de pacotes mais recente no
arquivo testing. Este processo torna o arquivo testing muito actual e utilizvel.
Atravs do processo de congelamento gradual do arquivo liderado pela equipa de lanamento, o arquivo testing amadurecido
para o tornar completamente consistente e livre de bugs com algumas intervenes manuais. Ento o novo lanamento stable
criado ao atribuir o nome de cdigo do antigo arquivo testing ao novo arquivo stable e criando um novo nome de cdigo para o
novo arquivo testing. O contedo inicial do novo arquivo testing exactamente o mesmo que o arquivo stable recentemente
lanado.
Ambos os arquivos unstable e testing podem sofrer falhas temporrias devido a vrios factores:
Upload, para o arquivo, de pacotes danificados (maioritariamente para unstable)
Atraso de aceitao dos novos pacotes no arquivo (maioritariamente para unstable)
Problemas com o tempo de sincronizao do arquivo (tanto para testing como unstable)
Interveno manual no arquivo, tal como remoo de pacotes (mais para testing) etc.
Se alguma vez voc decidir utilizar estes arquivos, dever ser capaz de corrigir ou contornar este tipo de problemas.
Cuidado
Durante alguns meses aps um novo lanamento de stable, a maioria dos utilizadores de ambientes de
trabalho devem usar o arquivo stable com as sua actualizaes de segurana mesmo que normalmente usem
os arquivos unstable ou testing. Durante este perodo de transio, ambos arquivos unstable e testing no
so bons para a maioria das pessoas. O seu sistema difcil de manter em boas condies de funcionamento
com o arquivo unstable porque sofre de vagas de grandes actualizaes nos pacotes principais. O arquivo
testing tambm no til porque contm praticamente o mesmo contedo que o arquivo stable mas sem o
seu suporte de segurana (Anncio-de-segurana-de-testing-Debian-2008-12). Aps um ms ou mais, o
arquivo unstable pode ser usado se voc for cuidadoso.
Dica
Quando se acompanha o arquivo testing, um problema causado por um pacote removido geralmente
contornado ao instalar o pacote correspondente do arquivo unstable que foi lanado para correco de bug.
Veja Manual de Polticas Debian para as definies do arquivo.
"Seces"
"Prioridades"
"Sistema base"
"Pacotes essenciais"
2.1.5. Debian 100% software livre
Debian 100% software livre por causa do seguinte:
Por predefinio, Debian instala apenas software livre para respeitar as liberdades dos utilizadores.
Debian disponibiliza apenas software livre no main.
Debian recomenda correr apenas software livre do main.
Nenhum pacote no main depende ou recomenda pacotes do non-free ou do contrib.
Algumas pessoas pensam se os 2 seguintes factos se contradizem ou no.
"Debian ir manter-se 100% livre". (Primeiro termo do Debian Social Contract)
Os servidores Debian iro alojar alguns pacotes non-free e contrib.
Estes no se contradizem, devido ao seguinte.
O sistema Debian 100% livre e os seus pacotes esto alojados em servidores Debian na rea main.
Os pacotes fora do sistema Debian so alojado em servidores Debian nas reas non-free e contrib.
Isto perfeitamente explicado nos termos 4 e 5 do Debian Social Contract:
As nossas prioridades so os nossos utilizadores e o software livre
Seremos guiados pelas necessidades dos nossos utilizadores e da comunidade de software livre. Iremos colocar o
seu interesse no topo das nossas prioridades. Iremos suportar as necessidades dos nossos utilizadores para operao
em muitos ambientes de computao distintos. No nos oporemos a software no-livre que se destine a ser utilizado
em sistemas Debian, nem tentaremos cobrar qualquer taxa a pessoas que criem ou utilizem tais trabalhos. Iremos
permitir que terceiros criem distribuies contendo o sistema Debian com outros trabalhos, sem qualquer taxa para
ns. Para apoio destes objectivos, iremos disponibilizar um sistema integrado de materiais de alta qualidade sem
restries legais que previnam tais utilizaes do sistema.
Trabalhos que no coincidem com os nossos standards de software livre
Ns reconhecemos que alguns dos nossos utilizadores necessitam utilizar trabalhos que no esto de acordo com a
Debian Free Software Guidelines. Ns criamos no nosso arquivo as reas "contrib" e "non-free" para esses
trabalhos. Os pacotes nessas reas no fazem parte do sistema Debian, embora tenham sido configurados para serem
utilizados com Debian. Ns encorajamos os fabricantes de CDs a ler as licenas dos pacotes nessas reas e
determinar se podem distribuir os pacotes nos seus CDs. Por isso, embora os trabalhos no-livres no sejam parte de
Debian, ns suportamos a sua utilizao e disponibilizamos infra-estrutura para os pacotes no-livres (tal como o
nosso sistema de seguimento de bugs e listas de email).
Os utilizadores devem estar cientes dos riscos da utilizao de pacotes das reas non-free e contrib:
falta de liberdade para tais pacotes de software
falta de suporte Debian em tais pacotes de software (Debian no pode suportar devidamente software sem ter acesso ao
seu cdigo-fonte.)
contaminao do seu sistema Debian 100% livre
As Debian Free Software Guidelines so os standards de software livre para Debian. Debian interpreta "software" no mbito
mais amplo incluindo documentao, firmware, logo e dados artsticos no pacote. Isto torna os standards de software livre de
Debian muito rigorosos.
De modo a respeitar estes restritos standards de software livre para a main, Debian retira a marca Mozilla de pacotes de software
tais como o Firefox, Thunderbird e Seamonkey removendo o seu logtipo e alguns dados artsticos; e distribui-os
respectivamente como Iceweasel, Icedove e Iceape.
Tipicamente os pacotes da non-free e da contrib incluem pacotes distribudos livremente dos seguintes tipos:
Pacotes de documentao sob a GNU Free Documentation License com seces invariantes tais como as do GCC e do
Make. (a maioria encontra-se na seco non-free/doc.)
Pacotes de firmware contendo dados binrios sem cdigo-fonte tais como os listados em Seco 9.9.6, Controladores de
hardware e firmware como no-livre. (a maioria encontra-se na seco non-free/kernel.)
Pacotes de fontes e jogos com restries comerciais de utilizao e/ou modificao de contedo.
Por favor note que o nmero de pacotes das non-free e contrib menos de 2% dos pacotes da main. Activar o acesso s reas
non-free e contrib no turva a fonte dos pacotes. A utilizao do ecr interactivo do aptitude(8) disponibiliza-lhe visibilidade e
controlo total sobre que pacotes esto instalados e a partir de qual das reas, para manter o seu sistema livre conforme desejar.
2.1.6. Dependncias de pacote
O sistema Debian oferece um conjunto consistente de pacotes binrios atravs do seu mecanismo de declarao de dependncias
binrias com verses nos campos do ficheiro de controle. Aqui est uma definio deles um pouco simplificada:
"Depends"
Isto declara uma dependncia absoluta e todos os pacotes listados neste campo tm de ser instalados ao mesmo
tempo ou com antecedncia.
"Pre-Depends"
Isto como o Depends, excepto que requer a instalao completa de todos os pacotes listados com antecedncia.
"Recommends"
Isto declara uma dependncia forte mas no absoluta. A maioria dos utilizadores no iriam querer o pacote a menos
que todos os pacotes listados neste campo estejam instalados.
"Suggests"
Isto declara uma dependncia fraca. Muitos utilizadores deste pacote podem beneficiar ao instalar os pacotes
listados neste campo mas podem ter as funes razoveis sem eles.
"Enhances"
Isto declara uma dependncia fraca como o Suggests mas funciona na direco oposta.
"Breaks"
Isto declara uma incompatibilidade do pacote normalmente com alguma especificao de verso. Geralmente a
resoluo actualizar todos os pacotes listados neste campo.
"Conflicts"
Isto declara uma incompatibilidade absoluta. Todos os pacotes listados neste campo tm de ser removidos para
instalar este pacote.
"Replaces"
Isto declarado quando os ficheiros instalados por este pacote substituem ficheiros nos pacotes listados.
"Provides"
Isto declarado quando este pacote disponibiliza todos os ficheiros e funcionalidades dos pacotes listados.
Nota
Por favor note que definir "Provides", "Conflicts" e "Replaces" em simultneo a um pacote virtual a
configurao s. Isto assegura que apenas um pacote real que disponibilize este pacote virtual possa ser
instalado de cada vez.
A definio oficial incluindo dependncias de fonte pode ser encontrada em O Manual de Polticas: Captulo 7 - Declarar
relaes entre pacotes.
2.1.7. O fluxo de eventos da gesto de pacotes
Aqui est um resumo do fluxo de eventos simplificado da gesto de pacotes pelo APT.
Update ("aptitude update" ou "apt-get update"):
1. Obtm meta-dados do arquivo a partir do arquivo remoto
2. Re-constri e actualiza os meta-dados locais para utilizao do APT
Upgrade ("aptitude safe-upgrade" e "aptitude full-upgrade", ou "apt-get upgrade" e "apt-get dist-upgrade"):
1. Escolhe a verso candidata que geralmente a verso mais recente disponvel para todos os pacotes instalados (veja
Seco 2.7.3, Moldar a verso candidata para excepes).
2. Resolve a dependncia do pacote
3. Obtm os pacotes binrios seleccionados do arquivo remoto se a verso candidata for diferente da verso instalada.
4. Desempacota os pacotes binrios obtidos
5. Corre o script preinst
6. Instala os ficheiros binrios
7. Corre o script postinst
Install ("aptitude install " ou "apt-get install "):
1. Escolhe os pacotes listados na linha de comandos
2. Resolve a dependncia do pacote
3. Obtm os pacotes binrios seleccionados a partir do arquivo remoto
4. Desempacota os pacotes binrios obtidos
5. Corre o script preinst
6. Instala os ficheiros binrios
7. Corre o script postinst
Remove ("aptitude remove " ou "apt-get remove "):
1. Escolhe os pacotes listados na linha de comandos
2. Resolve a dependncia do pacote
3. Corre o script prerm
4. Remove os ficheiros instalados excepto os ficheiros de configurao
5. Corre o script postrm
Purge ("aptitude purge " ou "apt-get purge "):
1. Escolhe os pacotes listados na linha de comandos
2. Resolve a dependncia do pacote
3. Corre o script prerm
4. Remove os ficheiros instalados incluindo os ficheiros de configurao
5. Corre o script postrm
Aqui, saltei intencionalmente detalhes tcnicos por causa da viso geral.
2.1.8. Primeira resposta a problemas com a gesto de pacotes
Voc deve ler a boa documentao oficial. O primeiro documento a ler especfico de Debian
"/usr/share/doc/<package_name>/README.Debian". Tambm deve ser consultada outra documentao em
"/usr/share/doc/<package_name>/". Se voc definir a shell como Seco 1.4.2, Personalizar bash, escreva o seguinte.
$ cd <nome_do_pacote>
$ pager README.Debian
$ mc
Voc pode necessitar instalar o pacote de documentao correspondente, com o sufixo "-doc" no nome, para informaes mais
detalhadas.
Se voc estiver a ter problemas com um pacote especfico, certifique-se que verifica primeiro o Sistema de acompanhamento de
bugs Debian (BTS).
Tabela 2.5. Lista de sites web chave para resolver problemas com um pacote especfico.
site web comando
Pgina inicial do Sistema de acompanhamento de bugs Debian
(BTS)
sensible-browser "http://bugs.debian.org/"
O relatrio de bug de um nome de pacote conhecido
sensible-browser
"http://bugs.debian.org/<nome_do_pacote>"
O relatrio de bug de um nmero de bug conhecido
sensible-browser
"http://bugs.debian.org/<nmero_do_bug>"
Procure no Google com palavras de busca incluindo "site:debian.org", "site:wiki.debian.org", "site:lists.debian.org", etc.
Quando voc criar um relatrio de bug, por favor use o comando reportbug(1).
2.2. Operaes bsicas de gesto de pacotes
As operaes bsicas de gesto de pacotes no sistema Debian podem ser executas por qualquer ferramenta de gesto de pacotes
disponvel no sistema Debian. Aqui vamos explicar as ferramentas de gesto bsica de pacotes: apt-get / apt-cache e aptitude.
Para as operaes de gesto de pacotes que envolvam a instalao ou actualizao de meta-dados do pacote, voc necessita ter
privilgios de root.
2.2.1. apt-get / apt-cache contra o aptitude
Nota
O resolvedor de dependncias de pacotes do comando aptitude tem tendncia a sugerir remoes massivas
de pacotes quando os pacotes em unstable esto temporariamente inconsistentes. Esta situao um pouco
assustadora. Normalmente, o "apt-get dist-upgrade" deve resolver esta situao. Esta situao parece ser
causada principalmente pelas discrepncias entre verses entre os pacotes dependentes ou recomendados por
um meta-pacote como o gnome-core.
Os comandos apt-get e apt-cache so as ferramentas de gesto de pacotes mais bsicas
O apt-get e o apt-cache oferecem apenas a interface de linha de comandos.
O apt-get mais apropriado para uma actualizao maior ao sistema entre lanamentos, etc.
O apt-get oferece um resolvedor de pacotes robusto e estvel que utiliza os dados comuns do estado dos pacotes.
apt-get menos exigente em recursos de hardware. Consome menos memria e mais rpido.
O apt-cache oferece uma busca baseada em expresses regulares standard no nome do pacote e na descrio.
O apt-get e o apt-cache podem gerir vrias verses de pacotes utilizando o /etc/apt/preferences mas um pouco
incmodo.
O comando aptitude a ferramenta de gesto de pacotes mais verstil.
O aptitude oferece a interface de utilizador de texto interactiva de ecr completo.
O aptitude tambm oferece uma interface de utilizador de linha de comandos.
O aptitude mais apropriado para a gesto de pacotes interactiva diria como inspeccionar os pacotes instalados e
procurar pacotes disponveis.
O aptitude mais exigente em recursos de hardware. Consome mais memria e mais lento.
O aptitude oferece um busca baseada em expresses regulares avanada em todos os meta-dados dos pacotes.
O aptitude pode gerir vrias verses de pacotes sem utilizar o /etc/apt/preferences e bastante intuitivo.
2.2.2. Operaes bsicas de gesto de pacotes com a linha de comandos
Aqui esto algumas operaes bsicas de gesto de pacotes com a linha de comandos usando aptitude(8) e apt-get(8) / apt-
cache(8).
Tabela 2.6. Operaes bsicas de gesto de pacotes com a linha de comandos utilizando aptitude(8) e apt-get(8) / apt-
cache(8).
sintaxe do aptitude
sintaxe do apt-
get/apt-cache
descrio
aptitude update apt-get update actualiza os meta-dados do arquivo de pacotes
aptitude install
foo
apt-get install foo instala a verso candidata do pacote "foo" com as suas dependncias
aptitude safe-
upgrade
apt-get upgrade
instala as verses candidatas dos pacotes instalados sem remover quaisquer
outros pacotes
aptitude full-
upgrade
apt-get dist-upgrade
instala as verses candidatas dos pacotes instalados removendo outros pacotes
caso necessrio
aptitude remove foo apt-get remove foo remove o pacote "foo" deixando os seus ficheiros de configurao
N/D apt-get autoremove remove os pacotes auto-instalados que j no sejam necessrios
aptitude purge foo apt-get purge foo purga o pacote "foo" com os seus ficheiros de configurao
aptitude clean apt-get clean limpa completamente o repositrio local de ficheiros de pacotes obtidos
aptitude autoclean apt-get autoclean
limpa os pacotes desactualizados do repositrio local dos ficheiros de pacotes
recebidos
aptitude show foo apt-cache show foo mostra informao detalhada acerca do pacote "foo"
aptitude search
<regex>
apt-cache search
<regex>
procura pacotes que correspondem <expresso-regular>
aptitude why
<regex>
N/D
explica a razo porque o pacotes que correspondem <expresso_regular>
devem ser instalados
aptitude why-not
<regex>
N/D
explica a razo porque o pacotes que correspondem <expresso_regular> no
podem ser instalados
Nota
Apesar do comando aptitude vir com ricas funcionalidades como o seu resolvedor avanado de pacotes,
esta complexidade j causou (ou pode ainda causar) algumas regresses como os Bug #411123, Bug
#514930, e Bug #570377. Em caso de dvidas, por favor utilize os comandos apt-get e apt-cache sobre o
comando aptitude.
Nota
Como o apt-get e o aptitude partilham o estado dos pacotes auto-instalados (veja Seco 2.5.5, O estado
dos pacote para o APT) aps o lenny, voc pode misturar estas ferramentas sem grandes problemas (veja
Bug #594490).
O "aptitude why <expresso_regular>" pode listar mais informao por "aptitude -v why <expresso_regular>". Informao
semelhante pode ser obtida por "apt-cache rdepends <pacote>".
Quando o comando aptitude arrancado em modo de linha de comandos e enfrenta alguns problemas como conflitos de
pacotes, voc pode mudar para modo interactivo em ecr total, ao pressionar a tecla "e", mais tarde na linha de comandos.
Voc pode dar opes de comando logo aps "aptitude".
Tabela 2.7. Opes de comando notveis para o aptitude(8)
opo de comando descrio
-s simula o resultado do comando
-d faz apenas o download e no instala/actualiza
-D mostra breves explicaes antes das instalaes e remoes automticas
Para mais veja aptitude(8) e o "Manual de utilizador do aptitude" em "/usr/share/doc/aptitude/README".
Dica
O pacote dselect ainda est disponvel e foi a ferramenta de gesto de pacotes interactiva de ecr inteiro
preferida nos lanamentos anteriores.
2.2.3. Uso interactivo do aptitude
Para gesto de pacotes interactiva, arranque o aptitude em modo interactivo a partir da linha de comandos da consola conforme
se segue:
$ sudo aptitude -u
Password:
Isto actualiza a cpia local da informao do arquivo e mostra a lista de pacotes em ecr completo com menu. O aptitude coloca
a sua configurao em "~/.aptitude/config".
Dica
Se desejar utilizar a configurao do root em vez da do utilizador, utilize "sudo -H aptitude " em vez de
"sudo aptitude " na expresso acima.
Dica
O aptitude define automaticamente as aces pendentes como se fosse arrancado interactivamente. Se no
gostar disso, pode redefinir isto a partir do menu: "Aco" "Cancelar aces pendentes".
2.2.4. Teclas de atalho do aptitude
As combinaes notveis de teclas para explorar o estado dos pacotes e definir uma "aco planeada" neles neste modo de ecr
total so as seguintes:
Tabela 2.8. Lista de teclas de atalho do aptitude
tecla tecla de atalho
F10 ou Ctrl-t menu
? mostra a ajuda para teclas (listagem mais completa)
F10 Ajuda Manual do Utilizador mostra o Manual do Utilizador
u actualiza a informao de arquivo do pacote
+ marca o pacote para actualizao ou instalao
- marca o pacote para remoo (manter os ficheiros de configurao)
_ marca o pacote para purgar (remover ficheiros de configurao)
= coloca o pacote em reteno (hold)
U marca todos os pacotes com actualizaes (funciona como full-upgrade)
g comea a descarregar e a instalar os pacotes seleccionados
q sai do ecr actual e guarda as alteraes
x sai do ecr actual e descarta as alteraes
Enter ver informao acerca de um pacote
C ver o relatrio de alteraes de um pacote
l altera o limite dos pacotes mostrados
/ procura pela primeira correspondncia
\ repetir a ltima pesquisa
A especificao de nome de ficheiro da linha de comandos ou do aviso de menu aps pressionar "l" e "//" toma a expresso
regular do aptitude conforme descrito em baixo. A expresso regular do aptitude pode corresponder explicitamente a um nome
de pacote utilizando uma string comeada por "~n e seguida do nome do pacote.
Dica
Voc necessita pressionar "U", no interface visual, para ter todos os pacotes instalados actualizados para a
verso candidata. Caso contrrio, apenas os pacotes seleccionados e certos pacotes com dependncias
deles, versionadas, so actualizados para a verso candidata.
2.2.5. Vistas de pacote no aptitude
No modo de ecr completo interactivo do aptitude(8), os pacotes na lista de pacotes so mostrados como no prximo exemplo.
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
Aqui, esta linha significa desde a esquerda o seguinte:
A flag "estado actual" (a primeira letra)
A flag "aco planeada" (a segunda letra)
A flag "automtico" ( a terceira letra)
O nome do Pacote
A alterao na utilizao do espao do disco atribuda a "aco planeada"
A verso actual do pacote
A verso candidata do pacote
Dica
A lista completa de flags fornecida ao fundo do ecr de Ajuda mostrada ao pressionar "?".
A verso candidata escolhida de acordo com as preferncias locais actuais (veja apt_preferences(5) e Seco 2.7.3, Moldar a
verso candidata).
Esto disponveis vrios tipos de vistas de pacotes sob o menu "Vistas".
Tabela 2.9. Lista de vistas para o aptitude
vista estado descrio da vista
Vista de Pacote Bom veja Tabela 2.10, A categorizao das vista de pacotes standard (predefinio)
Recomendaes de
Auditoria
Bom
lista pacotes que so recomendados por alguns pacotes instalados mas ainda no esto
instalados
Lista de Pacotes Lisa Bom lista pacotes sem categorizao (para utilizar com expresses regulares)
Explorador de Debtags
Muito
utilizvel
lista pacotes categorizados de acordo com as suas entradas debtags
Explorador por
Categorias
Obsoleto
lista pacotes categorizados de acordo com a sua categoria (utilize o Explorador de
Debtags, em vez disto)
Nota
Por favor ajude-nos a melhorar a etiquetagem de pacotes com debtags!
A "Vista de Pacotes standard categoriza os pacotes de certo modo como o dselect com algumas funcionalidades extra.
Tabela 2.10. A categorizao das vista de pacotes standard
categoria descrio da vista
Pacotes Actualizveis lista pacotes organizados como seco rea pacote
Pacotes Novos , ,
Pacotes Instalados , ,
Pacotes No Instalados , ,
Pacotes Obsoletos ou Criados Localmente , ,
Pacotes Virtuais lista pacotes com a mesma funo
Tarefas lista pacotes com diferentes funes geralmente necessrias para uma tarefa
Dica
A vista Tarefas pode ser usada para escolher pacotes para a sua tarefa.
2.2.6. Opes do mtodo de pesquisa com o aptitude
O aptitude oferece vrias opes para voc procurar pacotes utilizando a sua frmula de expresses regulares.
Linha de comandos da shell:
"aptitude search '<aptitude_regex>'" para listar estado de instalao, nome do pacote e descrio curta dos
pacotes correspondentes
"aptitude show '<package_name>'" para listar a descrio detalhada do pacote
modo de ecr total interactivo:
"l" para limitar a vista de pacotes aos pacotes correspondentes
"/" para procurar um pacote correspondente
"\" para procurar um pacote correspondente voltando para trs
"n" para procurar o prximo
"N" para procurar o prximo (andando para trs)
Dica
A string para <nome_de_pacote> tratada como a correspondncia exacta da string para o nome do pacote a
menos que seja iniciada explicitamente com "~" para ser uma frmula de expresso regular.
2.2.7. A frmula regex do aptitude
A frmula de expresso regular do aptitude estendida tipo mutt ERE (veja Seco 1.6.2, Expresses regulares) e o
significado da extenses de regras de correspondncia especial especficas do aptitude so as seguintes:
Tabela 2.11. Lista da frmula regex do aptitude
descrio da regra de correspondncia extensa frmula da expresso regular
corresponde com o nome do pacote ~n<regex_name>
corresponde com a descrio ~d<regex_description>
corresponde com nome da tarefa ~t<regex_task>
corresponde com debtag ~G<regex_debtag>
corresponde com o maintainer ~m<regex_maintainer>
corresponde com seco do pacote ~s<regex_section>
corresponde com verso do pacote ~V<regex_version>
corresponde com arquivo ~A{wheezy,jessie,sid}
corresponde com origem ~O{debian,}
prioridade da correspondncia ~p{extra,important,optional,required,standard}
corresponde com pacotes essenciais ~E
corresponde com pacotes virtuais ~v
corresponde com pacotes novos ~N
corresponde com aces pendentes ~a{install,upgrade,downgrade,remove,purge,hold,keep}
corresponde com os pacotes instalados ~i
corresponde com pacotes instalados com marca A (pacotes
instalados automaticamente)
~M
corresponde com pacotes instalados sem a marca A (pacotes
seleccionados pelo administrador)
~i!~M
corresponde com pacotes instalados e com actualizaes disponveis ~U
corresponde com pacotes removidos mas no purgados ~c
corresponde com pacotes removidos, purgados ou que podem-ser-
removidos
~g
corresponde com pacotes que declaram dependncias quebradas ~b
corresponde com pacotes que declaram dependncias quebradas de
<type>
~B<type>
corresponde a pacotes <pattern> que declaram dependncia de
<type>
~D[<type>:]<pattern>
corresponde a pacotes <pattern> que declaram dependncia
quebrada de <type>
~DB[<type>:]<pattern>
corresponde a pacotes para os quais o pacote que corresponde a
<pattern> declara o <type> de dependncia ~R[<type>:]<pattern>
corresponde a pacotes para os quais o pacote que corresponde a
<pattern> declara o <type> de dependncia quebrada
~RB[<type>:]<pattern>
corresponde com pacotes com os quais alguns pacotes instalados
dependem
~R~i
corresponde com pacotes com os quais nenhum outro pacote
instalado depende
!~R~i
corresponde com pacotes com os quais alguns pacotes instalados
dependem ou recomendam
~R~i|~Rrecommends:~i
corresponde o pacote <pattern> com a verso filtrada ~S filter <pattern>
corresponde com todos os pacotes (true) ~T
no corresponde com nenhum pacote (false) ~F
A parte da expresso regular a mesma ERE que aquela utilizada nas tpicas ferramentas de texto tipo-Unix que utilizam
"^", ".*", "$" etc. como o egrep(1), awk(1) e perl(1).
A dependncia <type> uma de (dependncias, pr-dependncias, recomendaes, sugestes, conflitos, substituies,
fornecimentos), que especfica o inter-relacionamento do pacote.
O <type> de dependncia predefinida "depends".
Dica
Quando <regex_pattern> for uma string nula, coloca "~T" imediatamente aps o comando.
Aqui esto alguns atalhos.
"~P<term>" == "~Dprovides:<term>"
"~C<term>" == "~Dconflicts:<term>"
"~W term" == "(|term)"
Os utilizadores familiarizados com o mutt aprendem rpido, pois o mutt foi a inspirao para a sintaxe de expresso. Veja
"PROCURANDO, LIMITANDO,E EXPRESSES" no "Manual do Utilizador" "/usr/share/doc/aptitude/README".
Nota
Com a verso lenny do aptitude(8), a nova sintaxe de formato longo como a "?broken" pode ser utilizada
para correspondncia de expresses regulares no lugar da sua equivalente antiga de formato curto "~b".
Agora o caractere de espao " " considerado como um caractere terminante de expresso regular em
adio ao caractere til "~". Veja o "Manual do Utilizador" para a nova sintaxe de formato longo.
2.2.8. Resoluo de dependncias do aptitude
A seleco de um pacote no aptitude no puxa apenas os pacotes definidos na sua lista de "Dependncias:" mas tambm os
definidos na lista "Recomendados:" se o menu "F10 Opes Preferncias Manuseamento de dependncias" assim estiver
definido. Estes pacotes auto-instalados so removidos automaticamente sob o aptitude se no forem mais necessrios.
2.2.9. Relatrios (logs) de actividade de pacotes
Voc pode verificar o histrico de actividade de pacotes nos ficheiros log.
Tabela 2.12. Os ficheiros log para actividades de pacotes
ficheiro contedo
/var/log/dpkg.log Log da actividade de nvel do dpkg para as actividades de todos os pacotes
/var/log/apt/term.log Log da actividade genrica do APT
/var/log/aptitude Log da actividade de comandos do aptitude
Na realidade, no muito fcil obter rapidamente uma compreenso significativa a partir destes logs. Veja Seco 9.2.10,
Gravar alteraes em ficheiros de configurao para um modo mais fcil.
2.3. Exemplos de operaes do aptitude
Aqui esto alguns exemplos de operaes do aptitude(8).
2.3.1. Listagem de pacotes com correspondncia por expresso regular nos nomes de pacotes
O seguinte comando lista pacotes com regex a condizer com nomes de pacotes.
$ aptitude search '~n(pam|nss).*ldap'
p libnss-ldap - mdulo NSS para usar LDAP como um servio de nomes
p libpam-ldap - Mdulo de Autenticao Acoplvel que permite interfaces do LDAP
Isto d muito jeito para para encontrar o nome exacto de um pacote.
2.3.2. Explorar com a correspondncia de expresso regular
a expresso regular "~dipv6" na vista "Nova Lista de Pacotes Simples" com o aviso "l", limita a vista aos pacotes com a
descrio correspondente e permite-lhe explorar interactivamente a sua informao.
2.3.3. Purgar pacotes removidos definitivamente
Voc pode purgar todos os restantes ficheiros de configurao dos pacotes removidos.
Verifique os resultados do seguinte comando.
# aptitude search '~c'
Se achar que os pacotes listados podem ser purgados, execute o seguinte comando:
# aptitude purge '~c'
Voc pode querer fazer o mesmo no modo interactivo para um controle mais preciso.
Voc fornece a expresso regular "~c" na vista "Nova Vista de Pacotes" com a prompt "l". Isto limita a vista de pacotes apenas
aos pacotes correspondentes expresso regular, isto , "removidos mas no purgados". Todos estes pacotes correspondentes a
expresses regulares podem ser mostrados ao pressionar "[" nos cabealhos de nvel de topo.
Depois pressione "_" em cabealhos de nvel de topo tal como "Pacotes No Instalados". Apenas os pacotes correspondentes
expresso regular sob o cabealho so marcados para serem purgados com isto. Voc pode excluir alguns pacotes a serem
purgados ao pressionar "=" interactivamente para cada um deles.
Esta tcnica muito til e funciona com muitas outras teclas de comando.
2.3.4. Acertar o estado auto/manual de instalao
Aqui est como acertar o estado auto/manual de instalao dos pacotes (aps usar um instalador de pacotes sem ser o aptitude e
etc.).
1. Arranque o aptitude em modo interactivo como root.
2. Escreva "u", "U", "f" e "g" para actualizar a lista de pacotes e actualizar os pacotes.
3. Escreva "l" para inserir o limite de visualizao de pacotes aos "~i(~R~i|~Recomendados:~i)" e escreva "M" sobre "Pacotes
Instalados" como auto-instalado.
4. Escreva "l" para inserir o limite de visualizao de pacotes como "~prequired|~pimportant|~pstandard|~E" e escreva "m"
sobre "Pacotes Instalados" como instalados manualmente.
5. Escreva "l" para inserir o limite de visualizao de pacotes como "~i!~M" e remover pacotes no utilizados ao escrever "-"
sobre cada um deles aps exp-los ao escrever "[" sobre "Pacotes Instalados".
6. Escreva "l" para inserir o limite de amostragem de pacotes como "~i" depois escreva "m" sobre "Tasks" para marcar esses
pacotes como instalados manualmente.
7. Termina o aptitude.
8. Inicie "apt-get -s autoremove|less" como root para verificar os que no so usados.
9. Reinicie o aptitude em modo interactivo e marque os pacotes necessrios como "m".
10. Reinicie o "apt-get -s autoremove|less" como root para verificar que o REMOVED contm apenas os pacotes
esperados.
11. Arranque "apt-get autoremove|less" como root para auto-remover os pacotes no usados.
A opo "m" sobre "Tasks" uma opo para prevenir situaes de remoo de pacotes em massa no futuro.
2.3.5. Actualizao total ao sistema
Nota
Quando mover para um novo lanamento etc, dever considerar fazer uma instalao limpa do novo sistema
mesmo sabendo que Debian actualizvel como descrito em baixo. Isto d-lhe a hiptese de remover os
lixos coleccionados e expe-lhe a melhor combinao do pacotes mais recentes. claro que dever fazer
uma cpia de segurana do sistema para um lugar seguro (veja Seco 10.2, Salvaguarda (backup) e
recuperao) antes de fazer isto. Eu recomendo fazer uma configurao de duplo arranque usando parties
diferentes para ter a transio mais suave.
Voc pode executar a actualizao geral do sistema para um lanamento mais recente ao alterar o contedo do ficheiro
"/etc/apt/sources.list" apontando para um novo lanamento e correndo o comando "apt-get update; apt-get dist-
upgrade".
Para actualizar de stable para testing ou unstable, voc substitui "wheezy" no exemplo "/etc/apt/sources.list" de
Seco 2.1.4, Bsico do arquivos Debian por "jessie" ou "sid".
Na realidade, voc pode enfrentar algumas complicaes devido a problemas com a transio de alguns pacotes, na maioria
devido a dependncias desses pacotes. Quanto maior a diferena da actualizao, maior a probabilidade de ter grandes
problemas. Para a transio da stable antiga para a nova stable aps o seu lanamento, voc pode ler as suas novas Notas de
Lanamento e seguir o procedimento exacto descrito l para minimizar problemas.
Quando voc decidir mover de stable para testing antes do seu lanamento formal, no existem Notas de Lanamento para o
ajudar. A diferena entre stable e testing pode ter crescido bastante aps o lanamento stable anterior e complicar a situao
da actualizao.
Voc deve dar passos de precauo para a actualizao total enquanto recolhe a informao mais recente da lista de mail e
usando senso comum.
1. Leia as "Notas de Lanamento" anteriores.
2. Faa cpia de segurana a todo o sistema (especialmente dados e informao de configurao).
3. Tenha um meio de arranque mo para o caso do gestor de arranque ficar danificado.
4. Informe os utilizadores do sistema com bastante antecedncia.
5. Grave a actividade de actualizao com o script(1).
6. Para prevenir a remoo aplique "unmarkauto" aos pacotes necessrios, p.e., "aptitude unmarkauto vim", .
7. Minimize o nmero de pacotes instalados para reduzir a hiptese de conflitos de pacotes, p.e., remova os pacotes da
tarefas de ambiente de trabalho.
8. Remova o ficheiro "/etc/apt/preferences" (desactiva o apt-pinning).
9. Tente a actualizao em passos inteligentes: oldstable stable testing unstable.
10. Actualize o ficheiro "/etc/apt/sources.list" para apontar apenas para o novo arquivo e corra "aptitude update".
11. Instale, opcionalmente, os novos pacotes de base primeiro, ex., "aptitude install perl".
12. Corra o comando "apt-get -s dist-upgrade" para avaliar o impacto.
13. Corra o comando "apt-get dist-upgrade" em ltimo lugar.
Cuidado
No sensato saltar grandes lanamentos de Debian quando se actualiza entre lanamentos stable.
Cuidado
Nas "Notas de Lanamento" anteriores, GCC, Linux Kernel, initrd-tools, Glibc, Perl, a cadeia de
ferramentas do APT, etc. necessitaram de alguma ateno especial para a actualizao geral do sistema.
Para actualizaes dirias em unstable, veja Seco 2.4.3, Salvaguardar para problemas de pacotes..
2.4. Operaes de gesto avanada de pacotes
2.4.1. Operaes de gesto avanada de pacotes com linha de comandos
Aqui est uma lista de outras operaes de gesto de pacotes para as quais o aptitude de demasiado alto nvel ou faltam-lhe
funcionalidades necessrias.
Tabela 2.13. Lista de operaes de gesto avanada de pacotes
comando aco
COLUMNS=120 dpkg -l
<padro_do_nome_de_pacote>
lista o estado de um pacote instalado para o relatrio de bug
dpkg -L <nome_do_pacote> lista o contedo de um pacote instalado
dpkg -L <nome_do_pacote> | egrep
'/usr/share/man/man.*/.+'
lista os manuais para um pacote instalado
dpkg -S <padro_do_nome_de_ficheiro> lista os pacotes instalados que condizem com o nome de ficheiro
apt-file search
<padro_do_nome_de_ficheiro>
lista pacotes no arquivo que condizem com o nome de ficheiro
apt-file list
<padro_do_nome_de_pacote>
lista os contedos dos pacotes que correspondem no arquivo
dpkg-reconfigure <nome_do_pacote> reconfigura o pacote exacto
dpkg-reconfigure -p=low
<nome_do_pacote>
reconfigura o pacote exacto com as questes mais detalhadas
configure-debian reconfigura pacotes a partir do menu de ecr completo
dpkg --audit faz auditoria ao sistema por pacotes parcialmente instalados
dpkg --configure -a configura todos os pacotes parcialmente instalados
apt-cache policy
<nome_do_pacote_binrio>
mostra a verso disponvel, a prioridade e informao de arquivo de um pacote
binrio
apt-cache madison <nome_do_pacote> mostra a verso disponvel e informao de arquivo de um pacote
apt-cache showsrc
<nome_do_pacote_binrio>
mostra informao do pacote de cdigo-fonte de um pacote binrio
apt-get build-dep <nome_do_pacote> instala os pacotes necessrios para compilar pacote
aptitude build-dep <nome_do_pacote> instala os pacotes necessrios para compilar pacote
apt-get source <nome_do_pacote> descarrega cdigo-fonte (do arquivo standard)
dget <URL para ficheiro dsc> descarrega um pacote de cdigo-fonte (de outro arquivo)
dpkg-source -x
<nome_do_pacote>_<verso>-
<verso_debian>.dsc
constri uma rvore de cdigo-fonte a partir de um conjunto de pacotes de cdigo-
fonte ("*.orig.tar.gz" e "*.debian.tar.gz"/"*.diff.gz")
debuild binary compila pacote(s) a partir de uma rvore fonte local
make-kpkg imagem_de_kernel compila um pacote de kernel a partir de uma rvore fonte de kernel
make-kpkg --initrd imagem_de_kernel
compila um pacote de kernel a partir de uma rvore fonte de kernel com initramfs
activa
dpkg -i <nome_pacote>_<verso>-
<verso_debian>_<arquitectura>.deb
instalar um pacote local no sistema
debi <nome_pacote>_<verso>-
<verso_debian>_<arquitectura>.dsc
instala pacote(s) locais no sistema
dpkg --get-selections '*'
>seleco.txt
guarda a informao de estado de seleco a nvel de pacotes do dpkg
dpkg --set-selections <seleco.txt define a informao de estado de seleco a nvel de pacotes do dpkg
echo <nome-do-pacote> hold | dpkg --
set-selections
define o estado de seleco de pacote ao nvel do dpkg para hold (equivalente a
"aptitude hold <nome_do_pacote>")
Nota
Para um pacote com a funcionalidade multi-arch, voc pode precisar de especificar o nome da arquitectura
para alguns comandos. Por exemplo, use "dpkg -L libglib2.0-0:amd64" para listar o contedo do pacote
libglib2.0-0 para a arquitectura amd64.
Cuidado
As ferramentas de pacotes de nvel mais baixo como "dpkg -i " e "debi " devero ser utilizadas com
cuidado pelo administrador do sistema. No tomam conta automaticamente das dependncias de pacotes
necessrias. As opes de linha de comandos do dpkg "--force-all" e semelhantes (veja dpkg(1)) destinam-
se apenas a serem utilizadas por especialistas. Utiliza-las sem o conhecimento total dos seus efeitos pode
danificar completamente o seu sistema.
Por favor note o seguinte:
Toda a configurao do sistema e comandos de instalao necessitam ser executados pelo root.
A contrrio do aptitude, que utiliza regex (veja Seco 1.6.2, Expresses regulares), os outros comandos de gesto de
pacotes utilizam padres como a shell glob (veja Seco 1.5.6, Glob da shell).
O apt-file(1), disponibilizado pelo pacote apt-file, tem de correr previamente "apt-file update".
O configure-debian(8) disponibilizado pelo pacote configure-debian corre o dpkg-reconfigure(8) como seu backend.
O dpkg-reconfigure(8) corre scripts de pacote utilizando o debconf(1) como o seu backend.
Os comandos "apt-get build-dep", "apt-get source" e "apt-cache showsrc" necessitam de "deb-src" em
"/etc/apt/sources.list".
Os dget(1), debuild(1), e debi(1) necessitam do pacote devscripts.
Veja o procedimento de (re)empacotamento utilizando "apt-get source" em Seco 2.7.13, Portar um pacote para o
sistema stable.
O comando make-kpkg necessita do pacote kernel-package (veja Seco 9.9, O kernel).
Para empacotamento em geral veja Seco 12.11, Criar um pacote Debian.
2.4.2. Verificao dos ficheiros pacotes instalados
A instalao de debsums permite a verificao dos ficheiros dos pacotes instalados contra valores MD5sum do ficheiro
"/var/lib/dpkg/info/*.md5sums" com debsums(1). Para saber como o MD5sum funciona veja Seco 10.3.5, O valor de
controlo MD5 .
Nota
Como a base de dados MD5sum pode ser adulterada por um intruso, o debsums(1) uma ferramenta de
segurana de utilizao limitada. bom apenas para verificar modificaes locais pelo administrador ou
danos devido a erros de media.
2.4.3. Salvaguardar para problemas de pacotes.
Muito utilizadores preferem seguir o lanamento unstable do sistema Debian pelas suas novas funcionalidades e pacotes. Isto
torna o sistema permevel a a bugs crticos dos pacotes.
A instalao do pacote apt-listbugs salvaguarda o seu sistema contra bugs crticos ao verificar automaticamente o Debian BTS
por bugs crticos quando fizer actualizaes com o sistema APT.
A instalao do pacote apt-listchanges disponibiliza notcias importantes de "NEWS.Debian" ao actualizar com o sistema APT.
2.4.4. Procurar nos meta-dados do pacote
Embora hoje em dia visitar o site Debian http://packages.debian.org/ facilite a busca nos meta-dados do pacote, vamos ver
modos mais tradicionais.
Os comandos grep-dctrl(1), grep-status(1) e grep-available(1) podem ser utilizados para procurar qualquer ficheiro que tenha o
formato geral de um ficheiro de controle de pacote Debian.
"dpkg -S <padro_de_nome_de_ficheiro>" pode ser utilizado para procurar nomes de pacotes instalados pelo dpkgque contenham
ficheiros com o nome coincidente. Mas isto no v os ficheiros criados pelo script do responsvel do pacote.
Se necessitar de fazer uma busca mais elaborada nos meta-dados do dpkg, voc necessita executar o comando "grep -e
padro_de_expresso_regular *" no directrio "/var/lib/dpkg/info/". Isto f-lo procurar as palavras mencionadas nos scripts
dos pacotes e nos textos de questes de instalao.
Se desejar procurar, recursivamente, as dependncias de pacotes, dever utilizar o apt-rdepends(8).
2.5. Os interiores da gesto de pacotes Debian
Vamos aprender como o sistema de gesto de pacotes Debian funciona internamente. Isto dever ajud-lo a criar a sua prpria
soluo para alguns problemas com pacotes.
2.5.1. Meta dados do arquivo
Os ficheiros de meta-dados para cada distribuio so armazenados sob "dist/<nome-de_cdigo>" em cada site mirror Debian,
p.e., "http://ftp.us.debian.org/debian/". A sua estrutura de arquivo pode ser explorada com um navegador web. Existem 6
tipos de meta-dados chave.
Tabela 2.14. O contedo dos meta dados do arquivo Debian
ficheiro localizao contedo
Release topo da distribuio descrio do arquivo e informao de integridade
Release.gpg topo da distribuio
ficheiro de assinatura para o ficheiro "Release" assinado
com a chave do arquivo
Contents-
<architecture>
topo da distribuio
lista de todos os ficheiros para todos os pacotes no arquivo
pertinente
Release
topo de cada combinao de distribuio/
rea/arquitectura
descrio do arquivo utilizada para a regra do
apt_preferences(5)
Packages
topo de cada combinao de distribuio/
rea/arquitectura-binrio
debian/control concatenado para pacotes binrios
Sources
topo de cada combinao de distribuio/
rea/fonte
debian/control concatenado para pacotes fonte
No arquivo recente, estes meta-dados so armazenados como ficheiros diferenciais e comprimidos para reduzir o trfego de rede.
2.5.2. Ficheiro "Release" de nvel de topo e autenticidade:
Dica
O ficheiro "Release" no nvel de topo usado para assinar o arquivo sob o sistema secure APT.
Cada suite do arquivo Debian tem um ficheiro "Release" no nvel de topo, p.e.,
"http://ftp.us.debian.org/debian/dists/unstable/Release", como o seguinte:
Origin: Debian
Label: Debian
Suite: unstable
Codename: sid
Date: Sat, 14 May 2011 08:20:50 UTC
Valid-Until: Sat, 21 May 2011 08:20:50 UTC
Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc
Components: main contrib non-free
Description: Debian x.y Unstable - Not Released
MD5Sum:
bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz
9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz
3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz
...
Nota
Aqui, voc pode encontrar a minha lgica de utilizar "suite" e "nome de cdigo" em Seco 2.1.4, Bsico
do arquivos Debian. A "distribuio" usada quando se refere a ambos "suite" e "nome de cdigo". Todos
os nomes de "reas" do arquivo oferecidos pelo arquivo so listados sob "Componentes".
A integridade do ficheiro "Release" de nvel de topo verificada pela infraestrutura criptogrfica chamada secure apt.
O ficheiro de assinatura criptogrfica "Release.gpg" criado a partir do ficheiro "Release" de nvel de topo autenticado e
da chave secreta do arquivo Debian.
A chave do arquivo Debian pblico pode ser semeada em "/etc/apt/trusted.gpg";
automaticamente ao instalar o chaveiro com o pacote base-files mais recente, ou
manualmente pela ferramenta gpg ou apt-key com a chave de arquivo pblico mais recente publicada em ftp-
master.debian.org.
O sistema secure APT verifica a integridade do ficheiro "Release" de nvel de topo descarregado criptograficamente por
este ficheiro "Release.gpg" a pela chave de arquivo pblico Debian em "/etc/apt/trusted.gpg".
A integridade de todos os ficheiros "Packages" e "Sources" verificada utilizando valores MD5sum do ficheiro "Release" de
nvel de topo. A integridade de todos os ficheiros de pacotes verificada utilizando valores MD5sum nos ficheiros "Packages" e
"Sources" Veja debsums(1) e Seco 2.4.2, Verificao dos ficheiros pacotes instalados.
Como a verificao de assinatura criptogrfica um processo muito mais intenso para a CPU do que o clculo de valor
MD5sum, a utilizao de valores MD5sum para cada pacote enquanto se utiliza assinatura criptogrfica para o ficheiro
"Release" de nvel de topo disponibiliza boa segurana com desempenho (veja Seco 10.3, Infraestrutura da segurana de
dados).
2.5.3. Ficheiros "Release" do nvel de arquivo
Dica
Os ficheiros "Release" do nvel de arquivo so utilizados para a regra do apt_preferences(5).
Existem ficheiros "Release" do nvel de arquivo para todas as localizaes do arquivo especificadas pela linha "deb" em
"/etc/apt/sources.list", tais como "http://ftp.us.debian.org/debian/dists/unstable/main/binary-amd64/Release" ou
"http://ftp.us.debian.org/debian/dists/sid/main/binary-amd64/Release" conforme se segue:
Archive: unstable
Origin: Debian
Label: Debian
Component: main
Architecture: amd64
Cuidado
Para a estrofe "Archive:" so utilizados os nomes de suite ("stable", "testing" e "unstable", ) no arquivo
Debian enquanto que os nomes de cdigo ("dapper", "feisty", "gutsy", "hardy" e "intrepid", ) so
utilizados no arquivo Ubuntu.
Para alguns arquivos, tais como experimental, e wheezy-backports, que contm pacotes que no devem ser instalados
automaticamente, existe uma linha extra, p.e., "http://ftp.us.debian.org/debian/dists/experimental/main/binary-
amd64/Release" como se segue.
Archive: experimental
Origin: Debian
Label: Debian
NotAutomatic: yes
Component: main
Architecture: amd64
Por favor note que para arquivos normais sem "NotAutomatic: yes", o valor Pin-Priority predefinido 500, enquanto que para
arquivos especiais com "NotAutomatic: yes", o valor Pin-Priority predefinido 1 (veja apt_preferences(5) e Seco 2.7.3,
Moldar a verso candidata).
2.5.4. Obter os meta dados do pacote
Quando as ferramentas do APT, como o aptitude, apt-get, synaptic, apt-file, auto-apt, so utilizadas, ns precisamos de
actualizar as cpias locais dos meta-dados que contm a informao do arquivo Debian. Estas cpias locais tm os seguintes
nomes de ficheiros correspondentes aos nomes de distribuio, rea, e arquitectura especificados em
"/etc/apt/sources.list" (veja Seco 2.1.4, Bsico do arquivos Debian).
"/var/lib/apt/lists/ftp.us.debian.org_debian_dists_<distribuio>_Release"
"/var/lib/apt/lists/ftp.us.debian.org_debian_dists_<distribuio>_Release.gpg"
"/var/lib/apt/lists/ftp.us.debian.org_debian_dists_<distribuio>_<rea>_binrio-<arquitectura>_Packages"
"/var/lib/apt/lists/ftp.us.debian.org_debian_dists_<distribuio>_<rea>_fonte_Sources"
"/var/cache/apt/apt-file/ftp.us.debian.org_debian_dists_<distribuio>_Contents-<arquitectura>.gz" (para o apt-
file)
Os primeiros 4 tipos de ficheiros so partilhados por todos os comandos APT pertinentes e actualizados a partir da linha de
comandos pelo "apt-get update" ou "aptitude update". Os meta-dados "Packages" so actualizados se existir a linha "deb" em
"/etc/apt/sources.list". Os meta dados "Sources" so actualizados se existir a linha "deb-src" em "/etc/apt/sources.list".
Os meta-dados "Packages" e "Sources" contm a estrofe "Filename:" que aponta para a localizao de ficheiro dos pacotes
binrios e de cdigo-fonte. Actualmente, estes pacotes esto localizados sob a rvore de directrios "pool/" para a transio
melhorada atravs dos lanamentos.
As cpias locais dos meta-dados "Packages" podem ser pesquisadas interactivamente com a ajuda do aptitude. O comando de
procura especializada grep-dctrl(1) pode pesquisar as cpias locais dos meta-dados "Packages" e "Sources".
A cpia local dos meta-dados "Contents-<arquitectura>" pode ser actualizada pelo "apt-file update" e a sua localizao
diferente dos outros 4. Veja apt-file(1). (O auto-apt utiliza localizao diferente para a cpia local de "Contents-
<arquitectura>.gz" por predefinio.)
2.5.5. O estado dos pacote para o APT
Alm aos meta-dados obtidos remotamente, a ferramenta APT aps o lenny armazena a sua informao de estado de instalao
gerada localmente em "/var/lib/apt/extended_states" que utilizada por todas as ferramentas do APT para seguirem todos os
pacotes auto-instalados.
2.5.6. O estado dos pacote para o aptitude
Alm aos meta-dados obtidos remotamente, o aptitude armazena a sua informao de estado de instalao gerada localmente
em "/var/lib/aptitude/pkgstates" que usada apenas pelo prprio.
2.5.7. Copias locais dos pacotes obtidos
Todos os pacotes obtidos remotamente atravs do mecanismo APT so armazenados em "/var/cache/apt/archives" at que
sejam limpos.
Esta politica de limpeza de ficheiros de cache para o aptitude pode ser definida em "Opes" "Preferncias" e pode ser
forada pelo seu menu "Limpar cache de pacotes" ou "Limpar ficheiros obsoletos" em "Aces".
2.5.8. Nomes de ficheiros de pacotes Debian
Ficheiros de pacotes Debian tm estruturas de nomes particulares.
Tabela 2.15. A estrutura de nomes dos pacotes Debian
tipo de pacote estrutura de nomes
O pacote binrio (a.k.a deb)
<nome_de_pacote>_<epoch>:<verso_upstream>-<verso.debian>-
<arquitectura>.deb
O pacote binrio para debian-installer (a.k.a udeb) <nome_de_pacote>_<epoch>:<verso_upstream>-<verso.debian>-
<arquitectura>.udeb
O pacote de cdigo-fonte (cdigo-fonte da origem)
<nome_de_pacote>_<epoch>:<verso_upstream>-
<verso.debian>.orig.tar.gz
O pacote de cdigo-fonte 1.0 (alteraes do
Debian)
<nome_de_pacote>_<epoch>:<verso_upstream>-<verso.debian>.diff.gz
O pacote de cdigo-fonte 3.0 (quilt) (alteraes
do Debian)
<nome_de_pacote>_<epoch>:<verso_upstream>-
<verso.debian>.debian.tar.gz
O pacote de cdigo-fonte (descrio) <nome_do_pacote>_<epoch>:<verso_upstream>-<verso.debian>.dsc
Dica
Aqui apenas so descritos formatos de pacote fonte bsicos. Veja mais em dpkg-source(1).
Tabela 2.16. Os caracteres utilizveis para cada componente nos nomes de pacotes Debian
componente do nome caracteres utilizveis (regex) existncia
<nome-do-pacote> [a-z,A-Z,0-9,.,+,-]+ necessrio
<epoch>: [0-9]+: opcional
<verso-upstream> [a-z,A-Z,0-9,.,+,-,:]+ necessrio
<verso.debian> [a-z,A-Z,0-9,.,+,~]+ opcional
Nota
Pode verificar a ordem da verso de pacotes com o dpkg(1), p.e., "dpkg --compare-versions 7.0 gt 7.~pre1
; echo $?" .
Nota
O debian-installer (d-i) utiliza udeb como a extenso de ficheiro para o seu pacote binrio em vez do normal
deb. Um pacote udeb um pacote deb despido que remove alguns contedos no essenciais como a
documentao para poupar espao enquanto relaxa os requisitos de poltica do pacote. Ambos os pacotes deb
e udeb partilham a mesma estrutura de pacote. O "u" significa micro.
2.5.9. O comando dpkg
dpkg(1) a ferramenta de mais baixo nvel para a gesto de pacotes Debian. muito poderosa e tem que ser utilizada com
cuidado.
Enquanto instala o pacote chamado "<nome_de_pacote>", o dpkg processa-o na seguinte ordem:
1. Desempacota o ficheiro deb (equivalente a "ar -x")
2. Executa "<nome_de_pacote>.preinst" utilizando o debconf(1)
3. Instala o contedo do pacote no sistema (equivalente a "tar -x")
4. Executa "<nome_de_pacote>.postinst" utilizando o debconf(1)
O sistema debconf disponibiliza interaco standard com o utilizador com suporte de I18N e L10N (Captulo 8, I18N e L10N).
Tabela 2.17. Ficheiros notveis criados pelo dpkg
ficheiro descrio dos contedos
/var/lib/dpkg/info/<nome_do_pacote>.conffiles lista de ficheiros de configurao. (modificvel pelo utilizador)
/var/lib/dpkg/info/<nome_do_pacote>.list lista de ficheiros e directrios instalados pelo pacote
/var/lib/dpkg/info/<nome_do_pacote>.md5sums lista de valores de hash MD5 para os ficheiros instalados pelo pacote
/var/lib/dpkg/info/<nome_do_pacote>.preinst script de pacote para ser executado antes da instalao do pacote
/var/lib/dpkg/info/<nome_do_pacote>.postinst script de pacote para ser executado aps a instalao do pacote
/var/lib/dpkg/info/<nome_do_pacote>.prerm script de pacote para ser executado antes da remoo do pacote
/var/lib/dpkg/info/<nome_do_pacote>.postrm script de pacote para ser executado aps a remoo do pacote
/var/lib/dpkg/info/<nome_do_pacote>.config script de pacote para o sistema debconf
/var/lib/dpkg/alternatives/<nome_do_pacote> a informao alternativa usada pelo comando update-alternatives
/var/lib/dpkg/available a informao de disponibilidade para todos os pacotes
/var/lib/dpkg/diversions
a informao de diverses usadas pelo dpkg(1) e definidas por dpkg-
divert(8)
/var/lib/dpkg/statoverride
a informao de sobreposio de estado usada pelo dpkg(1) e definida por
dpkg-statoverride(8)
/var/lib/dpkg/status a informao de estado para todos os pacotes
/var/lib/dpkg/status-old o backup de primeira gerao do ficheiro "var/lib/dpkg/status"
/var/backups/dpkg.status*
o backup de segunda gerao e os mais antigos do ficheiro
"var/lib/dpkg/status"
O ficheiro "status" tambm utilizado por ferramentas como o dpkg(1), o "dselect update" e o "apt-get -u dselect-upgrade".
O comando especializado de busca grep-dctrl(1) pode procurar as cpias locais dos meta dados "status" e "available".
Dica
No ambiente do debian-installer, o comando udpkg usado para abrir pacotes udeb. O comando udpkg uma
verso reduzida do comando dpkg.
2.5.10. O comando update-alternatives
O sistema Debian tem um mecanismo para instalar programas de certa maneira sobrepostos de um modo pacfico usando update-
alternatives(8). Por exemplo, voc pode fazer o comando vi seleccionar o vim para executar enquanto instala ambos os pacotes
vim e nvi.
$ ls -l $(type -p vi)
lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/vi
$ sudo update-alternatives --display vi
...
$ sudo update-alternatives --config vi
Selection Command
----------------------------------------------
1 /usr/bin/vim
*+ 2 /usr/bin/nvi
Enter para manter a predefinio[*], ou escreva o nmero da seleco: 1
O sistema de alternativas do Debian mantm a sua seleco como links simblicos em "/etc/alternatives/". O processo de
seleco utiliza um ficheiro correspondente em "/var/lib/dpkg/alternatives/".
2.5.11. O comando dpkg-statoverride
Stat overrides disponibilizados pelo comando dpkg-statoverride(8) so um modo de dizer ao dpkg(1) para usar um dono ou
modo diferente para um ficheiro quando um pacote for instalado. Se for especificado "--update" e o ficheiro existir
imediatamente definido para o novo dono e modo.
Cuidado
A alterao directa do dono ou modo para um ficheiro cujo dono o pacote usando os comandos chmod ou
chown pelo administrador do sistema reiniciada pela prxima actualizao do pacote.
Nota
Eu uso a palavra ficheiro aqui, mas na verdade pode ser qualquer objecto de sistema de ficheiros com que o
dpkg lide, incluindo directrios, dispositivos, etc.
2.5.12. O comando dpkg-divert
As diverses de ficheiros disponibilizadas pelo comando dpkg-divert(8) so um modo de forar o dpkg(1) a no instalar um
ficheiro na sua localizao predefinida, mas para uma localizao divergida. Os uso do dpkg-divert destina-se aos scripts do
responsvel do pacote. A sua utilizao casual pelo administrador do sistema est descontinuada.
2.6. Recuperao de um sistema danificado
Quando corre o sistema unstable, espera-se que o administrador saiba recuperar o sistema de situaes de gesto de pacotes com
conflitos.
Cuidado
Alguns mtodos descritos aqui so aces de alto risco. Voc foi avisado!
2.6.1. Incompatibilidade com configuraes antigas de utilizador
Se um programa GUI de ambiente de trabalho ficou instvel aps uma actualizao significante da verso original, voc deve
suspeitar de interferncias com os ficheiros locais de configurao antigos criados por ele. Se estiver estvel sob uma nova conta
de utilizador criada, esta hiptese est confirmada. (Isto um bug de empacotamento e geralmente evitado pelo empacotador.)
Para recuperar a estabilidade, voc deve mover os ficheiros de configurao locais correspondentes e reiniciar o programa GUI.
Voc poder ter que ler o contedo dos ficheiros de configurao antigos para mais tarde recuperar informao de configurao.
(No os apague muito depressa.)
2.6.2. Pacotes diferentes com ficheiros sobrepostos
Os sistemas de gesto de pacotes a nvel de arquivo, como o aptitude(8) ou o apt-get(1), nem tentam instalar pacotes com
ficheiros sobrepostos utilizando as dependncias do pacote. (veja Seco 2.1.6, Dependncias de pacote).
Erros do responsvel do pacote ou de implantao inconsistente de mistura de fontes de arquivos (veja Seco 2.7.2, Pacotes de
fontes de arquivos misturados) pelo administrador do sistema podem criar situaes com dependncias de pacotes definidas
incorrectamente. Quando voc instala um pacote com ficheiros sobrepostos usando o aptitude(8) ou o apt-get(1) sob tal situao,
o dpkg(1) que desempacota o pacote certifica-se de retornar um erro ao programa que o chama sem sobrescrever os ficheiros
existentes.
Cuidado
A utilizao de pacotes de terceiros introduz riscos significantes ao sistema atravs dos scripts do
desenvolvedor do pacote que so executados com privilgios de root e podem fazer o que quiserem ao seu
sistema. O comando dpkg(1) apenas protege contra a sobreposio de ficheiros ao desempacotar.
Voc pode contornar tal problema de instalao ao remover primeiro o pacote ofensivo antigo, <pacote_antigo>.
$ sudo dpkg -P <pacote-antigo>
2.6.3. Corrigir script problemtico de pacote
Quando um comando no script do pacote retorna erro por alguma razo e o script termina com erro, o sistema de gesto de
pacotes aborta a sua aco e termina com pacotes parcialmente instalados. Quando um pacote contm bugs nos seus scripts de
remoo, o pacote pode tornar-se impossvel de remover e isso bastante desagradvel.
Para o problema do script de pacote de "<nome_do_pacote>", voc deve observar os seguintes scripts do pacote:
"/var/lib/dpkg/info/<nome_do_pacote>.preinst"
"/var/lib/dpkg/info/<nome_do_pacote>.postinst"
"/var/lib/dpkg/info/<nome_do_pacote>.prerm"
"/var/lib/dpkg/info/<nome_do_pacote>.postrm"
Editar o script do pacote ofensivo a partir de root usando as seguintes tcnicas:
desactivar a linha ofensiva ao preceder um "#"
forar um retorno com sucesso ao acrescentar a linha ofensiva com "|| true"
Configurar todos os pacotes parcialmente instalados com o seguinte comando.
# dpkg --configure -a
2.6.4. Recuperao com o comando dpkg
Como o dpkg uma ferramenta de pacotes de muito baixo nvel, pode funcionar sob situaes muito ms como um sistema que
no arranca sem ligao a rede. Vamos assumir que o pacote foo est danificado e precisa de ser substitudo.
Voc pode ainda encontrar cpias em cache de uma verso antiga livre de bugs do pacote foo no directrio de cache de pacotes:
"/var/cache/apt/archives/". (se no, voc pode descarreg-lo a partir do arquivo http://snapshot.debian.net/ ou copi-lo da
cache de pacotes de uma mquina funcional.)
Se puder arrancar o sistema, voc pode instal-lo com o seguinte comando.
# dpkg -i /caminho/para/foo_<verso_antiga>_<arquitectura>.deb
Dica
Se os danos no sistema forem menores, voc pode em alternativa fazer downgrade (regredir a verso) ao
sistema completo como em Seco 2.7.10, Downgrade de emergncia usando o nvel mais alto do sistema
APT.
Se o seu sistema no puder arrancar pelo disco rgido, voc precisa procurar outras maneiras de arranc-lo.
1. Arranque o sistema usando o CD de instalao de Debian (debian-installer) em modo de recuperao.
2. Monte o sistema danificado no disco rgido em "/target".
3. Instale uma verso antiga do pacote foo com o seguinte.
# dpkg --root /target -i /caminho/para/foo_<verso_antiga>_<arquitectura>.deb
Este exemplo funciona mesmo se o comando dpkg no disco rgido estiver danificado.
Dica
Pode ser utilizado, de modo semelhante, para recuperar um sistema danificado qualquer sistema GNU/Linux
arrancado de outro sistema no disco rgido, Live CD de GNU/Linux, por pen USB de arranque ou arranque
pela rede.
Se a tentativa de instalar um pacote deste modo falha devido a algumas violaes de dependncias e voc necessitar realmente
de fazer isto como ltimo recurso, voc pode sobrepor a dependncia utilizando a "--ignore-depends", "--force-depends" e
outras opes do dpkg. Se fizer isto, voc precisa de fazer um srio esforo para restaurar as dependncias apropriadas mais
tarde. Veja dpkg(8) para mais detalhes.
Nota
Se o seu sistema estiver seriamente danificado, voc deve fazer uma salvaguarda completa para um lugar
seguro (veja Seco 10.2, Salvaguarda (backup) e recuperao) e deve fazer uma instalao limpa. Isto
consome menos tempo e produz melhores resultados no fim.
2.6.5. Recuperar dados de seleco de pacotes
Se por qualquer razo o "/var/lib/dpkg/status" ficar corrompido o sistema Debian perde os dados de seleco de pacotes e
sofre severamente. Procure o ficheiro antigo "/var/lib/dpkg/status" em "/var/lib/dpkg/status-old" ou
"/var/backups/dpkg.status.*".
Manter "/var/backups/" numa partio separada pode ser uma boa ideia porque este directrio contm muitos dados importantes
do sistema .
Em caso de srios danos eu recomendo fazer uma instalao limpa aps fazer a salvaguarda do sistema. Mesmo que tudo em
"/var/" esteja perdido, voc ainda pode recuperar alguma informao dos directrios em "/usr/share/doc/" para o guiar na sua
nova instalao.
Reinstalar o sistema mnimo (ambiente de trabalho).
# mkdir -p /caminho/para/sistema/antigo
Monte o sistema antigo em "/caminho/para/sistema/antigo/".
# cd /caminho/para/sistema/antigo/usr/share/doc
# ls -1 >~/ls1.txt
# cd /usr/share/doc
# ls -1 >>~/ls1.txt
# cd
# sort ls1.txt | uniq | less
Ento ser-lhe-o apresentados nomes de pacotes para instalar. (Podem existir alguns nomes que no de pacotes como "texmf".)
2.7. Dicas para a gesto de pacotes
2.7.1. Como escolher os pacotes Debian
Voc pode procurar os pacotes que satisfaam as suas necessidades com o aptitude a partir da descrio do pacote ou a partir da
lista "Tarefas".
Quando encontrar mais de 2 pacotes semelhantes e no sabe qual deles instalar sem o esforo de "teste e erro", voc deve utilizar
algum senso comum. Eu considero os seguintes pontos como boas indicaes dos pacotes preferidos:
Essencial: sim > no
Area: main > contrib > non-free
Prioridade: required > important > standard > optional > extra
Tasks: pacotes listados em tarefas como "Ambiente de Trabalho"
Pacotes seleccionados pela dependncia de pacote (p.e., python2.4 por python)
Popcon: mais alto na votao e nmero de instalaes
Changelog: actualizaes regulares feitas pelo responsvel do pacote
BTS: Nenhum bug RC (nenhum crtico, nenhum grave, e nenhum bug srio)
BTS: manuteno responsvel dos relatrios de bugs
BTS: o maior nmero de bugs corrigidos recentemente
BTS: o menor nmero de bugs "no-lista-de-desejos" remanescentes
Sendo o Debian um projecto voluntrio com modelo de desenvolvimento distribudo, o seu arquivo contm muitos pacotes com
diferentes objectivos e qualidade. Voc tem de tomar as suas prprias decises sobre o que fazer com eles.
2.7.2. Pacotes de fontes de arquivos misturados
Cuidado
Instalar pacotes de fontes misturadas de arquivos no suportado pela distribuio oficial Debian excepto
para combinaes de arquivos oficialmente suportadas tais como a stable com security updates e wheezy-
updates.
Aqui est um exemplo de operaes para incluir, uma vez, pacotes especficos com novas verses da origem encontrados em
unstable enquanto se acompanha a testing.
1. Altere o ficheiro "/etc/apt/sources.list" temporariamente para entrada nica "unstable".
2. Corra "aptitude update".
3. Corra "aptitude install <nome-do-pacote>".
4. Recupere o ficheiro "/etc/apt/sources.list" original para testing.
5. Corra "aptitude update".
Voc no cria o ficheiro "/etc/apt/preferences" nem precisa de se preocupar com o apt-pinning com esta abordagem manual.
Mas muito incmoda.
Cuidado
Quando utiliza fontes misturadas de arquivos, voc tem que assegurar por si prprio a compatibilidade dos
pacotes pois Debian no o garante. Se existir incompatibilidade de pacotes, voc pode danificar o seu
sistema. Voc tem que ser capaz de julgar estes requisitos tcnicos. A utilizao de fontes misturadas de
arquivos aleatrios uma operao completamente opcional e a sua utilizao no algo que eu o encoraje a
utilizar.
As regras gerais para instalar pacotes de arquivos diferentes so as seguintes.
Pacotes no-binrios de ("Arquitecture: all") so mais seguro para instalar.
pacotes de documentao: sem requisitos especiais
pacotes de programa interpretador: tem de estar disponvel interpretador compatvel
Pacotes binrios (no "Architecture: all") geralmente enfrentam muitos obstculos e so inseguros para instalar.
compatibilidade de verso de biblioteca (incluindo a "libc")
compatibilidade de verso de programa utilitrio relacionada
compatibilidade da ABI do Kernel
Compatibilidade ABI C++

Nota
De modo a tornar um pacote seguro para instalar, alguns pacotes de programas binrios comerciais no-
livres podem vir fornecidos com bibliotecas completamente ligadas estaticamente. Mesmo assim voc deve
verificar problemas de compatibilidade da ABI e etc. com eles.
Nota
Excepto para evitar pacotes com problemas a curto prazo, instalar pacotes binrios de arquivos no
suportados oficialmente geralmente uma m ideia. Isto verdadeiro mesmo que utilize apt-pinning (veja
Seco 2.7.3, Moldar a verso candidata). Voc deve considerar o chroot ou tcnicas semelhantes (veja
Seco 9.10, Sistema virtualizado) para correr programas de arquivos diferentes.
2.7.3. Moldar a verso candidata
Sem o ficheiro "/etc/apt/preferences", o sistema APT escolhe a verso disponvel mais recente com a verso candidata
utilizando a string de verso. Este o estado normal e a utilizao recomendada do sistema APT. Todas as combinaes de
arquivos oficialmente suportadas no necessitam do ficheiro "/etc/apt/preferences" porque alguns arquivos que no devem ser
utilizados como fonte automtica de actualizaes so marcados como NotAutomatic e so tratados de modo apropriado.
Dica
A regra de comparao da string de verso pode ser verificada com, p.e., "dpkg --compare-versions ver1.1
gt ver1.1~1; echo $?" (veja dpkg(1)).
Quando voc instala regularmente pacotes de uma mistura de fontes de arquivos (veja Seco 2.7.2, Pacotes de fontes de
arquivos misturados), voc pode automatizar estas operaes complicadas ao criar o ficheiro "/etc/apt/preferences" com
entradas apropriadas e moldando a regra de seleco de pacotes para a verso candidata como descrito em apt_preferences(5).
A isto chama-se apt-pinning.
Ateno
A utilizao de apt-pinning por um utilizador novato certamente pedir grandes problemas. Voc deve
evitar utilizar o apt-pinning excepto quando necessitar absolutamente dele.
Cuidado
Quando utilizar apt-pinning, voc prprio tem que assegurar a compatibilidade dos pacotes pois Debian no
o garante. O apt-pinning uma operao completamente opcional e a sua utilizao no algo que eu
encoraje a fazer.
Cuidado
Os ficheiros Release de nvel de arquivo (veja Seco 2.5.3, Ficheiros "Release" do nvel de arquivo) so
utilizados para a regra do apt_preferences(5). Assim o apt-pinning funciona apenas com nome de "suite"
para arquivos Debian normais e arquivos Debian de segurana. (Isto diferente dos arquivos do Ubuntu.)
Por exemplo, voc pode fazer "Pin: release a=unstable" mas no pode fazer "Pin: release a=sid" no
ficheiro "/etc/apt/preferences".
Cuidado
Quando utilizar um arquivo no-Debian como parte de apt-pinning, voc deve verificar ao que ele se destina
e tambm verificar a sua credibilidade. Por exemplo, Ubuntu e Debian no se destinam a ser misturados.
Nota
Mesmo que voc no crie o ficheiro "/etc/apt/preferences", voc pode fazer operaes no sistema bastante
complexas (veja Seco 2.6.4, Recuperao com o comando dpkg e Seco 2.7.2, Pacotes de fontes de
arquivos misturados) sem o apt-pinning.
Aqui est uma explicao simplificada da tcnica de apt-pinning.
O sistema APT escolhe o pacote de actualizao com o Pin-Priority maior das fontes de pacotes disponveis definidas no
ficheiro "/etc/apt/sources.list" como o pacote de verso candidata. Se o Pin-Priority do pacote for maior que 1000, esta
restrio de verso para actualizao abandonada para permitir a regresso (veja Seco 2.7.10, Downgrade de emergncia).
O valor Pin-Priority de cada pacote definido por entradas "Pin-Priority" no ficheiro "/etc/apt/preferences" ou utiliza o seu
valor predefinido.
Tabela 2.18. Lista de valores notveis de Pin-Priority para a tcnica de apt-pinning.
Pin-Priority efeitos do apt-pinning no pacote
1001 instala o pacote mesmo que isto constitua uma regresso na verso (downgrade) do pacote
990 utilizado como predefinio para o arquivo de lanamento de destino
500 utilizado por predefinio para o arquivo normal
100 utilizado como predefinio para os arquivos NotAutomatic e ButAutomaticUpgrades
100 utilizado para o pacote instalado
1 utilizado como predefinio para o arquivo NotAutomatic
-1 nunca instala o pacote mesmo que este seja recomendado
O arquivo do lanamento alvo pode ser definido por diferentes mtodos.
ficheiro de configurao "/etc/apt/apt.conf" com a linha "APT::Default-Release "stable";"
opo de linha de comandos, p.e. "apt-get install -t testing algum-pacote"
Os arquivos NotAutomatic e ButAutomaticUpgrades so definidos pelo servidor de arquivo que contm no seu ficheiro
Release do nvel de arquivo (veja Seco 2.5.3, Ficheiros "Release" do nvel de arquivo) ambos "NotAutomatic: yes" e
"ButAutomaticUpgrades: yes". O arquivo NotAutomatic definido pelo servidor de arquivo que contm no seu ficheiro Release
de nvel de arquivo apenas "NotAutomatic: yes".
A situao de apt-pinning do <pacote> de vrias fontes de arquivos mostrada por "apt-cache policy <pacote>".
Uma linha comeada com "Package pin:" lista a verso do pacote de pin se estiver definida a associao apenas com o
<pacote> p.e., "Package pin: 0.190".
No existe nenhuma linha com "Package pin:" se no estiver definida nenhuma associao apenas com <pacote>.
O valor Pin-Priority associando ao <pacote> listado no lado direito de todas as strings de verso, p.e., "0.181 700".
listado "0" direita de todas as strings de verso se nenhuma associao apenas com <pacote> for definida, ex., "0.181
0".
Os valores Pin-Priority dos arquivos (definidos como "Package: *" no ficheiro "/etc/apt/preferences") so listados
esquerda dos caminhos dos arquivos, ex., "100 http://ftp.XX.debian.org/debian/ wheezy-backports/main Packages".
2.7.4. Actualizaes e Backports
Existem os arquivos wheezy-updates e backports.debian.org que disponibilizam pacotes de actualizao para stable (wheezy).
De modo a utilizar estes arquivos, liste todos os arquivos necessrios no ficheiro "/etc/apt/sources.list" como se segue:
deb http://ftp.us.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib
deb http://ftp.us.debian.org/debian/ wheezy-updates main contrib non-free
deb http://ftp.us.debian.org/debian/ wheezy-backports main contrib non-free
No h necessidade de definir valores especficos de Pin-Priority no ficheiro "/etc/apt/preferences". Quando os novos pacotes
ficam disponveis, a configurao predefinida disponibiliza as actualizaes mais razoveis (veja Seco 2.5.3, Ficheiros
"Release" do nvel de arquivo).
Todos os pacotes antigos instalados so actualizados para mais recentes a partir de wheezy-updates.
Apenas os pacotes antigos instalados manualmente a partir de wheezy-backports so actualizados para mais recentes a
partir de wheezy-backports.
Sempre que desejar instalar um pacote chamado "<nome-do-pacote>" com as suas dependncias a partir do arquivo wheezy-
backports manualmente, utilize o seguinte comando enquanto muda o lanamento alvo com a opo "-t".
$ sudo apt-get install -t wheezy-backports <nome_do_pacote>
2.7.5. Bloquear pacotes instalados por "Recomendados"
Se desejar no puxar determinados pacotes automaticamente atravs de "Recommends", tem de criar o ficheiro
"/etc/apt/preferences" e listar explicitamente esses pacotes no topo conforme se segue:
Package: <package-1>
Pin: version *
Pin-Priority: -1
Package: <package-2>
Pin: version *
Pin-Priority: -1
2.7.6. Acompanhar testing com alguns pacotes de unstable
Aqui est um exemplo de tcnica de apt-pinning para incluir pacotes especficos de verso original mais recente encontrados
em unstable e actualizados regularmente enquanto de segue o testing. Liste todos os arquivos necessrios no ficheiro
"/etc/apt/sources.list" conforme se segue:
deb http://ftp.us.debian.org/debian/ testing main contrib non-free
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free
deb http://security.debian.org/ testing/updates main contrib
Configure o ficheiro "/etc/apt/preferences" como o seguinte:
Package: *
Pin: release a=unstable
Pin-Priority: 100
Quando desejar instalar um pacote chamado "<nome_do_pacote>" com as suas dependncias a partir do arquivo unstable sob esta
configurao, invoque o seguinte comando que muda o lanamento alvo com a opo "-t" (o Pin-Priority de unstable torna-se
990).
$ sudo apt-get install -t unstable <nome-do-pacote>
Com esta configurao, a execuo usual de "apt-get upgrade" e "apt-get dist-upgrade" (ou "aptitude safe-upgrade" e
"aptitude full-upgrade") actualiza os pacotes que foram instalados a partir do arquivo testing usando o arquivo testing actual
e os pacotes que foram instalados a partir do arquivo unstable usando o arquivo unstable actual.
Cuidado
Tenha cuidado para no remover a entrada "testing" do ficheiro "/etc/apt/sources.list". Sem a entrada
"testing" l, o sistema APT actualiza os pacotes do novo arquivo unstable.
Dica
Geralmente edito o ficheiro "/etc/apt/sources.list" para comentar a entrada do arquivo "unstable" logo
aps a operao acima. Isto evita a lentido do processo de actualizao ao ter demasiadas entradas no
ficheiro "/etc/apt/sources.list" embora isto impea a actualizao dos pacotes que foram instalados a
partir do arquivo unstable utilizando o arquivo unstable actual.
Dica
Se for utilizado "Pin-Priority: 1" em vez de "Pin-Priority: 100" no ficheiro "/etc/apt/preferences", os
pacotes j instalados que tm o valor Pin-Priority de 100 no so actualizados pelo arquivo unstable mesmo
se a entrada "testing" no ficheiro "/etc/apt/sources.list" seja removida.
Se desejar acompanhar pacotes particulares em unstable automaticamente sem uma instalao inicial "-t unstable", tem de
criar o ficheiro "/etc/apt/preferences" e listar explicitamente todos esses pacotes no topo conforme se segue:
Package: <package-1>
Pin: release a=unstable
Pin-Priority: 700
Package: <package-2>
Pin: release a=unstable
Pin-Priority: 700
Estes definem o valor Pin-Priority para cada pacote especfico. Por exemplo, de modo a acompanhar a verso unstable mais
recente deste "Debian Reference" em Portugus, voc deve ter as seguintes entradas no ficheiro "/etc/apt/preferences".
Package: debian-reference-pt
Pin: release a=unstable
Pin-Priority: 700
Package: debian-reference-common
Pin: release a=unstable
Pin-Priority: 700
Dica
Esta tcnica de apt-pinning vlida mesmo se voc estiver a seguir o arquivo stable. Pela minha
experincia e at agora, os pacotes de documentao sempre foram seguros de instalar a partir do arquivo
unstable.
2.7.7. Acompanhar unstable com alguns pacotes de experimental
Aqui est outro exemplo de tcnica de apt-pinning para incluir pacotes de verso de origem mais recentes encontrados em
experimental enquanto se segue unstable. Voc lista todos os arquivos necessrios no ficheiro "/etc/apt/sources.list"
conforme o seguinte:
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free
deb http://ftp.us.debian.org/debian/ experimental main contrib non-free
deb http://security.debian.org/ testing/updates main contrib
O valor Pin-Priority predefinido para o arquivo experimental sempre 1 (<<100) porque um arquivo NotAutomatic (veja
Seco 2.5.3, Ficheiros "Release" do nvel de arquivo). No necessrio definir o valor Pin-Priority explicitamente no ficheiro
"/etc/apt/preferences" apenas para usar o arquivo experimental a menos que deseje seguir pacotes particulares nele
automaticamente para a prxima actualizao.
2.7.8. Descarga e actualizao automtica de pacotes
O pacote apt vem com o seu prprio script de cron "/etc/cron.daily/apt" para suportar a descarga automtica de pacotes. Este
script pode ser melhorado para executar a actualizao automtica de pacotes ao instalar o pacote unattended-upgrades. Esta
pode ser personalizada por parmetros em "/etc/apt/apt.conf.d/02backup" e "/etc/apt/apt.conf.d/50unattended-upgrades"
conforme descrito em "/usr/share/doc/unattended-upgrades/README".
O pacote unattended-upgrades destina-se principalmente para as actualizaes de segurana do sistema stable. Se o risco de
danificar um sistema stable existente pelas actualizaes automticas for menor do que ser danificado por um intruso que usa
buracos de segurana que foram fechados por actualizaes de segurana, voc deve considerar usar estas actualizaes
automticas com parmetros de configurao como os que se seguem.
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";
Se estiver a correr um sistema unstable, no vai querer utilizar as actualizaes automticas pois um dia, com certeza, iro
danificar o seu sistema. Mesmo para casos de unstable, voc pode ainda querer descarregar os pacotes com antecedncia para
poupar tempo na actualizao interactiva com parmetros de configurao como os que se seguem.
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "0";
2.7.9. Limitar a largura de banda de descarga para o APT
Se desejar limitar a largura de banda para o APT para, por exemplo, 800Kib/sec (=100kiB/sec), deve configurar o APT e o seu
parmetro de configurao conforme o seguinte.
APT::Acquire::http::Dl-Limit "800";
2.7.10. Downgrade de emergncia
Cuidado
O downgrade (regresso de verso) no suportado oficialmente pelo sistema Debian por design. Dever ser
feito apenas como parte de um processo de recuperao de emergncia. Apesar desta situao, conhecido
por funcionar bem em muitos incidentes. Para sistemas crticos, Voc deve fazer salvaguardas (backups) de
todos os dados importantes aps a operao de recuperao e reinstalar um sistema novo a partir da estaca
zero.
Voc pode ter sorte ao fazer o downgrade de uma arquivo recente para um arquivo mais antigo para recuperar de uma
actualizao ao sistema que o deixou danificado ao manipular a verso candidata (veja Seco 2.7.3, Moldar a verso
candidata). Esta uma alternativa preguiosa s aces tediosas de muitos comandos "dpkg -i <pacote-danificado>_<verso-
antiga>.deb" (veja Seco 2.6.4, Recuperao com o comando dpkg).
Procure as linhas no ficheiro "/etc/apt/sources.list" que acompanham unstable como se segue.
deb http://ftp.us.debian.org/debian/ sid main contrib non-free
Substitua-as de modo a acompanharem testing.
deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
Altere o ficheiro "/etc/apt/preferences" como o seguinte.
Package: *
Pin: release a=testing
Pin-Priority: 1010
Corra "apt-get update; apt-get dist-upgrade" para forar a regresso dos pacotes no sistema.
Remova este ficheiro especial "/etc/apt/preferences" aps este downgrade de emergncia.
Dica
uma boa ideia remover (no purgar) o mximo de pacotes para minimizar problemas de dependncias.
Voc pode necessitar remover e instalar manualmente alguns pacotes para conseguir o downgrade do
sistema. O kernel Linux, gestor de arranque, udev, PAM, APT, os pacotes relacionados com a rede e os seus
ficheiros de configurao requerem ateno especial.
2.7.11. Quem fez o upload do pacote?
Apesar do nome do responsvel listado em "/var/lib/dpkg/available" e "/usr/share/doc/package_name/changelog" fornecer
alguma informao sobre "quem est por detrs a actividade de empacotamento", quem faz o upload real do pacote um tanto
obscuro. O who-uploads(1) no pacote devscripts identifica quem foi o uploader real dos pacotes fonte Debian.
2.7.12. O pacote equivs
Se vai compilar um programa a partir do cdigo-fonte para substituir um pacote Debian, o melhor torn-lo num pacote local
realmente 'debianizado' (*.deb) e utilizar um arquivo privado.
Se escolher compilar um programa de fonte e instal-lo sob "/usr/local", pode necessitar de utilizar o equivs como ltimo
recurso para satisfazer as dependncias em falta para o pacote.
Package: equivs
Priority: extra
Section: admin
Description: Engana as dependncias de pacotes Debian
Este um pacote dummy que pode ser usado para criar pacotes Debian,
que apenas contm informao de dependncias.
2.7.13. Portar um pacote para o sistema stable
Para actualizaes parciais do sistema stable, desejvel reconstruir um pacote dentro do seu ambiente utilizando um pacote de
cdigo-fonte. Isto evita actualizaes macias de pacotes devido s suas dependncias.
Adicione as seguintes entradas ao "/etc/apt/sources.list" de um sistema stable.
deb-src http://http.us.debian.org/debian unstable main contrib non-free
Instale os pacotes necessrios para a compilao e descarregue o pacote de cdigo-fonte conforme o seguinte:
# apt-get update
# apt-get dist-upgrade
# apt-get install fakeroot devscripts build-essential
$ apt-get build-dep foo
$ apt-get source foo
$ cd foo*
Actualize alguns pacotes de correntes de ferramentas como o dpkg, e o debhelper a partir de pacotes de backport se forem
necessrios para o "backporting".
Execute o seguinte.
$ dch -i
Aumentar a verso do pacote, p.e. um com "+bp1" acrescentado em "debian/changelog"
Compile os pacotes e instale-os para o sistema com o seguinte:
$ debuild
$ cd ..
# debi foo*.changes
2.7.14. Servidor proxy para o APT
Como colocar em mirror uma sub-seco inteira do arquivo Debian um desperdcio de espao de disco e largura de banda de
rede, a implantao se um servidor proxy local para o APT desejvel tendo em considerao se administrar muitos sistemas em
LAN. O APT pode ser configurado para utilizar servidores proxy web genricos (http) como o squid (veja Seco 6.10, Outras
aplicaes de servidor de rede) conforme descrito em apt.conf(5) e em "/usr/share/doc/apt/examples/configure-index.gz". A
varivel de ambiente $http_proxy" pode ser utilizada para sobrepor a definio de servidor proxy do ficheiro
"/etc/apt/apt.conf".
Existem ferramentas de proxy especiais para o arquivo Debian. Voc deve verificar o BTS antes de as utilizar.
Tabela 2.19. Lista de ferramentas proxy especiais para arquivos Debian
pacote popcon tamanho descrio
approx V:1, I:2 3489 servidor proxy de cache para ficheiros de arquivo Debian (programa OCaml compilado)
apt-cacher V:1, I:2 313 Proxy de cache para pacotes Debian e ficheiros de cdigo-fonte (programa Perl)
apt-cacher-ng V:3, I:5 1204 Proxy de cache para distribuio de pacotes de software (programa C++ compilado)
debtorrent V:0, I:0 1185
Proxy BitTorrent para descarregar pacotes Debian (programa Python)
Cuidado
Quando Debian reorganiza a estrutura do seu arquivo, estas ferramentas de proxy especializadas tendem a
necessitar ser reescritas de pelo responsvel do pacote e podem no estar funcionais durante algum tempo.
Por outro lado, os servidores proxy web (http) genricos so mais robustos e mais fceis de acompanhar
estas mudanas.
2.7.15. Pequeno arquivo de pacotes pblico
Aqui est um exemplo para criar um pequeno arquivo de pacotes pblico compatvel com o moderno sistema secure APT (veja
Seco 2.5.2, Ficheiro "Release" de nvel de topo e autenticidade:). Vamos assumir algumas coisas:
nome da conta: "foo"
Nome da mquina: "www.example.com"
Pacotes necessrios: apt-utils, gnupg, e outros pacotes
URL: "http://www.example.com/~foo/" ( "/home/foo/public_html/index.html")
Arquitectura de pacotes: "amd64"
Crie uma chave de arquivo APT de Foo no seu sistema servidor como o seguinte:
$ ssh foo@www.example.com
$ gpg --gen-key
...
$ gpg -K
...
sec 1024D/3A3CB5A6 2008-08-14
uid Foo (ARCHIVE KEY) <foo@www.example.com>
ssb 2048g/6856F4A7 2008-08-14
$ gpg --export -a 3A3CB5A6 >foo.public.key
Publique o ficheiro de chave de arquivo "foo.public.key" com o ID de chave "3A3CB5A6" para Foo
Crie uma rvore de arquivo chamada "Origin: Foo" como o seguinte:
$ umask 022
$ mkdir -p ~/public_html/debian/pool/main
$ mkdir -p ~/public_html/debian/dists/unstable/main/binary-amd64
$ mkdir -p ~/public_html/debian/dists/unstable/main/source
$ cd ~/public_html/debian
$ cat > dists/unstable/main/binary-amd64/Release << EOF
Archive: unstable
Version: 4.0
Component: main
Origin: Foo
Label: Foo
Architecture: amd64
EOF
$ cat > dists/unstable/main/source/Release << EOF
Archive: unstable
Version: 4.0
Component: main
Origin: Foo
Label: Foo
Architecture: source
EOF
$ cat >aptftp.conf <<EOF
APT::FTPArchive::Release {
Origin "Foo";
Label "Foo";
Suite "unstable";
Codename "sid";
Architectures "amd64";
Components "main";
Description "Public archive for Foo";
};
EOF
$ cat >aptgenerate.conf <<EOF
Dir::ArchiveDir ".";
Dir::CacheDir ".";
TreeDefault::Directory "pool/";
TreeDefault::SrcDirectory "pool/";
Default::Packages::Extensions ".deb";
Default::Packages::Compress ". gzip bzip2";
Default::Sources::Compress "gzip bzip2";
Default::Contents::Compress "gzip bzip2";
BinDirectory "dists/unstable/main/binary-amd64" {
Packages "dists/unstable/main/binary-amd64/Packages";
Contents "dists/unstable/Contents-amd64";
SrcPackages "dists/unstable/main/source/Sources";
};
Tree "dists/unstable" {
Sections "main";
Architectures "amd64 source";
};
EOF
Pode automatizar actualizaes repetitivas do contedo do arquivo APT no seu sistema servidor configurando o dupload.
Colocar todos os ficheiros de pacotes em "~foo/public_html/debian/pool/main/" ao executar "dupload -t foo changes_file"
no cliente enquanto o "~/.dupload.conf" contm o seguinte:
$cfg{'foo'} = {
fqdn => "www.exemplo.com",
method => "scpb",
incoming => "/home/foo/public_html/debian/pool/main",
# The dinstall on ftp-master sends emails itself
dinstall_runs => 1,
};
$cfg{'foo'}{postupload}{'changes'} = "
echo 'cd public_html/debian ;
apt-ftparchive generate -c=aptftp.conf aptgenerate.conf;
apt-ftparchive release -c=aptftp.conf dists/unstable >dists/unstable/Release ;
rm -f dists/unstable/Release.gpg ;
gpg -u 3A3CB5A6 -bao dists/unstable/Release.gpg dists/unstable/Release'|
ssh foo@www.exemplo.com 2>/dev/null ;
echo 'Arquivo pacote criado!'";
O script hook postupload inicializado pelo dupload(1) cria ficheiros de arquivo actualizados para cada upload.
Pode adicionar este pequeno arquivo pblico linha de apt do sistema cliente com o seguinte:
$ sudo bash
# echo "deb http://www.example.com/~foo/debian/ unstable main" \
>> /etc/apt/sources.list
# apt-key add foo.public.key
Dica
Se o arquivo estiver localizado no sistema de ficheiros local, ento pode utilizar antes "deb
file:///home/foo/debian/ "
2.7.16. Gravar e copiar a configurao do sistema
Voc pode criar um cpia local do estado de seleco de pacotes e debconf com o seguinte:
# dpkg --get-selections '*' > selection.dpkg
# debconf-get-selections > selection.debconf
Aqui, "*" faz com que "selection.dpkg" tambm inclua entradas de pacotes para "purgar".
Voc pode transferir estes 2 ficheiros para outro computador e instal-los l com o seguinte.
# dselect update
# debconf-set-selections < minha_seleco.debconf
# dpkg --set-selections < minha_seleco.dpkg
# apt-get -u dselect-upgrade # ou dselect install
Se est a pensar em gerir muitos servidores num cluster com praticamente a mesma configurao, voc deve considerar utilizar
um pacote especializado como o fai para gerir o sistema completo.
2.7.17. Converter e instalar um pacote binrio aliengena
O alien(1) permite a converso de pacotes binrios disponibilizados em formatos de ficheiro rpm da Red Hat, slp da Stampede,
tgz de Slackware e pkg de Solaris num pacote deb Debian.Se quiser utilizar um pacote de outra distribuio de Linux em vez
daquele que tem instalado no seu sistema, pode utilizar o alien para convert-lo a partir do seu formato de pacote preferido e
instala-lo. O alien tambm suporta pacotes LSB.
Ateno
O alien(1) no deve ser utilizado para substituir pacotes essenciais do sistema, tais como os sysvinit, libc6,
libpam-modules, etc. Na prtica, o alien(1) deve ser apenas utilizado para pacotes non-free apenas-binrios
que sejam compatveis com LSB ou ligados estaticamente. Para softwares livres, voc deve utilizar o seu
pacote de cdigo-fonte para compilar pacotes Debian reais.
2.7.18. Extrair um pacote sem o dpkg
O contedo dos pacotes "dpkg*.deb" pode ser extrado sem utilizar o dpkg(1) em qualquer ambiente estilo Unix utilizando os
ar(1) e tar(1) standard.
# ar x /path/to/dpkg_<version>_<arch>.deb
# ls
total 24
-rw-r--r-- 1 bozo bozo 1320 2007-05-07 00:11 control.tar.gz
-rw-r--r-- 1 bozo bozo 12837 2007-05-07 00:11 data.tar.gz
-rw-r--r-- 1 bozo bozo 4 2007-05-07 00:11 debian-binary
# mkdir control
# mkdir data
# tar xvzf control.tar.gz -C control
# tar xvzf data.tar.gz -C data
Os outros contedos do pacote "*.deb" podem ser extrados pelo comando dpkg-deb(1) obtido do pacote "dpkg*.deb" como em
cima; ou usando o standard ar(1) e o novo tar(1) do GNU com o suporte de descompresso xz(1) de modo semelhante como em
cima.
Tambm pode explorar o contedo de um pacote utilizando o comando mc.
2.7.19. Mais leituras sobre a gesto de pacotes
Voc pode aprender mais sobre a gesto de pacotes a partir das seguintes documentaes.
Documentaes principais sobre a gesto de pacotes:
aptitude(8), dpkg(1), tasksel(8), apt-get(8), apt-config(8), apt-key(8), sources.list(5), apt.conf(5), e
apt_preferences(5);
"/usr/share/doc/apt-doc/guide.html/index.html" e "/usr/share/doc/apt-doc/offline.html/index.html" do
pacote apt-doc; e
"/usr/share/doc/aptitude/html/en/index.html" do pacote aptitude-doc-en.
Documentaes oficiais e detalhadas no arquivo Debian:
"Manual de Poltica Debian Captulo 2 - O Arquivo Debian",
"Referncia dos Programadores de Debian, Captulo 4 - Recursos para Programadores de Debian 4.6 O Arquivo
Debian", e
"A FAQ de Debian GNU/Linux, Captulo 6 - Os arquivos FTP de Debian".
Tutorial para construir um pacote Debian para utilizadores de Debian:
"Guia dos Novos Maintainers de Debian".



Captulo 1. Manuais de GNU/Linux Captulo 3. A inicializao do sistema

Você também pode gostar