Índice
apt-get
/ apt-cache
contra o
aptitude
testing
com alguns pacotes de
unstable
unstable
com alguns pacotes de
experimental
![]() |
Nota |
---|---|
Este capítulo é escrito assumindo o lançamento estável mais recente com o
nome de código: |
Debian é uma organização voluntária que constrói distribuições consistentes de pacotes binários pré-compilados de software livre e distribui-os a partir do seu arquivo.
O arquivo Debian é oferecido por muitos sites mirror remotos para acesso através de métodos HTTP e FTP. Também está disponível em CD-ROM/DVD.
O sistema de gestão de pacotes Debian, quando usado de modo apropriado, oferece ao utilizador o instalar de conjuntos consistentes de pacotes binários no sistema a partir do arquivo. Actualmente, existem 35634 pacotes disponíveis para a arquitectura amd64.
O sistema de gestão de pacotes Debian tem um histórico rico e muitas opções para o programa frontend do utilizador e backend de método usado de acesso ao arquivo. Actualmente, recomendamos o seguinte.
apt-get(8) para todas as operações de linha de comandos, incluindo a instalação e remoção de pacotes, e os dist-upgrades.
aptitude(8) para uma interface de texto interactiva para gerir os pacotes instalados e procurar os pacotes disponíveis.
update-manager(8) para manter o seu sistema actualizado se você estiver a correr o ambiente de trabalho GNOME predefinido.
Tabela 2.1. Lista de ferramentas de gestão de pacotes Debian
pacote | popcon | tamanho | descrição |
---|---|---|---|
apt
*
|
V:89, I:99 | 5727 |
Advanced Packaging Tool (APT), front-end para o dpkg que
disponibiliza os métodos "http ",
"ftp ", e "file " para acesso a arquivos
(comandos apt-get /apt-cache incluídos)
|
aptitude *
|
V:24, I:98 | 11656 | Gestor de pacotes baseado em terminal interactivo com aptitude(8) |
update-manager-gnome *
|
V:19, I:26 | 1266 | Aplicação do GNOME que gere actualizações de software com o update-manager(8) |
tasksel *
|
V:6, I:94 | 708 | ferramenta para seleccionar tarefas para instalação no sistema Debian (frontend para o APT) |
unattended-upgrades *
|
V:5, I:40 | 245 | pacote de melhoramento para o APT para activar a instalação automática de actualizações de segurança |
dselect *
|
V:1.9, I:18 | 2309 | gestor de pacotes baseado em terminal (o standard anterior, frontend para o APT e outros métodos de acesso antigos) |
dpkg
*
|
V:94, I:99 | 5796 | sistema de gestão de pacotes para Debian |
synaptic *
|
V:14, I:43 | 6992 | gestor de pacotes gráfico (frontend do GNOME para o APT) |
apt-utils *
|
V:59, I:99 | 570 | Programas utilitários do APT: apt-extracttemplates(1), apt-ftparchive(1), e apt-sortpkgs(1) |
apt-listchanges *
|
V:32, I:51 | 284 | ferramenta de notificação do histórico de alterações do pacote |
apt-listbugs *
|
V:1.3, I:1.9 | 456 | lista bugs críticos antes de cada instalação do APT |
apt-file *
|
V:2, I:9 | 120 | Utilitário de busca de pacotes do APT - interface de linha de comandos |
apt-rdepends *
|
V:0.14, I:0.7 | 80 | lista dependências de pacote recursivamente |
Aqui estão alguns pontos chave para configuração de pacotes no sistema Debian.
A configuração manual feita pelo administrador do sistema é respeitada. Por outras palavras, o sistema de configuração de pacotes não faz configurações intrusivas por conveniência.
Cada pacote vem com o seu próprio script de configuração com a interface de utilizador standard chamada debconf(7) para ajudar no processo inicial de instalação do pacote.
Os Programadores do Debian dão o seu melhor para tornar a sua experiência de actualização isenta de falhas com scripts de configuração de pacotes.
As funcionalidades totais do software empacotado estão disponíveis ao administrador do sistema. Mas aquelas com riscos de segurança estão desactivadas na instalação predefinida.
Se você activou manualmente um serviço com alguns riscos de segurança você é o responsável pelo confinamento de risco.
A configuração esotérica pode ser activada manualmente pelo administrador do sistema. Isto pode criar interferências com programas de ajuda genéricos populares para a configuração do sistema.
![]() |
Atenção |
---|---|
Não instale pacotes de misturas de suites aleatórias. Provavelmente vai quebrar a consistência do pacote o que requer conhecimentos profundos de gestão do sistema tal como ABI compilador, versão de biblioteca, funcionalidades do interpretador, etc. |
O administrador novato de sistema Debian deve
manter-se com o lançamento stable
de Debian e aplicar
apenas as actualizações de segurança. Eu quero dizer que é melhor evitar
algumas das seguintes acções válidas, como uma precaução, até que você
compreenda muito bem o sistema Debian. Aqui estão algumas lembranças.
Não inclua testing
ou
unstable
em
"/etc/apt/sources.list
".
Não misture Debian standard com outros arquivos não Debian como o Ubuntu em
"/etc/apt/sources.list
".
Não crie o "/etc/apt/preferences
".
Não altere o comportamento predefinido das ferramentas de gestão de pacotes através de ficheiros de configuração sem conhecer os seus impactos totais.
Não instale pacotes aleatórios por "dpkg -i
<qualquer_pacote>
".
Nunca instale pacotes aleatórios por "dpkg --force-all -i
<qualquer_pacote>
".
Não apague ou altere os ficheiros em "/var/lib/dpkg/
".
Não sobrescreva ficheiros do sistema ao instalar programas de software directamente compilados da fonte.
Instale-os para "/usr/local
" ou
"/opt
", se necessário.
Os efeitos não-compatíveis causados pelas acções em cima ao sistema de gestão de pacotes do Debian podem deixar o seu sistema inutilizado.
O administrador de sistema Debian sério que corre servidores de missões críticas, deve tomar precauções extra.
Não instale nenhuns pacotes incluindo as actualizações de segurança da Debian sem os testar completamente com as suas configurações particulares sob condições seguras.
Você como o administrador do sistema é o responsável final pelo seu sistema.
A longa história de estabilidade do sistema Debian não é uma garantia só por si.
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, são
actualizadas frequentemente, e oferecem as funcionalidades mais recentes.
![]() |
Cuidado |
---|---|
Para o seu servidor de produção, é
recomendada a suite |
Não é preciso mais do que simplesmente definir a string da distribuição em
"/etc/apt/sources.list
" para o nome de suite:
"testing
" ou "unstable
"; ou o nome de
código: "wheezy
" ou
"sid
". Isto fá-lo viver a vida das actualizações eternas.
O uso de testing
ou unstable
é
muito divertido mas vem com alguns
riscos. Embora a suite unstable
do sistema Debian pareça
muito estável na maior parte do tempo, tem havido alguns problemas com
pacotes nas suites testing
e unstable
do sistema Debian e alguns deles não 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 estão algumas ideias para assegurar recuperação fácil e rápida de bugs nos pacotes Debian.
Faço um sistema de duplo arranque ao
instalar a suite stable
do sistema Debian em outra
partição.
Tenha o CD de instalação 'à mão' para o arranque de recuperação
Considere instalar o apt-listbugs
para verificar
informação do Debian Bug Tracking
System (BTS) antes da actualização.
Conheça o suficiente da infraestrutura do sistema de pacotes para contornar o problema
Crie um chroot ou ambiente semelhante para antecipadamente correr o sistema mais recente nele (veja Secção 9.8, “Sistema virtualizado”)
(Se você não consegue fazer nenhumas destas acções de precaução, If you can
not do any one of these precautionary actions, you are probably not ready
for the testing
and unstable
suites.)
O Esclarecimento do seguinte salva uma pessoa da luta caótica eterna do inferno das actualizações e permite-lhe alcançar o nirvana de Debian.
Vamos olhar para o arquivo Debian a partir da perspectiva do utilizador do sistema.
![]() |
Dica |
---|---|
A política oficial do arquivo Debian está definida em Manual de Políticas Debian, Capítulo 2 - O Arquivo Debian. |
Para acesso HTTP típico, o arquivo está especificado no ficheiro
"/etc/apt/sources.list
" como o seguinte exemplo para o
sistema stable
= squeeze
actual.
deb http://ftp.XX.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.XX.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib deb-src http://security.debian.org/ squeeze/updates main contrib
Por favor note que "ftp.XX.debian.org
" tem de ser
substituído com o URL do mirror apropriado para a sua localização, 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 em Debian Mirror Checker site.
Aqui, eu uso o nome de código "squeeze
" em vez
do nome de suite "stable
" para evitar surpresas quando a
próxima stable
é lançada.
O significado de "/etc/apt/sources.list
" é descrito em
sources.list(5)
e os pontos chave são os seguintes.
A linha "deb
" define os pacotes binários.
A linha "deb-src
" define os pacotes fonte.
O 1º argumento é o URL raiz do arquivo Debian.
O 2º argumento é o nome da distribuição: seja o nome de suite ou o nome de código.
O 3º argumento e seguintes são a lista de nomes de área de arquivo válidos do arquivo Debian.
As linhas "deb-src
" pode ser omitidas (ou comentadas em
segurança ao colocar um "#" no inicio da linha) se for apenas para o
aptitude
o qual não acede a meta-dados relacionados com a
fonte. Isso acelera as actualizações dos meta-dados do arquivo. O URL pode
ser "http://
", "ftp://
",
"file://
", ….
![]() |
Dica |
---|---|
Se for usado " |
Aqui está uma lista de URLs de sites de arquivo Debian e nomes das suites ou nomes de código usados no ficheiro de configuração.
Tabela 2.2. Lista de sites de arquivos Debian
URL do arquivo | nome da suite (nome de código) | objectivo |
---|---|---|
http://ftp.XX.debian.org/debian/ |
stable (squeeze )
|
lançamento (squeeze) stable |
http://ftp.XX.debian.org/debian/ |
testing (wheezy )
|
lançamento (wheezy) testing |
http://ftp.XX.debian.org/debian/ |
unstable (sid )
|
lançamento (sid) unstable |
http://ftp.XX.debian.org/debian/ |
experimental
|
pré-lançamento experimental (opcional, apenas para programador) |
http://ftp.XX.debian.org/debian/ |
stable-proposed-updates
|
Actualizações para o próximo lançamento de ponto estável (opcional) |
http://security.debian.org/ |
stable/updates
|
actualizações de segurança para o lançamento stable (importante) |
http://security.debian.org/ |
testing/updates
|
actualizações de segurança para o lançamento testing (importante) |
http://ftp.XX.debian.org/debian/ |
squeeze-updates
|
actualizações compatíveis para filtro de spam, clientes IM, etc. para squeeze |
http://backports.debian.org/debian-backports/ |
squeeze-backports
|
pacotes backported mais recentes para squeeze (opcional) |
![]() |
Cuidado |
---|---|
Apenas o lançamento |
![]() |
Cuidado |
---|---|
Basicamente você deve lista uma das suites |
![]() |
Dica |
---|---|
Para o sistema Debian com as suites |
![]() |
Nota |
---|---|
Os bugs de segurança do arquivo |
Tabela 2.3. Lista de área de arquivo Debian
área | número de pacotes | critério do componente do pacote |
---|---|---|
main
|
34925 |
complacente com DSFG e nenhuma dependência a non-free
|
contrib
|
229 |
complacente com DSFG mas com dependências a non-free
|
non-free
|
480 | não complacente com DSFG |
Aqui o número de pacotes em cima é para a amd64 arquitectura Estritamente
falando, apenas a área de arquivo main
irá ser
considerada como o sistema Debian.
A organização do arquivo Debian pode ser melhor estudada ao apontar o seu
explorador a cada URL de arquivo acrescentado com dists
ou pool
.
A distribuição é referida de duas maneiras, a suite ou o nome-de-código. A palavra distribuição é usada alternativamente como o sinónimo de suite em muitas documentações. A relação entre a suite e o nome de código pode ser resumida ao seguinte.
Tabela 2.4. A relação entre suite e nome de código
Temporização |
suite = stable
|
suite = testing
|
suite = unstable
|
---|---|---|---|
após o lançamento squeeze
|
nome de código = squeeze
|
nome de código = wheezy
|
nome de código = sid
|
após o lançamento wheezy
|
nome de código = wheezy
|
nome de código = wheezy+1
|
nome de código = sid
|
A história dos nomes de código está descrita em Debian FAQ: 6.3.1 Que outros nomes de código foram usados no passado?
Na terminologia estrita do arquivo Debian, a palavra "section" é usada especialmente para categorização dos pacotes pela área de aplicação. (Apesar da palavra "main section" poder por vezes ser usada para descrever a área do arquivo Debian chamada de "main".)
Cada vez que é feito um novo upload pelo programador de Debian (DD) para o
arquivo unstable
(via processamento a entrar), é requerido ao DD que assegure que os
pacotes enviados sejam compatíveis com com o conjunto de pacotes mais
recente no arquivo unstable
mais recente.
Se o DD quebrar esta compatibilidade intencionalmente para uma actualização importante de biblioteca ou etc., existe normalmente um anunciar na lista de mail de desenvolvimento de debian etc.
Antes que um conjunto de pacotes Before seja movido pelo script de
manutenção do arquivo Debian do arquivo unstable
para o
arquivo testing
, o script de manutenção do arquivo não
verifica apenas a maturidade (cerca de 10 dias de idade) e o estado dos
relatórios de bug RC para os pacotes mas também tenta assegurar que eles
sejam compatíveis com o conjunto de pacotes mais recente no arquivo
testing
. Este processo torna o arquivo
testing
muito actual e utilizável.
Através do processo de congelação gradual do arquivo liderado pela equipa de
lançamento, o arquivo testing
é amadurecido para o tornar
completamente consistente e livre de bugs com algumas intervenções
manuais. Então o novo lançamento stable
é criado ao
atribuir o nome de código do antigo arquivo testing
ao
novo arquivo stable
e criando um novo nome de código
para o novo arquivo testing
. O conteúdo inicial do novo
arquivo testing
é exactamente o mesmo que o arquivo
stable
recentemente lançado.
Ambos os arquivos unstable
e testing
podem sofrer falhas temporárias devido a vários factores.
Upload de pacotes danificados para o arquivo (maioritariamente para
unstable
)
Atraso de aceitação dos novos pacotes no arquivo (maioritariamente para
unstable
)
Problemas com o tempo de sincronização do arquivo (tanto para
testing
como unstable
)
Intervenção manual no arquivo tal como remoção de pacotes (mais para
testing
) etc.
Se alguma vez você decidir usar estes arquivos, deverá ser capaz de corrigir ou contornar este tipo de problemas.
![]() |
Cuidado |
---|---|
Durante alguns meses após um novo lançamento de |
![]() |
Dica |
---|---|
Quando se acompanha o arquivo |
Veja Manual de Políticas Debian para definições de arquivo.
O sistema Debian oferece um conjunto consistente de pacotes binários através do seu mecanismo de declaração de dependências binárias versionadas nos campos do ficheiro de controle. Aqui está uma definição deles um pouco simplificada.
"Depends"
Isto declara uma dependência absoluta e todos os pacotes listados neste campo têm de ser instalados ao mesmo tempo ou com antecedência.
"Pre-Depends"
Isto é como o Depends, excepto que requer a instalação completa de todos os pacotes listados com antecedência.
"Recommends"
Isto declara uma dependência forte mas não absoluta. A maioria dos utilizadores não iriam querer o pacote a menos que todos os pacotes listados neste campo estejam instalados.
"Suggests"
Isto declara uma dependência fraca. Muitos utilizadores deste pacote podem beneficiar ao instalar os pacotes listados neste campo mas podem ter as funções razoáveis sem eles.
"Enhances"
Isto declara uma dependência fraca como o Suggests mas funciona na direcção oposta.
"Breaks"
Isto declara uma incompatibilidade do pacote normalmente com alguma especificação de versão. Geralmente a resolução é actualizar todos os pacotes listados neste campo.
"Conflicts"
Isto declara uma incompatibilidade absoluta. Todos os pacotes listados neste campo têm 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 simultâneo a um pacote virtual é a configuração sã. Isto assegura que apenas um pacote real que disponibilize este pacote virtual possa ser instalado de cada vez. |
A definição oficial incluindo dependências de fonte pode ser encontrada em O Manual de Políticas: Capítulo 7 - Declarar relações entre pacotes.
Aqui está um resumo do fluxo de eventos simplificado da gestão de pacotes pelo APT.
Update ("aptitude
update
" ou "apt-get update
"):
Obtém meta-dados do arquivo a partir do arquivo remoto
Reconstrói e actualiza os meta-dados locais para uso pelo APT
Upgrade ("aptitude
safe-upgrade
" e "aptitude full-upgrade
", ou
"apt-get upgrade
" e "apt-get
dist-upgrade
"):
Escolhe a versão candidata que geralmente é a versão mais recente disponível para todos os pacotes instalados (veja Secção 2.7.3, “Moldar a versão candidata” para excepções).
Resolve a dependência do pacote
Obtém os pacotes binários seleccionados do arquivo remoto se a versão candidata é diferente da versão instalada.
Desempacota os pacotes binários obtidos
Correr o script preinst
Instala os ficheiros binários
Correr o script postinst
Install ("aptitude install
…
" ou "apt-get install …
"):
Escolhe os pacotes listados na linha de comandos
Resolve a dependência do pacote
Obtém os pacotes binários seleccionados a partir do arquivo remoto
Desempacota os pacotes binários obtidos
Correr o script preinst
Instala os ficheiros binários
Correr o script postinst
Remove ("aptitude remove
…
" ou "apt-get remove …
"):
Escolhe os pacotes listados na linha de comandos
Resolve a dependência do pacote
Correr o script prerm
Remove os ficheiros instalados excepto os ficheiros de configuração
Correr o script postrm
Purge ("aptitude purge
…
" ou "apt-get purge …
"):
Escolhe os pacotes listados na linha de comandos
Resolve a dependência do pacote
Correr o script prerm
Remove os ficheiros instalados incluindo os ficheiros de configuração
Correr o script postrm
Aqui, saltei intencionalmente detalhes técnicos para beneficiar a maioria.
Você deve ler a boa documentação oficial. O primeiro documento a ler é
específico de Debian
"/usr/share/doc/<package_name>/README.Debian
".
Outra documentação em
"/usr/share/doc/<package_name>/
" também deve ser
consultada. Se você definir a shell como Secção 1.4.2, “Personalizar o bash”, escreva o seguinte.
$ cd <nome_do_pacote> $ pager README.Debian $ mc
Você pode precisar de instalar o pacote de documentação correspondente com o
sufixo "-doc
" no nome, para informações mais detalhadas.
Se você está a ter problemas com um pacote específico , certifique-se de verificar o Sistema de acompanhamento de bugs Debian (BTS) primeiro.
Tabela 2.5. Lista de sites web chave para resolver problemas com um pacote específico.
site web | comando |
---|---|
Página inicial do Sistema de acompanhamento de bugs Debian (BTS) |
sensible-browser "http://bugs.debian.org/"
|
O relatório de bug de um nome de pacote conhecido |
sensible-browser
"http://bugs.debian.org/<nome_do_pacote>"
|
O relatório de bug de um número de bug conhecido |
sensible-browser
"http://bugs.debian.org/<número_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 relatório de bug, por favor use o comando reportbug(1).
As operações básicas de gestão de pacotes no sistema Debian podem ser
executas por qualquer ferramenta de gestão de pacotes disponível no sistema
Debian. Aqui vamos explicar as ferramentas de gestão básica de pacotes:
apt-get
/ apt-cache
e
aptitude
.
Para as operações de gestão de pacotes que envolvam a instalação ou actualização de metadados do pacote, você precisa de ter privilégios de root.
Os comandos apt-get
e apt-cache
são as
ferramentas de gestão de pacotes mais básicas
O apt-get
e o apt-cache
oferecem
apenas a interface de linha de comandos.
O apt-get
é mais apropriado para a actualização maior ao sistema entre lançamentos,
etc.
O apt-get
oferece um resolvedor de pacotes robusto e estável que usa dados de estado dos
pacotes comuns.
apt-get
is less demanding on hardware resources. It
consumes less memory and runs faster.
O apt-get
foi actualizado para suportar a auto-instalação
e auto-remoção de pacotes recomendados.
O apt-get
foi actualizado para suportar o registo em log
das actividades de pacotes.
O apt-cache
oferece uma busca baseada em expressões
regulares standard no nome do pacote e na
descrição.
O apt-get
e o apt-cache
podem gerir
múltiplas versões de pacotes usando o
/etc/apt/preferences
mas fica bastante pesado.
O comando aptitude
é a ferramenta de gestão de pacotes
mais versátil.
O aptitude
oferece a interface de utilizador de texto
interactiva de écran completo.
O aptitude
também oferece uma interface de utilizador de
linha de comandos.
O aptitude
é mais apropriado para a gestão de pacotes interactiva diária como o
inspeccionar os pacotes instalados e procurar pacotes disponíveis.
aptitude
is more demanding on hardware resources. It
consumes more memory and runs slower.
O aptitude
oferece um resolvedor de pacotes avançado que também usa uns dados de estado de
pacotes extra usados apenas pelo aptitude
.
O aptitude
suporta auto-instalação e auto-remoção de
pacotes recomendados.
O aptitude
suporta registo em log das actividades de
pacotes.
O aptitude
oferece um busca baseada em expressões
regulares avançada em todos os metadados
dos pacotes.
O aptitude
pode gerir múltiplas versões de pacotes sem
usar o /etc/apt/preferences
e é bastante intuitivo.
![]() |
Nota |
---|---|
Apesar do comando |
Aqui estão algumas operações básicas de gestão de pacotes com a linha de comandos usando aptitude(8) e apt-get(8) / apt-cache(8).
Tabela 2.6. Operações básicas de gestão de pacotes com a linha de comandos usando aptitude(8) e apt-get(8) / apt-cache(8).
sintaxe do aptitude
|
sintaxe do apt-get /apt-cache
|
descrição |
---|---|---|
aptitude update
|
apt-get update
|
actualiza os metadados do arquivo de pacotes |
aptitude install foo
|
apt-get install foo
|
instala a versão candidata do pacote "foo " com as suas
dependências
|
aptitude safe-upgrade
|
apt-get upgrade
|
instala as versões candidatas dos pacotes instalados sem remover quaisquer outros pacotes |
aptitude full-upgrade
|
apt-get dist-upgrade <package>
|
instala as versões candidatas dos pacotes instalados removendo outros pacotes caso necessário |
aptitude remove foo
|
apt-get remove foo
|
remove o pacote "foo " deixando os seus ficheiros de
configuração
|
N/D |
apt-get autoremove
|
remove os pacote auto-instalados que já não são necessários |
aptitude purge foo
|
apt-get purge foo
|
purga o pacote "foo " com os seus ficheiros de
configuração
|
aptitude clean
|
apt-get clean
|
limpa completamente o repositório local de ficheiros de pacotes obtidos |
aptitude autoclean
|
apt-get autoclean
|
limpa os pacotes desactualizados do repositório local dos ficheiros de pacotes recebidos |
aptitude show foo
|
apt-cache show <package>
|
mostra informação detalhada acerca do pacote "foo "
|
aptitude search <regex>
|
apt-cache search <regex>
|
procura pacotes que correspondem à <expressão-regular> |
aptitude why <regex>
|
N/D | explica a razão porque o pacotes que correspondem à <expressão_regular> devem ser instalados |
aptitude why-not <regex>
|
N/D | explica a razão porque o pacotes que correspondem à <expressão_regular> não podem ser instalados |
![]() |
Nota |
---|---|
Como o |
A diferença entre
"safe-upgrade
"/"upgrade
" e
"full-upgrade
"/"dist-upgrade
" apenas
aparece quando novas versões de pacotes ficam relativamente com dependências
diferentes das versões antigas desses pacotes. O comando "aptitude
safe-upgrade
" não instala novos pacotes nem remove pacotes
instalados.
O "aptitude why <expressão_regular>
" pode listar
mais informação por "aptitude -v why
<expressão_regular>
". Informação 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 no pedido de comando.
Você pode disponibilizar opções de comando logo após
"aptitude
".
Tabela 2.7. Opções de comando notáveis para o aptitude(8)
opção de comando | descrição |
---|---|
-s
|
simula o resultado do comando |
-d
|
faz apenas o download e não instala/actualiza |
-D
|
mostra breves explicações antes das instalações e remoções automáticas |
Veja
aptitude(8)
e o "Manual de utilizador do aptitude" em
"/usr/share/doc/aptitude/README
" para mais.
![]() |
Dica |
---|---|
O pacote |
Para a gestão de pacotes interactiva, você arranca o
aptitude
em modo interactivo a partir da shell de consola
como se segue.
$ sudo aptitude -u Password:
Isto actualiza a cópia local da informação do arquivo e mostra a lista de
pacotes no ecrã completo com menu. O aptitude coloca a sua configuração em
"~/.aptitude/config
".
![]() |
Dica |
---|---|
Se você deseja usar a configuração do root em vez da do utilizador, use
" |
![]() |
Dica |
---|---|
O |
As combinações de teclas notáveis para explorar o estado dos pacotes e definir uma "acção planeada" neles neste modo de ecrã total são 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 informação de arquivo do pacote |
+
|
marca o pacote para actualização ou instalação |
-
|
marca o pacote para remoção (mantêm os ficheiros de configuração) |
_
|
marca o pacote para purgar (remover ficheiros de configuração) |
=
|
coloca o pacote em retenção |
U
|
marca todos os pacotes com actualizações (funciona como full-upgrade) |
g
|
começa a descarregar e a instalar os pacotes seleccionados |
q
|
sair do écran actual e guardar as alterações |
x
|
sair do écran actual e descartar as alterações |
Enter
|
ver informação acerca de um pacote |
C
|
ver o relatório de alterações de um pacote |
l
|
altera o limite dos pacotes mostrados |
/
|
procura pela primeira correspondência |
\
|
repetir a última pesquisa |
A especificação de nome de ficheiro da linha de comandos ou do aviso de menu
após pressionar "l
" e "//
" toma a
expressão regular do aptitude como descrito em baixo. A expressão regular do
aptitude pode corresponder explicitamente a um nome de pacote usando uma
string começada por "~n
e seguida do nome do pacote.
![]() |
Dica |
---|---|
Você precisa de pressionar " |
No modo de écran completo interactivo do aptitude(8), os pacotes na lista de pacotes são mostrados como no próximo exemplo.
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
Aqui, esta linha significa desde a esquerda o seguinte.
A bandeira "estado actual" (a primeira letra)
A bandeira "acção planeada" (a segunda letra)
A bandeira "automático" ( a terceira letra)
O nome do Pacote
A alteração na utilização do espaço do disco atribuída a "acção planeada"
A versão actual do pacote
A versão candidata do pacote
![]() |
Dica |
---|---|
A lista completa de bandeiras é fornecida ao fundo do ecrã de Ajuda mostrado ao pressionar
" |
A versão candidata é escolhida de acordo com as preferências locais actuais (veja apt_preferences(5) e Secção 2.7.3, “Moldar a versão candidata”).
Estão disponíveis vários tipos de vistas de pacotes sob o menu
"Vistas
".
Tabela 2.9. Lista de vistas para o aptitude
vista | estado | descrição da vista |
---|---|---|
Vista de Pacote
|
Bom | veja Tabela 2.10, “A categorização das vista de pacotes standard” (predefinição) |
Auditoria de Recomendações
|
Bom | lista pacotes que são recomendados por alguns pacotes instalados mas ainda não estão listados como instalados |
Lista de Pacotes Lisa
|
Bom | lista pacotes sem categorização (para usar com expressões regulares) |
Explorador de Debtags
|
Muito utilizável | lista pacotes categorizados de acordo com as suas entradas debtags |
Explorador por Categorias
|
Obsoleto |
lista pacotes categorizados de acordo com a sua categoria (use 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 categorização das vista de pacotes standard
categoria | descrição da vista |
---|---|
Pacotes Actualizáveis
|
lista pacotes organizados como secção →
área → pacote
|
Pacotes Novos
|
, , |
Pacotes Instalados
|
, , |
Pacotes Não Instalados
|
, , |
Pacotes Obsoletos ou Criados Localmente
|
, , |
Pacotes Virtuais
|
lista pacotes com a mesma função |
Tarefas
|
lista pacotes com diferentes funções geralmente necessárias para uma tarefa |
![]() |
Dica |
---|---|
A vista |
O aptitude oferece várias opções para você procurar pacotes usando a sua fórmula de expressões regulares.
Linha de comandos da shell:
"aptitude search '<aptitude_regex>'
" para listar
estado de instalação, nome do pacote e descrição curta dos pacotes
correspondentes
"aptitude show '<package_name>'
" para listar a
descrição detalhada do pacote
modo de écran total interactivo:
"l
" para limitar a vista de pacotes aos pacotes
correspondentes
"/
" para procurar um pacote correspondente
"\
" para procurar um pacote correspondente voltando para
trás
"n
" para procurar o próximo
"N
" para procurar o próximo (andando para trás)
![]() |
Dica |
---|---|
A string para <nome_de_pacote> é tratada como a correspondência exacta
da string para o nome do pacote a menos que seja iniciada explicitamente com
" |
A fórmula de expressão regular do aptitude é estendida tipo mutt ERE (veja Secção 1.6.2, “Expressões regulares”) e
o significado da extensões de regras de correspondência especial específicas
do aptitude
são as seguintes.
Tabela 2.11. Lista da fórmula regex do aptitude
descrição da regra de correspondência extensa | fórmula da expressão regular |
---|---|
corresponde com o nome do pacote |
~n<regex_name>
|
corresponde com a descrição |
~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 secção do pacote |
~s<regex_section>
|
corresponde com versão do pacote |
~V<regex_version>
|
corresponde com arquivo |
~A{sarge,etch,sid }
|
corresponde com origem |
~O{debian,… }
|
prioridade da correspondência |
~p{extra,important,optional,required,standard }
|
corresponde com pacotes essenciais |
~E
|
corresponde com pacotes virtuais |
~v
|
corresponde com pacotes novos |
~N
|
corresponde com acções pendentes |
~a{install,upgrade,downgrade,remove,purge,hold,keep }
|
corresponde com os pacotes instalados |
~i
|
corresponde com pacotes instalados com marca A (pacote instalado automaticamente) |
~M
|
corresponde com pacotes instalados sem a marca A (pacote seleccionado pelo administrador) |
~i!~M
|
corresponde com pacotes instalados e com actualizações disponíveis |
~U
|
corresponde com pacotes removidos mas não purgados |
~c
|
corresponde com pacotes removidos, purgados ou que podem-ser-removidos |
~g
|
corresponde com pacotes com relações quebradas |
~b
|
corresponde com pacotes com dependências/pré-dependências/conflitos quebrados |
~B<type>
|
corresponde a pacotes dos quais a relação <type> é definida para o pacote <term> |
~D[<type>:]<term>
|
corresponde a pacotes dos quais a relação <type> broken é definida para o pacote <term> |
~DB[<type>:]<term>
|
corresponde a pacotes para os quais o pacote <term> define <type> relação |
~R[<type>:]<term>
|
corresponde a pacotes para os quais o pacote <term> define <type> relação broken |
~RB[<type>:]<term>
|
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 <term> com a versão filtrada |
~S filter <term>
|
corresponde com todos os pacotes (true) |
~T
|
não corresponde com nenhum pacote (false) |
~F
|
A parte de expressão regular é a mesma ERE que aquela usada nas típicas ferramentas de
texto tipo-Unix que usam "^
", ".*
",
"$
" etc. como o
egrep(1),
awk(1)
e
perl(1).
A relação <type> é uma de (dependências, pré-dependências, recomendações, sugestões, conflitos, substituições, fornecimentos).
O tipo de relação predefinido é "depends".
![]() |
Dica |
---|---|
Quando <regex_pattern> é uma string nula, coloca
" |
Aqui estão alguns atalhos.
"~P<term>
" ==
"~Dprovides:<term>
"
"~C<term>
" ==
"~Dconflicts:<term>
"
"…~W term
" == "(…|term)
"
Os utilizadores familiarizados com o mutt
aprendem
rápido, pois o mutt foi a inspiração para a sintaxe de expressão. Veja
"PROCURANDO, LIMITANDO,E EXPRESSÕES" no "Manual do Utilizador"
"/usr/share/doc/aptitude/README
".
![]() |
Nota |
---|---|
Com a versão |
A selecção de um pacote no aptitude
não puxa apenas os
pacotes definidos na sua lista de "Dependências:
" mas
também os definidos na lista "Recomendados:
" se o menu
"F10
→ Opções → Manuseamento de dependências" assim
estiver definido. Estes pacote auto-instalados são removidos automaticamente
sob o aptitude
se não forem mais necessários.
![]() |
Nota |
---|---|
Ante do lançamento do |
Você pode verificar o histórico de actividade de pacotes nos ficheiros log.
Tabela 2.12. Os ficheiros log para actividades de pacotes
ficheiro | conteúdo |
---|---|
/var/log/dpkg.log
|
Log da actividade de nível do dpkg para as actividades de
todos os pacotes
|
/var/log/apt/term.log
|
Log da actividade genérica do APT |
/var/log/aptitude
|
Log da actividade de comandos do aptitude
|
Na realidade, não é muito fácil obter uma compreensão significativa rapidamente a partir destes logs. Veja Secção 9.2.10, “Gravar alterações em ficheiros de configuração” para um modo mais fácil.
Aqui estão alguns exemplos de operações do aptitude(8).
O seguinte comando lista pacotes com o regex a condizer com nomes de pacotes.
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - módulo NSS para usar LDAP como um serviço de nomes p libpam-ldap - Módulo de Autenticação Acoplável que permite interfaces do LDAP
Isto dá muito jeito para para encontrar o nome exacto de um pacote.
a expressão regular "~dipv6
" na vista "Nova Lista de
Pacotes Simples" com o aviso "l
", limita a vista aos
pacotes com a descrição correspondente e permite-lhe explorar a sua
informação interactivamente.
Você pode purgar todos os ficheiros de configuração restantes dos pacotes removidos.
Verifique os resultados do seguinte comando.
# aptitude search '~c'
Se você acha que os pacotes listados estão OK para serem purgados, execute o seguinte comando.
# aptitude purge '~c'
Você pode querer fazer semelhante no modo interactivo para um controle mais preciso.
Você fornece a expressão regular "~c
" na vista "Nova
Lista Plana de Pacotes" com o aviso "l
". Isto limita a
vista de pacotes apenas aos pacotes correspondentes à expressão regular,
isto é, "removidos mas não purgados". Todos estes pacotes correspondentes a
expressões regulares podem ser mostrados ao pressionar
"[
" nos cabeçalhos de nível de topo.
Depois você pressiona "_
" em cabeçalhos de nível de topo
tal como "pacotes instalados". Apenas os pacotes correspondentes à expressão
regular sob o cabeçalho são marcados para serem purgados com isto. Você pode
excluir alguns pacotes a serem purgados ao pressionar "=
"
interactivamente para cada um deles.
Esta técnica é muito jeitosa e funciona com muitas outras teclas de comando.
Aqui está como acertar o estado auto/manual de instalação dos pacotes (após usar um instalador de pacotes sem ser o aptitude e etc.).
Arranque o aptitude
em modo interactivo como root.
Escreva "u
", "U
",
"f
" e "g
" para actualizar a lista de
pacote e actualizar os pacotes.
Escreva "l
" para inserir o limite de amostragem de
pacotes aos "~i(~R~i|~Recomendados:~i)
" e escreva
"M
" sobre "Pacotes Instalados
" como
auto-instalado.
Escreva "l
" para inserir o limite de amostragem de
pacotes como "~prequired|~pimportant|~pstandard|~E
" e
escreva "m
" sobre "Pacotes Instalados
"
como instalado manualmente.
Escreva "l
" para inserir o limite de amostragem de
pacotes como "~i!~M
" e remover pacotes não usados ao
escrever "-
" sobre cada um deles após os expo-los ao
escrever "[
" sobre "Pacotes
Instalados
".
Escreva "l
" para inserir o limite de amostragem de
pacotes como "~i
" e escreva "m
" sobre
"Tasks
" como instalado manualmente.
Termina o aptitude
.
Inicie "apt-get -s autoremove|less
" como root para
verificar os que não são usados.
Reinicie o aptitude
em modo interactivo e marque os
pacotes necessários como "m
".
Reinicie o "apt-get -s autoremove|less
" como root para
verificar que o REMOVED contém apenas os pacotes esperados.
Arranque "apt-get autoremove|less
" como root para
auto-remover os pacotes não usados.
A opção "m
" sobre "Tasks
" é uma opção
para prevenir situações de remoção de pacotes em massa no futuro.
![]() |
Nota |
---|---|
Quando mover para um novo lançamento etc, deverá considerar fazer uma instalação limpa do novo sistema mesmo sabendo que Debian é actualizável como descrito em baixo. Isto dá-lhe a hipótese de remover os lixos coleccionados e expõe-lhe a melhor combinação do pacotes mais recentes. É claro que deverá fazer uma cópia de segurança do sistema para um lugar seguro (veja Secção 10.1.6, “Salvaguarda (backup) e recuperação”) antes de fazer isto. Eu recomendo fazer uma configuração de duplo arranque usando partições diferentes para ter a transição mais suave. |
Você pode executar a actualização geral do sistema para um lançamento mais
recente ao alterar o conteúdo do ficheiro
"/etc/apt/sources.list
" apontando para um novo lançamento
e correndo o comando "apt-get update; apt-get
dist-upgrade
".
Para actualizar de stable
para testing
ou unstable
, você substitui
"squeeze
" no exemplo
"/etc/apt/sources.list
" de Secção 2.1.4, “Bases de arquivos Debian” por
"wheezy
" ou "sid
".
Na realidade, você pode enfrentar algumas complicações devido a problemas
com a transição de alguns pacotes, na maioria devido a dependências desses
pacotes. Quanto maior a diferença da actualização, maior a probabilidade de
ter grandes problemas. Para a transição da stable
antiga
para a nova stable
após o seu lançamento, você pode ler
as suas novas Notas de Lançamento e
seguir o procedimento exacto descrito lá para minimizar problemas.
Quando você decidir mover de stable
para
testing
antes do seu lançamento formal, não existem
Notas de Lançamento para o ajudar. A
diferença entre stable
e testing
pode
ter crescido bastante após o lançamento stable
anterior e
complicar a situação da actualização.
Você deve dar passos de precaução para a actualização total enquanto recolhe a informação mais recente da lista de mail e usando senso comum.
Leia as "Notas de Lançamento" anteriores.
Faça salvaguarda ao sistema completo (especialmente dados e informação de configuração).
Tenha uma media de arranque à mão para o caso do gestor de arranque ficar danificado.
Informe os utilizadores do sistema com bastante antecedência.
Grave a actividade de actualização com o script(1).
Aplique "unmarkauto" aos pacotes requeridos, ex., "aptitude
unmarkauto vim
", para prevenir a remoção.
Minimize os pacotes instalados para reduzir a hipótese de conflitos de pacotes, ex., remova os pacotes de tarefas de ambiente de trabalho.
Remova o ficheiro "/etc/apt/preferences
" (desactiva o
apt-pinning).
Tente a actualização em passos inteligentes: oldstable
→
stable
→ testing
→
unstable
.
Actualize o ficheiro "/etc/apt/sources.list
" para apontar
apenas para o novo arquivo e corra "aptitude update
".
Instale, opcionalmente, os novos pacotes de
núcleo primeiro, ex., "aptitude install perl
".
Corra o comando "apt-get -s dist-upgrade
" para aceder ao
impacto.
Corra o comando "apt-get dist-upgrade
" em último lugar.
![]() |
Cuidado |
---|---|
Não é sensato saltar grandes lançamentos de Debian quando se actualiza entre
lançamentos |
![]() |
Cuidado |
---|---|
Nas "Notas de Lançamento" anteriores, GCC, Linux Kernel, initrd-tools, Glibc, Perl, a cadeia de ferramentas do APT, etc. requereram alguma atenção especial para actualização geral do sistema. |
Para actualizações diárias em unstable
, veja Secção 2.4.3, “Salvaguardar para problemas de pacotes.”.
Aqui está uma lista de outras operações de gestão de pacotes para as quais o
aptitude
tem um nível muito alto ou falta-lhe as
funcionalidades necessárias.
Tabela 2.13. Lista de operações de gestão avançada de pacotes
comando | acção |
---|---|
COLUMNS=120 dpkg -l <padrão_do_nome_de_pacote>
|
lista o estado de um pacote instalado para o relatório de bug |
dpkg -L <nome_do_pacote>
|
lista o conteúdo de um pacote instalado |
dpkg -L <nome_do_pacote> | egrep
'/usr/share/man/man.*/.+'
|
lista os manuais para um pacote instalado |
dpkg -S <padrão_do_nome_de_ficheiro>
|
lista os pacotes instalados que condizem com o nome de ficheiro |
apt-file search <padrão_do_nome_de_ficheiro>
|
lista pacotes no arquivo que condizem com o nome de ficheiro |
apt-file list <padrão_do_nome_de_pacote>
|
lista os conteúdos dos pacotes no arquivo que condizem |
dpkg-reconfigure <nome_do_pacote>
|
reconfigura o pacote exacto |
dpkg-reconfigure -p=low <nome_do_pacote>
|
reconfigura o pacote exacto com as questões mais detalhadas |
configure-debian
|
reconfigura pacotes a partir do menu de écran 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_binário>
|
mostra a versão disponível, a prioridade e informação de arquivo de um pacote binário |
apt-cache madison <nome_do_pacote>
|
mostra a versão disponível e informação de arquivo de um pacote |
apt-cache showsrc <nome_do_pacote_binário>
|
mostra informação do pacote fonte de um pacote binário |
apt-get build-dep <nome_do_pacote>
|
instala os pacote necessários para compilar pacote |
apt-get source <nome_do_pacote>
|
descarrega uma fonte (do arquivo standard) |
dget <URL para ficheiro dsc>
|
descarrega um pacote fonte (de outro arquivo) |
dpkg-source -x
<nome_do_pacote>_<versão>-<versão_debian>.dsc
|
constrói uma árvore fonte a partir de um conjunto de pacotes 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_de_pacote><versão>-<versão_debian><arquitectura>.deb
|
instala um pacote local no sistema |
debi
<nome_de_pacote><versão>-<versão_debian><arquitectura>.dsc
|
instala pacote(s) locais no sistema |
dpkg --get-selections '*' >selecção.txt
|
guarda a informação de estado de selecção a nível de pacotes do
dpkg
|
dpkg --set-selections <selecção.txt
|
define a informação de estado de selecção a nível de pacotes do
dpkg
|
echo <nome-do-pacote> hold | dpkg --set-selections
|
define o estado de selecção de pacote ao nível do dpkg
para hold (equivalente a
"aptitude hold <nome_do_pacote> ")
|
![]() |
Cuidado |
---|---|
As ferramentas de pacotes de baixo nível como " |
Por favor note o seguinte.
Toda a configuração do sistema e comandos de instalação requerem serem executados pelo root.
A contrário do aptitude
que usa regex (veja Secção 1.6.2, “Expressões regulares”), os outros comandos de gestão de pacotes
usam padrões como a shell glob (veja Secção 1.5.6, “Glob da shell”).
O
apt-file(1)
disponibilizado pelo pacote apt-file
tem de correr
"apt-file update
" com antecedência.
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 usando o debconf(1) como o seu backend.
Os comandos "apt-get build-dep
", "apt-get
source
" e "apt-cache showsrc
" requerem entrada
"deb-src
" em "/etc/apt/sources.list
".
Os
dget(1),
debuild(1),
e
debi(1)
requerem o pacote devscripts
.
Veja o procedimento de (re)empacotamento usando "apt-get
source
" em Secção 2.7.13, “Portando um pacote para o sistema stable”.
O comando make-kpkg
requer o pacote
kernel-package
(veja Secção 9.7, “O kernel”).
Veja Secção 12.11, “Criando um pacote Debian” para empacotamento geral.
A instalação de debsums
permite a verificação dos
ficheiros dos pacotes instalados contra valores MD5sum no ficheiro
"/var/lib/dpkg/info/*.md5sums
" com
debsums(1).
Veja Secção 10.4.5, “O sumário MD5” para saber como o MD5sum funciona.
![]() |
Nota |
---|---|
Porque a base de dados MD%sum pode ser adulterada por um intruso, o debsums(1) é de uso limitado como ferramenta de segurança. É bom apenas para verificar modificações locais pelo administrador ou danos devido a erros de media. |
Muito utilizadores preferem seguir o lançamento unstable do sistema Debian pelas suas novas funcionalidades e pacotes. Isto torna o sistema para inclinado a ser atingido por bugs críticos dos pacotes.
A instalação do pacote apt-listbugs
salvaguarda o seu
sistema contra bugs críticos ao verificar automaticamente o Debian BTS por
bugs críticos quando se actualiza com o sistema APT.
A instalação do pacote apt-listchanges
disponibiliza
notícias importantes em "NEWS.Debian
" quando se actualiza
com o sistema APT.
Embora o visitar do site Debian http://packages.debian.org/ facilite a busca nos meta-dados do pacote hoje em dia, vamos ver modos mais tradicionais.
Os comandos grep-dctrl(1), grep-status(1), e grep-available(1) podem ser usados para procurar qualquer ficheiro que tem o formato geral de um ficheiro de controle de pacote Debian.
O "dpkg -S <padrão_de_nome_de_ficheiro>
" pode ser
usado para procurar nomes de pacotes que contém ficheiros com o nome
correspondente instalados pelo dpkg
. Mas isto não vê os
ficheiros criados pelo script do responsável do pacote.
Se precisar de fazer uma busca mais elaborada nos meta-dados do dpkg, você
precisa de executar o comando "grep -e padrão_de_expressão_regular
*
" no directório "/var/lib/dpkg/info/
". Isto
fá-lo procurar as palavras mencionadas nos scripts dos pacotes e nos textos
de questões de instalação.
Se você deseja procurar nas dependências de pacotes recursivamente, deverá usar o apt-rdepends(8).
Vamos aprender como o sistema de gestão de pacotes Debian funciona internamente. Isto deverá ajudá-lo a criar a sua própria solução para alguns problemas com pacotes.
Os ficheiros de meta-dados para cada distribuição são armazenados sob
"dist/<nome-de_código>
" em cada site mirror Debian,
ex., "http://ftp.us.debian.org/debian/
". A sua estrutura
de arquivo pode ser explorada por um navegador web. Existem 6 tipos de
meta-dados chave.
Tabela 2.14. O conteúdo dos meta dados do arquivo Debian
ficheiro | localização | conteúdo |
---|---|---|
Release
|
topo da distribuição | descrição do arquivo e informação de integridade |
Release.gpg
|
topo da distribuição |
ficheiro de assinatura para o ficheiro "Release " assinado
com a chave do arquivo
|
Contents-<architecture>
|
topo da distribuição | lista de todos os ficheiros para todos os pacotes no arquivo pertinente |
Release
|
topo de cada combinação de distribuição/área/arquitectura | descrição do arquivo usada para a regra do apt_preferences(5) |
Packages
|
topo de cada combinação de distribuição/área/arquitectura-binário |
debian/control concatenado para pacotes binários
|
Sources
|
topo de cada combinação de distribuição/área/fonte |
debian/control concatenado para pacotes fonte
|
No arquivo recente, estes meta-dados são armazenados como ficheiros diferenciais e comprimidos para reduzir o tráfego de rede.
![]() |
Dica |
---|---|
O ficheiro " |
Cada suite do arquivo Debian tem um ficheiro "Release
" no
nível de topo, ex.,
"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 lógica de usar a "suite", e "nome_de_código" em Secção 2.1.4, “Bases de arquivos Debian”. A "distribuição" é usada quando se refere a ambos "suite" e "nome_de_código". Todos os nomes de "áreas" do arquivo oferecidos pelo arquivo são listados sob "Componente". |
A integridade do ficheiro "Release
" de nível de topo é
verificada ela infraestrutura criptográfica chamada secure apt.
O ficheiro de assinatura criptográfica "Release.gpg
" é
criado a partir do ficheiro "Release
" de nível de topo
autenticado e a chave de arquivo Debian secreta.
A chave do arquivo Debian público 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 público mais
recente publicada em ftp-master.debian.org.
O sistema secure APT verifica a
integridade do ficheiro "Release
" de nível de topo
descarregado criptograficamente por este ficheiro
"Release.gpg
" a pela chave de arquivo público Debian em
"/etc/apt/trusted.gpg
".
A integridade de todos os ficheiros "Packages
" e
"Sources
" é verificada usando valores MD5sum no seu
ficheiro "Release
" de nível de topo. A integridade de
todos os ficheiros de pacotes é verificada usando valores MD5sum nos
ficheiros "Packages
" e "Sources
" Veja
debsums(1)
e Secção 2.4.2, “Verificação dos ficheiros pacotes instalados”.
Como a verificação de assinatura criptográfica é um processo muito mais
intenso para a CPU que o cálculo de valores MD5sum, o uso de valores MD5sum
para cada pacote enquanto se usa assinatura criptográfica para o ficheiro
"Release
" de nível de topo disponibiliza a boa segurança com a
performance (veja Secção 10.4, “Infraestrutura da segurança de dados”).
![]() |
Dica |
---|---|
Os ficheiros " |
Existem ficheiros "Release
" do nível de arquivo para
todas as localizações do arquivo especificadas pela linha
"deb
" em "/etc/apt/sources.list
", tal
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
"
como se segue.
Archive: unstable Origin: Debian Label: Debian Component: main Architecture: amd64
![]() |
Cuidado |
---|---|
Para a estrofe " |
Para alguns arquivos, tais como experimental
, e
squeeze-backports
, que contêm pacotes que não
devem ser instalados automaticamente, existe uma linha extra, ex.,
"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 Secção 2.7.3, “Moldar a versão candidata”).
Quando as ferramentas do APT, como aptitude
,
apt-get
, synaptic
,
apt-file
, auto-apt
…, são usadas, nós
precisamos de actualizar as cópias locais dos meta dados que contêm a
informação do arquivo Debian. Estas cópias locais têm os seguintes nomes de
ficheiros correspondentes aos nomes de distribuição
,
área
, e arquitectura
especificados em
"/etc/apt/sources.list
" (veja Secção 2.1.4, “Bases de arquivos Debian”).
"/var/lib/apt/lists/ftp.us.debian.org_debian_dists_<distribuição>_Release
"
"/var/lib/apt/lists/ftp.us.debian.org_debian_dists_<distribuição>_Release.gpg
"
"/var/lib/apt/lists/ftp.us.debian.org_debian_dists_<distribuição>_<área>_binário-<arquitectura>_Packages
"
"/var/lib/apt/lists/ftp.us.debian.org_debian_dists_<distribuição>_<área>_fonte_Sources
"
"/var/cache/apt/apt-file/ftp.us.debian.org_debian_dists_<distribuição>_Contents-<arquitectura>.gz
"
(para o apt-file
)
Os primeiros 4 tipos de ficheiros são partilhados por todos os comandos APT
pertinentes e actualizados a partir da linha de comandos pelo
"apt-get update
" e "aptitude
update
". Os meta dados "Packages
" são
actualizados se existir a linha "deb
" em
"/etc/apt/sources.list
". Os meta dados
"Sources
" são actualizados se existir a linha
"deb-src
" em "/etc/apt/sources.list
".
Os meta dados "Packages
" e "Sources
"
contêm a estrofe "Filename:
" que aponta para a
localização de ficheiro dos pacotes binários e fonte. Actualmente, estes
pacotes são localizados sob a árvore de directórios
"pool/
" para a transição melhorada sobre os lançamentos.
As cópias locais dos meta dados "Packages
" podem ser
pesquisadas interactivamente coma ajuda do aptitude
. O
comando de procura especializada
grep-dctrl(1)
pode pesquisar as cópias locais dos meta dados "Packages
"
e "Sources
".
A cópia local dos meta dados
"Contents-<arquitectura>
" pode ser actualizada pelo
"apt-file update
" e a sua localização é diferente dos
outros 4. Veja
apt-file(1).
(O auto-apt
usa localização diferente para a cópia local
de "Contents-<arquitectura>.gz
" por predefinição.)
Adicionalmente aos meta dados obtidos remotamente, a ferramenta APT após
lenny
armazena a sua informação de estado de instalação
gerada localmente em "/var/lib/apt/extended_states
" que é
usada por todas as ferramentas do APT para seguirem todos os pacotes
auto-instalados.
Adicionalmente aos meta dados obtidos remotamente, o
aptitude
armazena a sua informação de estado de
instalação gerada localmente em
"/var/lib/aptitude/pkgstates
" que é usada apenas pelo
próprio.
All the remotely fetched packages via APT mechanism are stored in the
"/var/cache/apt/archives
" until they are cleaned.
Ficheiros de pacotes Debian têm estruturas de nomes particulares.
Tabela 2.15. A estrutura de nomes dos pacotes Debian
tipo de pacote | estrutura de nomes |
---|---|
O pacote binário (a.k.a deb )
|
<nome_de_pacote>_<epoch>:<versão_upstream>-<versão.debian>-<arquitectura>.deb
|
O pacote binário (a.k.a udeb )
|
<nome_de_pacote>_<epoch>:<versão_upstream>-<versão.debian>-<arquitectura>.udeb
|
O pacote fonte (fonte da origem) |
<nome_de_pacote>_<epoch>:<versão_upstream>-<versão.debian>.orig.tar.gz
|
O pacote fonte 1.0 (alterações do Debian)
|
<nome_de_pacote>_<epoch>:<versão_upstream>-<versão.debian>.diff.gz
|
O pacote fonte 3.0 (quilt) (alterações do Debian)
|
<nome_de_pacote>_<epoch>:<versão_upstream>-<versão.debian>.debian.tar.gz
|
O pacote fonte (descrição) |
<nome_do_pacote>_<epoch>:<versão_upstream>-<versão.debian>.dsc
|
![]() |
Dica |
---|---|
Aqui apenas são descritos formatos de pacote fonte básicos. Veja mais em dpkg-source(1). |
Tabela 2.16. Os caracteres utilizáveis para cada componente nos nomes de pacotes Debian
componente do nome | caracteres utilizáveis (regex) | existência |
---|---|---|
<nome-do-pacote>
|
[a-z,A-Z,0-9,.,
|
necessário |
<epoch>:
|
[0-9]+:
|
opcional |
<versão-upstream>
|
[a-z,A-Z,0-9,.,
|
necessário |
<versão.debian>
|
[a-z,A-Z,0-9,.,
|
opcional |
![]() |
Nota |
---|---|
Você pode verificar a ordem de versão de pacotes pelo
dpkg(1),
ex., " |
![]() |
Nota |
---|---|
O debian-installer (d-i) usa
|
dpkg(1) é a ferramenta de nível mais baixo para a gestão de pacotes Debian. É muito poderosa e tem que ser usada com cuidado.
Enquanto instala o pacote chamado
"<nome_de_pacote>
", o dpkg
processa-o na seguinte ordem.
Desempacotar o ficheiro deb ("ar -x
" equivalente)
Executa "<nome_de_pacote>.preinst
" usando o
debconf(1)
Instala o conteúdo do pacote no sistema (equivalente a "tar
-x
")
Execute "<nome_de_pacote>.postinst
" usando o
debconf(1)
O sistema debconf
disponibiliza interacção standard com o
utilizador com suporte a I18N e L10N (Capítulo 8, I18N e L10N).
Tabela 2.17. Os ficheiros notáveis criados pelo dpkg
ficheiro | descrição dos conteúdos |
---|---|
/var/lib/dpkg/info/<nome_do_pacote>.conffiles
|
lista de ficheiros de configuração. (modificável pelo utilizador) |
/var/lib/dpkg/info/<nome_do_pacote>.list
|
lista de ficheiros e directórios 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 executado antes da instalação do pacote |
/var/lib/dpkg/info/<nome_do_pacote>.postinst
|
script de pacote executado após a instalação do pacote |
/var/lib/dpkg/info/<nome_do_pacote>.prerm
|
script de pacote executado antes da remoção do pacote |
/var/lib/dpkg/info/<nome_do_pacote>.postrm
|
script de pacote executado após a remoção 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 informação alternativa usada pelo comando
update-alternatives
|
/var/lib/dpkg/available
|
a informação de disponibilidade para todos os pacotes |
/var/lib/dpkg/diversions
|
a informação de diversões usada pelo dpkg(1) e definida pelo `dpkg-divert`(8) |
/var/lib/dpkg/statoverride
|
a informação de estado de sobreposição usada pelo dpkg(1) e definida pelo `dpkg-statoverride`(8) |
/var/lib/dpkg/status
|
a informação de estado para todos os pacotes |
/var/lib/dpkg/status-old
|
o backup de primeira geração do ficheiro
"var/lib/dpkg/status "
|
/var/backups/dpkg.status*
|
o backup de segunda geração e os mais antigos do ficheiro
"var/lib/dpkg/status "
|
O ficheiro "status
" também é usado 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 cópias locais dos meta dados "status
" e
"available
"
![]() |
Dica |
---|---|
No ambiente do debian-installer, o
comando |
O sistema Debian tem um mecanismo para instalar programas de certa maneira
sobrepostos de um modo pacífico 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 predefinição[*], ou escreva o número da selecção: 1
O sistema de alternativas do Debian mantêm a sua selecção como links
simbólicos em "/etc/alternatives/
". O processo de
selecção usa um ficheiro correspondente em
"/var/lib/dpkg/alternatives/
".
Stat overrides disponibilizados pelo
comando
dpkg-statoverride(8)
são um modo de dizer ao
dpkg(1)
para usar um dono ou modo diferente para um ficheiro quando um pacote é instalado. Se for
especificado "--update
" e o ficheiro existir é
imediatamente definido para o novo dono e modo.
![]() |
Cuidado |
---|---|
A alteração directa do dono ou modo para um ficheiro cujo dono é o pacote usando os comandos
|
![]() |
Nota |
---|---|
Eu uso a palavra ficheiro aqui, mas na
verdade pode ser qualquer objecto de sistema de ficheiros com que o
|
As diversões de ficheiros
disponibilizadas pelo comando
dpkg-divert(8)
são um modo de forçar o
dpkg(1)
a não instalar um ficheiro na sua localização predefinida, mas para uma
localização divergida. Os uso do
dpkg-divert
destina-se aos scripts do responsável do
pacote. A sua utilização casual pelo administrador do sistema está
descontinuada.
Quando corre o sistema unstable
, espera-se que o
administrador saiba recuperar o sistema de situações de gestão quebrada de
pacotes.
![]() |
Cuidado |
---|---|
Alguns métodos descritos aqui são acções de alto risco. Você foi avisado! |
Se um programa GUI de ambiente de trabalho ficou instável após uma actualização significante da versão original, você deve suspeitar de interferências com os ficheiros de configuração locais antigos criados por ele. Se estiver estável sob uma conta de utilizador nova criada, esta hipótese está confirmada. (Isto é um bug de empacotamento e geralmente evitado pelo empacotador.)
Para recuperar a estabilidade, você deve mover os ficheiros de configuração locais correspondentes e reiniciar o programa GUI. Você poderá ter que ler o conteúdo dos ficheiros de configuração antigos para mais tarde recuperar informação de configuração. (Não os apague muito depressa.)
Os sistemas de gestão de pacotes a nível de arquivo, como o aptitude(8) ou o apt-get(1), nem tentam instalar pacotes com ficheiros sobrepostos usando as dependências do pacote. (veja Secção 2.1.5, “Dependências de pacote”).
Erros do responsável do pacote ou de implantação inconsistente de mistura de fontes de arquivos (veja Secção 2.7.2, “Pacotes de fontes de arquivos misturados”) pelo administrador do sistema podem criar situações com dependências de pacotes definidas incorrectamente. Quando você instala um pacote com ficheiros sobrepostos usando o aptitude(8) ou o apt-get(1) sob tal situação, 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 utilização de pacotes de terceiros introduz riscos significantes ao sistema via scripts do responsável que são executados com privilégios de root e podem fazer o que quiserem ao seu sistema. O comando dpkg(1) apenas protege contra a sobreposição de ficheiros ao desempacotar. |
Você pode contornar tal problema de instalação ao remover primeiro o pacote
antigo , <pacote_antigo>
, e ofensivo.
$ sudo dpkg -P <pacote-antigo>
Quando um comando no script do pacote retorna erro por alguma razão e o script termina com erro, o sistema de gestão de pacotes aborta a sua acção e termina com pacotes parcialmente instalados. Quando um pacote contém bugs nos seus scripts de remoção, o pacote pode tornar-se impossível de remover e isso é bastante desagradável.
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 técnicas.
desactivar a linha ofensiva ao preceder um "#
"
força um retorno com sucesso ao acrescentar a linha ofensiva com
"|| true
"
Configurar todos os pacotes parcialmente instalados com o seguinte comando.
# dpkg --configure -a
Como o dpkg
é uma ferramenta de pacotes de muito baixo
nível, pode funcionar sob situações muito más como um sistema que não
arranca sem ligação a rede. Vamos assumir que o pacote
foo
está danificado e precisa de ser substituído.
Você pode ainda encontrar cópias em cache de uma versão antiga livre de bugs
do pacote foo
no directório de cache de pacotes:
"/var/cache/apt/archives/
". (se não, você pode
descarregá-lo a partir do arquivo http://snapshot.debian.net/ ou
copiá-lo da cache de pacotes de uma máquina funcional.)
Se puder arrancar o sistema, você pode instalá-lo com o seguinte comando.
# dpkg -i /caminho/para/foo_<versão_antiga>_<arquitectura>.deb
![]() |
Dica |
---|---|
Se os danos no sistema forem menores, você pode alternativamente fazer downgrade (regredir a versão) ao sistema completo como Secção 2.7.10, “Downgrade de emergência” usando o sistema APT de alto nível. |
Se o seu sistema não puder arrancar pelo disco rijo, você precisa procurar outras maneiras de arrancá-lo.
Arranque o sistema usando o CD de instalação de Debian (debian-installer) em modo de recuperação.
Monte o sistema danificado no disco rijo em "/target
".
Instale uma versão antiga do pacote foo
com o seguinte.
# dpkg --root /target -i /caminho/para/foo_<versão_antiga>_<arquitectura>.deb
Este exemplo funciona mesmo se o comando dpkg
no disco
rijo estiver danificado.
![]() |
Dica |
---|---|
Qualquer sistema GNU/Linux arrancado por outro sistema no disco rijo, Live CD de GNU/Linux, por caneta USB de arranque ou arranque de rede pode ser usado de modo semelhante para recuperar um sistema danificado. |
Se a tentativa de instalar um pacote deste modo falha devido a algumas
violações de dependências e você precisa realmente de fazer isto como último
recurso, você pode sobrepor a dependência usando a
"--ignore-depends
", "--force-depends
"
e outras opções do dpkg
. Se fizer isto, você precisa de
fazer um sério esforço para restaurar as dependências apropriadas mais
tarde. Veja
dpkg(8)
para detalhes.
![]() |
Nota |
---|---|
Quando o seu sistema está seriamente danificado, você deve fazer uma salvaguarda completa para um lugar seguro (veja Secção 10.1.6, “Salvaguarda (backup) e recuperação”) e deve fazer uma instalação limpa. Isto consome menos tempo e produz melhores resultados no fim. |
Se o "/var/lib/dpkg/status
" ficar corrompido por qualquer
razão, o sistema Debian perde os dados de selecção de pacotes e sofre
severamente. Procure pelo ficheiro antigo
"/var/lib/dpkg/status
" em
"/var/lib/dpkg/status-old
" ou
"/var/backups/dpkg.status.*
".
Manter "/var/backups/
" numa partição separada pode ser
uma boa ideia porque este directório contém muitos dados importantes do
sistema .
Para danos sérios, Eu recomendo fazer uma instalação limpa após fazer a
salvaguarda do sistema. Mesmo que tudo em "/var/
" esteja
perdido, você ainda pode recuperar alguma informação dos directórios em
"/usr/share/doc/
" para o guiar na sua nova instalação.
Reinstalar o sistema mínimo (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
Então são-lhe apresentados nomes de pacotes para instalar. (Podem existir
alguns nomes não de pacotes como "texmf
".)
Você pode procurar os pacotes que satisfaçam as suas necessidades com o
aptitude
a partir da descrição do pacote ou a partir da
lista "Tarefas".
Quando encontrar mais de 2 pacotes semelhantes e não sabe qual deles instalar e os esforços de "testar e errar", você deve usar algum senso comum. Eu considero os seguintes pontos como boas indicações dos pacotes preferidos.
Essencial: yes > no
Componente: main > contrib > non-free
Prioridade: required > important > standard > optional > extra
Tasks: pacotes listados em tarefas como "Ambiente de Trabalho"
Pacotes seleccionados pela dependência de pacote (ex.,
python2.4
por python
)
Popcon: mais alto na votação e numero de instalações
Changelog: actualizações regulares feitas pelo responsável do pacote
BTS: Nenhum bug RC (nenhum crítico, nenhum grave, e nenhum bug sério)
BTS: manutenção responsável aos relatórios de bugs
BTS: o maior número de bugs corrigidos recentemente
BTS: o menor número de bugs "não-lista-de-desejos" remanescentes
Sendo o Debian um projecto voluntário com modelo de desenvolvimento distribuído, o seu arquivo contém muitos pacotes com diferentes objectivos e qualidade. Você tem de tomar as suas próprias decisões sobre o que fazer com eles.
![]() |
Cuidado |
---|---|
Instalar pacotes de fontes de arquivos misturados não é suportado pela
distribuição oficial Debian excepto para combinações de arquivos
oficialmente suportadas tais como |
Aqui está um exemplo de operações para ocasiões singulares para incluir
pacotes específicos de nova versão da origem encontrados em
unstable
enquanto se acompanha a
testing
for single occasion.
Altere o ficheiro "/etc/apt/sources.list
" temporariamente
para entrada única "unstable
".
Correr "aptitude update
".
Correr "aptitude install <nome-do-pacote>
".
Recupere o ficheiro "/etc/apt/sources.list
" original para
testing
.
Correr "aptitude update
".
Você não tem que criar o ficheiro "/etc/apt/preferences
"
nem precisa de se preocupar com o apt-pinning com esta solução manual. Mas é
muito embaraçosa.
![]() |
Cuidado |
---|---|
Quando usa fontes de arquivos misturados, você tem que assegurar por si próprio a compatibilidade dos pacotes pois o Debian não o garante. Se existir incompatibilidade de pacotes, você pode danificar o seu sistema. Você tem que ser capaz de julgar estes requisitos técnicos. O uso de fontes misturadas de arquivos aleatórios é uma operação completamente opcional e o seu uso não é algo que Eu o encoraje a usar. |
As regras gerais para instalar pacotes de arquivos diferentes são as seguintes.
Nenhum pacote binário de ("Arquitectura: todos
") é
mais seguro para instalar.
pacotes de documentação: nenhum requisito especial
pacotes de programa interpretador: interpretador compatível tem de estar disponível
Pacotes binários (não "Architecture: all
") geralmente
enfrentam muitos obstáculos e são inseguros para instalar.
![]() |
Nota |
---|---|
De modo a tornar um pacote seguro para instalar, alguns pacotes de programas binário comerciais não livres podem vir disponibilizados com bibliotecas completamente ligadas estaticamente. Mesmo assim você deve verificar problemas de compatibilidade da ABI e etc. por eles. |
![]() |
Nota |
---|---|
Excepto para evitar pacotes quebrados em períodos curtos, instalar pacotes binários de arquivos não suportados oficialmente é geralmente uma má ideia. Isto é verdadeiro mesmo que use apt-pinning (veja Secção 2.7.3, “Moldar a versão candidata”). Você deve considerar o chroot ou técnicas semelhantes (veja Secção 9.8, “Sistema virtualizado”) para correr programas de arquivos diferentes. |
Sem o ficheiro "/etc/apt/preferences
", o sistema APT
escolhe a versão disponível mais recente com a versão candidata usando a string de versão. Este é
o estado normal e a utilização mais recomendada do sistema APT.Todas as
combinações de arquivos oficialmente suportadas não requerem o ficheiro
"/etc/apt/preferences
" porque alguns arquivos que não
devem ser usados como a fonte automática de actualizações são marcados como
NotAutomatic e são tratados de modo
apropriado.
![]() |
Dica |
---|---|
A regra de comparação da string de versão pode ser verificada com , ex.,
" |
Quando você instala regularmente pacotes de uma mistura de fontes de
arquivos (veja Secção 2.7.2, “Pacotes de fontes de arquivos misturados”),
você pode automatizar esta operações complicadas ao criar o ficheiro
"/etc/apt/preferences
"com entradas apropriadas e moldando
a regra de selecção de pacotes para a versão
candidata como descrito em
apt_preferences(5).
A isto chama-se apt-pinning.
![]() |
Atenção |
---|---|
O uso de apt-pinning por um utilizador novato é uma chamada certa a grandes problemas. Você deve evitar usar o apt-pinning excepto quando precisa absolutamente dele. |
![]() |
Cuidado |
---|---|
Quando usa apt-pinning, você próprio tem que assegurar a compatibilidade dos pacotes pois o Debian não o garante. O apt-pinning é uma operação completamente opcional e o sue uso não é algo que Eu encoraje a usar. |
![]() |
Cuidado |
---|---|
Os ficheiros Release do nível de arquivo (veja Secção 2.5.3, “Ficheiros "Release" do nível de arquivo”) são usados 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 segurança. (Isto é
diferente dos arquivos do Ubuntu). Por
exemplo, você pode " |
![]() |
Cuidado |
---|---|
Quando usar um arquivo não-Debian como parte de apt-pinning, você deve verificar ao que ele se destina e também verificar a sua credibilidade. Por exemplo, Ubuntu e Debian não se destinam a ser misturados. |
![]() |
Nota |
---|---|
Mesmo que você não crie o ficheiro
" |
Aqui está uma explicação simplificada da técnica de apt-pinning.
O sistema APT escolhe o pacote de actualização com o Pin-Priority maior das fontes de
pacotes disponíveis definidas no ficheiro
"/etc/apt/sources.list
" como o pacote de versão candidata. Se o Pin-Priority do pacote é
maior que 1000, esta restrição de versão para actualização é abandonada para permitir o downgrade
(veja Secção 2.7.10, “Downgrade de emergência”).
O valor Pin-Priority de cada pacote é definido por entradas "Pin-Priority"
no ficheiro "/etc/apt/preferences
" ou usa o seu valor
predefinido.
Tabela 2.18. Lista de valores Pin-Priority notáveis para técnica de apt-pinning.
Pin-Priority | efeitos do apt-pinning no pacote |
---|---|
1001 | instala o pacote mesmo que isto constitua uma regressão na versão (downgrade) do pacote |
990 | usado como predefinição para o arquivo de lançamento de destino |
500 | usado por predefinição para o arquivo normal |
100 | usado como predefinição para os arquivos NotAutomatic e ButAutomaticUpgrades |
100 | usado para o pacote instalado |
1 | usado como predefinição para o arquivo NotAutomatic |
-1 | nunca instala o pacote mesmo que este seja recomendado |
O arquivo target release pode ser definido por diferentes métodos.
ficheiro de configuração "/etc/apt/apt.conf
" com a linha
"APT::Default-Release "stable";
"
opção de linha de comandos, ex. "apt-get install -t testing
algum-pacote
"
Os arquivos NotAutomatic e ButAutomaticUpgrades são definidos pelo servidor de
arquivo que contêm no seu ficheiro Release do nível de arquivo (veja Secção 2.5.3, “Ficheiros "Release" do nível de arquivo”) ambos "NotAutomatic:
yes
" e "ButAutomaticUpgrades: yes
". O arquivo
NotAutomatic é definido pelo servidor de
arquivo que contém no seu ficheiro Release de nível de arquivo apenas
"NotAutomatic: yes
".
A situação de apt-pinning do
<pacote> de múltiplas fontes de arquivos é mostrada por
"apt-cache policy <pacote>
".
Uma linha começada com "Package pin:
" lista a versão do
pacote de pin se estiver definida a
associação apenas com o <pacote> ex., "Package pin:
0.190
".
Nenhuma linha existe com "Package pin:
" se nenhuma
associação apenas com <pacote> for definida.
O valor Pin-Priority associando ao <pacote> é listado no lado direito
de todas as strings de versão, ex., "0.181 700
".
É listado "0
" à direita de todas as strings de versão se
nenhuma associação apenas com <pacote> for definida, ex.,
"0.181 0
".
Os valores Pin-Priority dos arquivos (definidos como "Package:
*
" no ficheiro "/etc/apt/preferences
") são
listados à esquerda dos caminhos dos arquivos, ex., "100
http://backports.debian.org/debian-backports/
squeeze-backports/main Packages
".
Existem os arquivos squeeze-updates e backports.debian.org que disponibilizam
pacotes de actualização para stable
(squeeze
).
De modo a usar estes arquivos, você lista todos os arquivos necessários no
ficheiro "/etc/apt/sources.list
" como se segue.
deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib deb http://ftp.us.debian.org/debian/ squeeze-updates main contrib non-free deb http://backports.debian.org/debian-backports/ squeeze-backports main contrib non-free
Não há necessidade de definar valores específicos de Pin-Priority no
ficheiro "/etc/apt/preferences
". Quando os novos pacotes
ficam disponíveis, a configuração predefinida disponibiliza as actualizações
mais razoáveis (veja Secção 2.5.3, “Ficheiros "Release" do nível de arquivo”).
Todos os pacotes antigos instalados são actualizados para mais recentes a
partir de squeeze-updates
.
Apenas os pacotes antigos instalados manualmente a partir de
squeeze-backports
são actualizados para mais
recentes a partir de squeeze-backports
.
Sempre que desejar instalar um pacote chamado
"<nome-do-pacote>
" com as suas dependências a
partir do arquivo squeeze-backports
manualmente, você usa o seguinte comando enquanto muda o lançamento alvo com
a opção "-t
".
$ sudo apt-get install -t squeeze-backports <nome_do_pacote>
Se desejar não puxar pacotes particulares automaticamente pelos
"Recomendados", tem de criar o ficheiro
"/etc/apt/preferences
" e listar explicitamente esses
pacotes no topo nele como se segue.
Package: <package-1> Pin: version * Pin-Priority: -1 Package: <package-2> Pin: version * Pin-Priority: -1
Aqui está um exemplo de técnica de apt-pinning para incluir pacotes específicos de
versão original mais recente encontrados em unstable
e
actualizados regularmente enquanto de segue o
testing
. Você lista todos os arquivos necessários no
ficheiro "/etc/apt/sources.list
" como 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 dependências a
partir do arquivo unstable
sob esta configuração, você
invoca o seguinte comando que muda o lançamento alvo em a opção
"-t
" (o Pin-Priority de unstable
torna-se 990.).
$ sudo apt-get install -t unstable <nome-do-pacote>
Com esta configuração, a execução 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 não remover a entrada " |
![]() |
Dica |
---|---|
Geralmente Eu edito o ficheiro " |
![]() |
Dica |
---|---|
Se for usado " |
Se você deseja acompanhar pacotes particulares em
unstable
automaticamente sem uma instalação "-t
unstable
" inicial, você tem de criar o ficheiro
"/etc/apt/preferences
" e listar explicitamente todos
esses pacotes no topo dele como 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 específico. Por exemplo,
de modo a acompanhar a versão unstable
mais recente deste
"Debian Reference" em Português, 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 técnica de apt-pinning é válida mesmo se você estiver a seguir o
arquivo |
Aqui está outro exemplo de técnica de apt-pinning para incluir pacotes de versão de
origem mais recentes encontrados em experimental
enquanto
se segue unstable
. Você lista todos os arquivos
necessários no ficheiro "/etc/apt/sources.list
" como se
segue.
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 Secção 2.5.3, “Ficheiros "Release" do nível de arquivo”). Não é preciso regular 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 próxima actualização.
O pacote apt
vem com o seu próprio script de cron
"/etc/cron.daily/apt
" para suportar a descarga automática
de pacotes. Este script pode ser melhorado para executar a actualização
automática de pacotes ao instalar o pacote
unattended-upgrades
. Esta pode ser personalizada por
parâmetros em "/etc/apt/apt.conf.d/02backup
" e
"/etc/apt/apt.conf.d/50unattended-upgrades
" como descrito
em "/usr/share/doc/unattended-upgrades/README
".
O pacote unattended-upgrades
destina-se principalmente
para as actualizações de segurança do sistema stable
. Se
o risco de danificar um sistema stable
existente pelas
actualizações automáticas é menor do que ser danificado por um intruso que
usa buracos de segurança que foram fechados por actualizações de segurança,
você deve considerar usar estas actualizações automáticas com parâmetros de
configuração como os que se seguem.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "1";
Se você está a correr um sistema unstable
, não vai querer
usar as actualizações automáticas pois com certeza irão danificar o seu
sistema um dia. Mesmo para casos de unstable
, você pode
ainda querer descarregar os pacotes com antecedência para poupar tempo na
actualização interactiva com parâmetros de configuração como os que se
seguem.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "0";
Se desejar limitar a largura de banda para o APT para por exemplo 800Kib/sec (=100kiB/sec), deve configurar o APT com o seu parâmetro de configuração como o seguinte.
APT::Acquire::http::Dl-Limit "800";
![]() |
Cuidado |
---|---|
O downgrade (regressão de versão) não é suportado oficialmente por desenho pelo sistema Debian. Deverá ser feito apenas como parte de um processo de recuperação de emergência. Apesar desta situação, é conhecido por funcionar bem em muitos incidentes. Para sistemas críticos, você deve fazer salvaguardas (backups) de todos os dados importantes após a operação de recuperação e e reinstalar um sistema novo de limpo. |
Você pode ter sorte ao fazer o downgrade de uma arquivo recente para um
arquivo mais antigo para recuperar de uma actualização ao sistema que o
deixou danificado ao manipular a versão
candidata (veja Secção 2.7.3, “Moldar a versão candidata”). Esta é uma alternativa preguiçosa
às acções tediosas de muitos comandos "dpkg -i
<pacote-danificado>_<versão-antiga>.deb
" (veja Secção 2.6.4, “Recuperação 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/ wheezy main contrib non-free
Regule o ficheiro "/etc/apt/preferences
" como o seguinte.
Package: * Pin: release a=testing Pin-Priority: 1010
Corra "apt-get dist-upgrade
" para forçar o downgrade dos
pacotes no sistema.
Remova este ficheiro especial "/etc/apt/preferences
" após
este downgrade de emergência.
![]() |
Dica |
---|---|
É uma boa ideia remover (não purgar) o máximo de pacotes para minimizar problemas de dependências. Você pode precisar de remover e instalar manualmente alguns pacotes para conseguir o downgrade do sistema. O kernel Linux, gestor de arranque, udev, PAM, APT, e os pacotes relacionados com a rede e os seus ficheiros de configuração requerem atenção especial. |
Apesar do nome do responsável listado em
"/var/lib/dpkg/available
" e
"/usr/share/doc/package_name/changelog
" fornecer alguma
informação sobre "quem está por detrás 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.
Se você vai compilar um programa a partir da fonte para substituir um pacote
Debian, o melhor é torná-lo num pacote local realmente 'debianizado'
(*.deb
) e usar um arquivo privado.
Se você escolher compilar um programa de fonte e instalá-lo sob
"/usr/local
", você pode precisar de usar o
equivs
como último recurso para satisfazer as
dependências perdidas do pacote.
Package: equivs Priority: extra Section: admin Description: Engana as dependências de pacotes Debian Este é um pacote dummy que pode ser usado para criar pacotes Debian, que apenas contêm informação de dependências.
Para actualizações parciais do sistema stable
, é
desejável reconstruir um pacote dentro do seu ambiente usando um pacote
fonte. Isto evita actualizações maciças de pacotes devido às suas
dependências.
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 necessários para a compilação e descarregue o pacote fonte como se segue.
# 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*
Ajustar os pacotes instalados se necessário.
Execute o seguinte.
$ dch -i
Colisão de versão de pacote, ex. um com "+bp1
"
acrescentado em "debian/changelog
"
Compile pacotes e instale-os para o sistema como o seguinte.
$ debuild $ cd .. # debi foo*.changes
Porque colocar em mirror uma sub-secção inteira do arquivo Debian é um
desperdício de espaço do disco e largura de banda de rede, a implantação se
um servidor proxy local para o APT é desejável tendo em consideração que
você administra muitos sistemas em LAN. O APT
pode ser configurado para usar servidores proxy web genéricos (http) como o
squid
(veja Secção 6.10, “Outras aplicações de servidor de rede”) como descrito em
apt.conf(5)
e em "/usr/share/doc/apt/examples/configure-index.gz
". A
variável de ambiente $http_proxy
" pode ser usada para
sobrepor a definição de servidor proxy no ficheiro
"/etc/apt/apt.conf
".
Existem ferramentas de proxy especiais para o arquivo Debian. Você deve verificar o BTS antes de as usar.
Tabela 2.19. Lista de ferramentas proxy especiais para arquivos Debian
pacote | popcon | tamanho | descrição |
---|---|---|---|
approx *
|
V:0.2, I:0.2 | 3544 | servidor proxy de cache para ficheiros de arquivo Debian (programa OCaml compilado) |
apt-cacher *
|
V:0.2, I:0.3 | 283 | Proxy de cache para pacotes Debian e ficheiros de fonte (programa Perl) |
apt-cacher-ng *
|
V:0.4, I:0.5 | 1066 | Proxy de cache para distribuição de pacotes de software (programa C++ compilado) |
debtorrent *
|
V:0.11, I:0.15 | 1185 | Proxy Bittorrent para descarregar pacotes Debian (programa Python) |
![]() |
Cuidado |
---|---|
Quando o Debian reorganiza a estrutura do seu arquivo, estas ferramentas de proxy especializadas tendem a requerer rescritas de código pelo responsável do pacote e podem não estar funcionais durante algum tempo. Por outro lado, os servidores proxy web (http) genéricos são mais robustos e fáceis de cooperar com tais mudanças. |
Aqui está um exemplo para criar um pequeno arquivo de pacotes público compatível com o moderno sistema secure APT (veja Secção 2.5.2, “Ficheiro "Release" de nível de topo e autenticidade:”). Vamos assumir algumas coisas.
nome da conta: "foo
"
Nome da máquina: "www.example.com
"
Pacotes requeridos: 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
Publica 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" com 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
Você pode automatizar actualizações repetitivas do conteúdo do arquivo APT
no seu sistema servidor ao configurar o dupload
.
Coloca 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
" contém 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.
Você pode adicionar este pequeno arquivo público à 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 está localizado no sistema de ficheiros local, então você pode
usar antes o " |
Você pode criar um cópia local do estado de selecção de pacotes e debconf com o seguinte.
# dpkg --get-selections '*' > selection.dpkg # debconf-get-selections > selection.debconf
Aqui, "*
" faz com que "selection.dpkg
"
também 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_selecção.debconf # dpkg --set-selections < minha_selecção.dpkg # apt-get -u dselect-upgrade # ou dselect install
Se está a pensar em gerir muitos servidores num cluster com praticamente a
mesma configuração, você deve considerar usar um pacote especializado como o
fai
para gerir o sistema completo.
O
alien(1)
permite a conversão de pacotes binários disponibilizados em formatos de
ficheiro para Red Hat rpm
, Stampede
slp
, Slackware tgz
, e Solaris
pkg
num pacote Debian deb
. Se você
quer usar um pacote de outra distribuição de Linux em vez daquele que tem
instalado no seu sistema, você pode usar o alien
para
convertê-lo a partir do seu formato de pacote preferido e instala-lo. O
alien
também suporta pacotes LSB.
![]() |
Atenção |
---|---|
O
alien(1)
não deve ser usado para substituir pacotes essenciais do sistema, tal como o
|
Os conteúdos dos pacotes "*.deb
" actuais podem ser
extraídos sem usar o
dpkg(1)
em qualquer ambiente estilo Unix usando os
standard
ar(1)
e
tar(1).
# 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
Também pode explorar o conteúdo de um pacote usando o comando
mc
.
Você pode aprender mais sobre a gestão de pacotes a partir das seguintes documentações.
Documentações principais sobre a gestão 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
.
Documentações oficiais e detalhadas no arquivo Debian:
Tutorial para construir um pacote Debian para utilizadores do Debian: