Índice
apt
vs. apt-get
/
apt-cache
contra o aptitude
testing
com alguns pacotes de
unstable
unstable
com alguns pacotes de
experimental
![]() |
Nota |
---|---|
Este capítulo é escrito a assumir que o lançamento estável mais recente tem
o nome de código: A fonte de dados do sistema APT é coletivamente referida como a lista de fontes neste documento. Isto pode ser
definido em qualquer parte do ficheiro
" |
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 arquivo dele.
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 atual sistema de gestão de pacotes Debian que pode utilizar todos estes recursos é o Ferramenta de instalações avançada (APT).
O sistema de gestão de pacotes Debian, quando utilizado de modo apropriado, oferece ao utilizador o instalar de conjuntos consistentes de pacotes binários no sistema a partir do arquivo. atualmente, existem 74165 pacotes disponíveis para a arquitectura amd64.
O sistema de gestão de pacotes Debian tem um histórico rico e muitas opções de escolha para o programa cliente do utilizador e de método de acesso ao arquivo. Atualmente, recomendamos o seguinte:
apt
(8) para todas as operações de linha de comandos
interativas, incluindo instalação, remoção e atualização de pacotes.
apt-get
(8) para chamar o sistema de gestão de pacotes
Debian a partir de scripts. É também uma opção regressiva quando o
apt
não está disponível (comum em sistemas Debian
antigos).
aptitude
(8) para uma interface de texto interactiva para
gerir os pacotes instalados e procurar os pacotes disponíveis.
Tabela 2.1. Lista de ferramentas de gestão de pacotes Debian
pacote | popcon | tamanho | descrição |
---|---|---|---|
dpkg
|
V:912, I:999 | 6388 | sistema de gestão de pacotes de baixo nível para Debian (baseado em ficheiros) |
apt
|
V:865, I:999 | 4318 | Interface APT para gerir pacotes com CLI:
apt /apt-get /apt-cache |
aptitude
|
V:48, I:253 | 4389 | Interface do APT para gerir pacotes interativamente com uma consola de ecrã
completo: aptitude (8) |
tasksel
|
V:34, I:980 | 347 | Front-end APT para instalar tarefas selecionadas:
tasksel (8) |
unattended-upgrades
|
V:182, I:278 | 301 | pacote de melhoria para o APT para ativar a instalação automática de atualizações de segurança |
gnome-software
|
V:153, I:263 | 3085 | Centro de Software para GNOME (GUI APT front-end) |
synaptic
|
V:46, I:375 | 7627 | gestor de pacotes gráfico (interface GTK para APT) |
apt-utils
|
V:379, I:998 | 1065 | Programas utilitários do APT: apt-extracttemplates (1),
apt-ftparchive (1) e apt-sortpkgs (1) |
apt-listchanges
|
V:358, I:872 | 398 | ferramenta de notificação do histórico de alterações do pacote |
apt-listbugs
|
V:6, I:8 | 477 | lista bugs críticos antes de cada instalação do APT |
apt-file
|
V:17, I:67 | 89 | Utilitário de busca de pacotes do APT - interface de linha de comandos |
apt-rdepends
|
V:0, I:5 | 39 | lista recursivamente dependências de pacotes |
Aqui estão alguns pontos chave para a 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 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 melhor para tornar a sua experiência de atualizaçã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 manualmente ativou 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ência com programas de ajuda genéricos populares para a configuração do sistema.
![]() |
Atenção |
---|---|
Não instale pacotes de misturas aleatórias de suites. Provavelmente vai quebrar a consistência do pacote o que requer conhecimentos profundos de gestão do sistema tais como ABI compilador, versão de biblioteca, funcionalidades do interpretador, etc. |
O administrador de sistemas Debian novato deve
ficar com a suite stable
de Debian enquanto aplica
apenas atualizações de segurança. Até compreender muito bem o sistema
Debian, você deve seguir as seguintes precauções.
Não inclua testing
ou
unstable
na lista de fontes.
Não misture o Debian padrão com outros repositórios não-Debian como o Ubuntu na lista de fontes.
Não crie "/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 com "dpkg -i
qualquer_pacote
".
Nunca instale pacotes aleatórios com "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 compilados a partir do código-fonte.
Instale-os em "/usr/local
" ou "/opt
",
se necessário.
Os efeitos não-compatíveis causados pela violação das precauções acima para com o sistema de gestão de pacotes Debian podem deixar o seu sistema inutilizável.
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 atualizações de segurança da Debian sem os testar completamente com as suas configurações particulares sob condições seguras.
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 por si só.
![]() |
Cuidado |
---|---|
Para o seu servidor de produção a suite
|
Apesar dos meus avisos acima, sei que muitos leitores deste documento podem
querer executar as suites testing
ou
unstable
mais recentes.
O Esclarecimento com o seguinte salva uma pessoa do karma da eterna luta do inferno das atualizações e permite-lhe alcançar o nirvana de Debian.
Esta lista destina-se ao ambiente de trabalho auto-administrado.
Use a suite testing
já que esta é na prática a
atualização contínua gerida automaticamente pela infraestrutura de controlo
de qualidade do repositório Debian, como a integração contínua Debian,
as práticas de upload somente
de código fonte e o acompanhamento de transição de
bibliotecas. Os pacotes na suite testing
são
atualizados com frequência suficiente para oferecer todos os recursos mais
recentes.
Definir o nome de código correspondente ao conjunto
testing
("trixie
" durante
o ciclo de lançamento
bookworm
-as-stable
) na
lista de fontes.
Atualize manualmente este codinome na lista de fontes para o novo somente após avaliar a situação por si mesmo por cerca de um mês após o lançamento da suíte principal. A lista de discussão de usuários e desenvolvedores Debian são boas fontes de informação para isso também.
A utilização da suite instável
não é recomendada. A
suite instável
é boa para depurar
pacotes como programador mas tende a expor a riscos
desnecessários para a utilização normal do ambiente de trabalho. Mesmo que
a suite instável
do sistema Debian pareça muito estável
na maioria das vezes, houve alguns problemas com pacotes e alguns deles não
foram tão triviais de resolver.
Aqui estão algumas idéias básicas de medidas de precaução para assegurar uma recuperação rápida e fácil de bugs em pacotes Debian.
Faça um sistema de duplo arranque ao
instalar a suite stable
do sistema Debian noutra 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 das atualizações
Conheça o suficiente da infraestrutura do sistema de pacotes para contornar o problema
![]() |
Cuidado |
---|---|
Se não conseguir fazer nenhumas destas ações de precaução, provavelmente não
está preparado para as suites |
![]() |
Dica |
---|---|
A política oficial do arquivo Debian está definida em Manual de Políticas Debian, Capítulo 2 - O Arquivo Debian. |
Vamos olhar ao arquivo Debian a partir da perspectiva do utilizador do sistema.
Para um utilizador do sistema, o arquivo Debian é acedido utilizando o sistema APT.
O sistema APT especifica a sua fonte de dados como a lista de fontes e esta é descrita em
sources.list
(5).
Para o sistema bookworm
com o acesso HTTP
típico, a lista de fontes no estilo de
uma só linha é a seguinte:
deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
Alternativamente, a lista de fontes equivalente no estilo deb822 é a seguinte.
Types: deb deb-src URIs: http://deb.debian.org/debian/ Suites: bookworm Components: main non-free-firmware contrib non-free Types: deb deb-src URIs: http://security.debian.org/debian-security/ Suites: bookworm-security Components: main non-free-firmware contrib non-free
Os pontos principais da lista de fontes são os seguintes.
Formato de uma só linha
Os seus ficheiros de definição estão no ficheiro
"/etc/apt/sources.list
" e nos ficheiros
"/etc/apt/sources.list.d/*.list
".
Cada linha define a fonte de dados para o sistema APT.
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 segundo argumento é o nome da distribuição, utilizando o nome da 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.
Estilo do formato Deb822
Os seus ficheiros de definição estão nos ficheiros
"/etc/apt/sources.list.d/*.source
".
Cada bloco de linhas separado por uma linha em branco define a fonte de dados para o sistema APT.
A estrofe "Types:
" define a lista de tipos tais como
"deb
" e "deb-src
".
A estrofe "URIs:
" define a lista de URIs raiz do
repositório Debian.
A estrofe "Suites:
" define a lista de nomes de
distribuição utilizando o nome da suite ou o nome de código.
A estrofe "Components:
" define a lista de nomes de áreas
de arquivo válidas do arquivo Debian.
A definição para "deb-src
" pode ser omitida com segurança
se for apenas para aptitude
que não acede aos meta dados
relacionados com a fonte. Acelera as atualizações dos meta dados do arquivo.
O URL pode ser "https://
", "http://
",
"ftp://
", "file://
", ....
As linhas que começam por "#
" são comentários e são
ignoradas.
Aqui, tenho tendência para utilizar o nome de código
"bookworm
" ou
"trixie
" em vez do nome da suite
"stable
" ou "testing
" para evitar
surpresas quando a próxima stable
for lançada.
![]() |
Dica |
---|---|
Se " |
Aqui está a lista de URLs dos sites de arquivo Debian e o nome da suite ou
nome de código usado no ficheiro de configuração após o lançamento do
bookworm
.
Tabela 2.2. Lista de sites de arquivos Debian
URL do arquivo | nome da suite | codinome | objetivo do repositório |
---|---|---|---|
http://deb.debian.org/debian/ | stable |
bookworm |
Quase-estática stable realizada após controlos exaustivos |
http://deb.debian.org/debian/ | testing |
trixie |
Disponibilização dinâmica da suite testing após controlos
decentes e prazos curtos |
http://deb.debian.org/debian/ | unstable |
sid |
Lançamento unstable dinâmico após verificações mínimas e
sem esperas |
http://deb.debian.org/debian/ | experimental |
N/D | Experiências de pré-lançamento efetuadas por programadores (opcional, apenas para programadores) |
http://deb.debian.org/debian/ | stable-proposed-updates |
bookworm-proposed-updates |
Atualizações para a próxima versão stable (opcional) |
http://deb.debian.org/debian/ | stable-updates |
bookworm-updates |
Subconjunto do conjunto stable-proposed-updates que
necessita de atualizações urgentes, como os dados relativos ao fuso horário
(opcional) |
http://deb.debian.org/debian/ | stable-backports |
bookworm-backports |
Coleção aleatória de pacotes recompilados maioritariamente da versão
testing (opcional) |
http://security.debian.org/debian-security/ | stable-security |
bookworm-security |
Atualizações de segurança para a versão stable
(importante) |
http://security.debian.org/debian-security/ | testing-security |
trixie-security |
Não é ativamente apoiado nem utilizado pela equipa de segurança |
![]() |
Cuidado |
---|---|
Apenas a suite |
![]() |
Cuidado |
---|---|
Basicamente deve listar apenas uma das suites |
![]() |
Dica |
---|---|
Para o sistema Debian com a suite |
![]() |
Nota |
---|---|
Os bugs de segurança para a suite |
Tabela 2.3. Lista de área de arquivo Debian
área | quantidade de pacotes | critério do componente do pacote |
---|---|---|
main |
72806 | em conformidade com DFSG e nenhuma dependência a non-free |
non-free-firmware |
39 | não compatível com DFSG, firmware necessário para uma experiência razoável de instalação do sistema |
contrib |
356 | em conformidade com DFSG mas com dependências a non-free |
non-free |
964 | não compatível com DFSG e não em non-free-firmware |
Aqui a quantidade de pacotes em cima é para a arquitectura amd64. A área
main
disponibiliza o sistema Debian (veja Secção 2.1.6, “Debian é 100% software livre”).
A organização do arquivo Debian pode ser melhor estudada ao apontar o seu
navegador a cada URL de arquivo seguido de 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
Tempo | suite = stable |
suite = testing |
suite = unstable |
---|---|---|---|
após o lançamento bookworm |
nome de código = bookworm |
nome de código = trixie |
nome de código = sid |
após o lançamento trixie |
nome de código = trixie |
nome de código = forky |
nome de código = sid |
A história dos nomes de código está descrita em Debian FAQ: 6.2.1 Que outros nomes de código foram usados no passado?
Na terminologia estrita do arquivo Debian, a palavra "secção" é utilizada especialmente para categorizar os pacotes pela área de aplicação. (Apesar da palavra "secção main" poder por vezes ser utilizada para descrever a área do arquivo Debian com o nome "main".)
Cada vez que é feito um novo upload por um programador de Debian (DD) para o
arquivo unstable
(por processamento do incoming), é necessário que o DD assegure que os
pacotes enviados sejam compatíveis com o conjunto de pacotes mais recente no
arquivo unstable
mais recente.
Se o DD quebrar esta compatibilidade intencionalmente para uma atualização importante de biblioteca ou etc., geralmente existe um anúncio na lista de email debian-devel etc.
Antes que um conjunto de pacotes 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 2-10 dias de idade) e o estado dos relatórios
de bug RC para os pacotes mas também tenta assegurar que sejam compatíveis
com o conjunto de pacotes mais recente no arquivo
testing
. Este processo torna o arquivo
testing
muito atual e utilizável.
Através do processo de congelamento 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 a criar um novo nome de código para
o novo arquivo testing
. O conteúdo inicial do novo
arquivo testing
é exatamente o mesmo que o arquivo
stable
recentemente lançado.
Ambos os arquivos unstable
e testing
podem sofrer falhas temporárias devido a vários fatores:
Envio de pacotes danificados ao 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 decidir utilizar 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 as definições do arquivo.
Debian é 100% software livre por causa do seguinte:
Por predefinição, Debian instala apenas software livre para respeitar as liberdades dos utilizadores.
Debian disponibiliza apenas software livre no main
.
Debian recomenda correr apenas software livre do main
.
Nenhum pacote main
depende nem recomenda pacotes na
non-free
nem na non-free-firmware
nem
na contrib
.
Algumas pessoas pensam se os 2 seguintes factos se contradizem ou não.
"Debian irá manter-se 100% livre". (Primeiro termo do Debian Social Contract)
Os servidores Debian hospedam alguns pacotes
non-free-firmware
, non-free
e
contrib
.
Estes não se contradizem, devido ao seguinte.
O sistema Debian é 100% livre e os seus pacotes estão alojados em servidores
Debian na área main
.
Pacotes fora do sistema Debian são hospedados por servidores Debian nas
áreas non-free
, non-free-firmware
e
contrib
.
Isto é perfeitamente explicado nos termos 4º e 5º do Debian Social Contract:
As nossas prioridades são os nossos utilizadores e o software livre
Seremos guiados pelas necessidades dos nossos utilizadores e da comunidade de software livre. Iremos pôr o interesse deles no topo das nossas prioridades. Iremos suportar as necessidades dos nossos utilizadores para operação em muitos ambientes de computação distintos. Não nos oporemos a software não-livre que se destine a ser utilizado em sistemas Debian, nem tentaremos cobrar qualquer taxa a pessoas que criem ou utilizem tais trabalhos. Iremos permitir que terceiros criem distribuições a conter o sistema Debian com outros trabalhos, sem qualquer taxa para nós. Para apoio destes objetivos, iremos disponibilizar um sistema integrado de materiais de alta qualidade sem restrições legais que previnam tais utilizações do sistema.
Trabalhos que não coincidem com os nossos standards de software livre
Nós reconhecemos que alguns de nossos utilizadores requerem o uso de
trabalhos que não estão de acordo com a Definição Debian de Software
Livre. Nós criamos áreas "non-free
",
"non-free-firmware
" e "contrib
" no
nosso repositório para estes trabalhos. Os pacotes nestas áreas não são
parte do sistema Debian, embora tenham sido configurados para uso com o
Debian. Nós encorajamos os fabricantes de CDs a ler as licenças dos pacotes
nestas áreas e determinar se eles podem distribuir os pacotes em seus
CDs. Assim, embora os trabalhos não-livres não façam parte da Debian, nós
suportamos a sua utilização e fornecemos infraestruturas para pacotes
não-livres (tais como o nosso sistema de acompanhamento de bugs e listas de
correio eletrónico). A média oficial da Debian pode incluir firmware que de
outra forma não é parte do sistema Debian para permitir o uso da Debian com
hardware que requer tal firmware.
![]() |
Nota |
---|---|
O texto atual do quinto termo no atual Contrato Social Debian 1.2 é ligeiramente diferente do texto acima. Este desvio editorial é intencional para tornar este documento do utilizador consistente sem alterar o conteúdo real do Contrato Social. |
Os utilizadores devem estar cientes dos riscos de usar pacotes das áreas
non-free
, non-free-firmware
e
contrib
:
falta de liberdade para tais pacotes de software
falta de suporte Debian em tais pacotes de software (Debian não pode suportar devidamente software sem ter acesso ao seu código-fonte.)
contaminação do seu sistema Debian 100% livre
As Debian Free Software Guidelines são os standards de software livre para Debian. Debian interpreta "software" no âmbito mais amplo incluindo documentação, firmware, logo e dados artísticos no pacote. Isto torna os standards de software livre de Debian muito rigorosos.
Tipicamente os pacotes da non-free
,
non-free-firmware
e da contrib
incluem
pacotes distribuídos livremente dos seguintes tipos:
Pacotes de documentação sob a GNU
Free Documentation License com secções invariantes tais como as do
GCC e do Make. (a maioria encontra-se na secção
non-free/doc
.)
Pacotes de firmware contendo dados binários sem fonte, tais como os listados
em Secção 9.10.5, “Controladores de hardware e firmware” como
non-free-firmware
. (maioritariamente encontrados na
secção non-free-firmware/kernel
.)
Pacotes de fontes e jogos com restrições comerciais de utilização e/ou modificação de conteúdo.
Por favor note que a quantidade de pacotes de non-free
,
non-free-firmware
e contrib
é menos de
2% dos pacotes de main
. Ativar o acesso às áreas
non-free
, non-free-firmware
e
contrib
não turva a fonte dos pacotes. A utilização do
ecrã interativo do aptitude
(8) disponibiliza-lhe
visibilidade e controlo total sobre que pacotes estão instalados e a partir
de qual das áreas, para manter o seu sistema livre conforme desejar.
O sistema Debian oferece um conjunto consistente de pacotes binários através do mecanismo de declaração de dependências binárias dele com versões nos campos do ficheiro de controle. Aqui está uma definição deles um pouco simplificada:
"Dependências"
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.
"Pré-Dependências"
Isto é como o Depends, excepto que requer a instalação completa de todos os pacotes listados com antecedência.
"Recomendados"
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.
"Sugeridos"
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.
"Melhoramentos"
Isto declara uma dependência fraca como Sugerida mas funciona na direção oposta.
"Quebras"
Isto declara uma incompatibilidade do pacote normalmente com alguma especificação de versão. Geralmente a resolução é atualizar todos os pacotes listados neste campo.
"Conflitos"
Isto declara uma incompatibilidade absoluta. Todos os pacotes listados neste campo têm de ser removidos para instalar este pacote.
"Substitui"
Isto é declarado quando os ficheiros instalados por este pacote substituem ficheiros nos pacotes listados.
"Proporciona"
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 encontra-se 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 ("apt update
",
"aptitude update
" ou "apt-get
update
"):
Obtém meta-dados do arquivo a partir do arquivo remoto
Re-constrói e atualiza os meta-dados locais para utilização do APT
Upgrade ("apt upgrade
"
e "apt full-upgrade
", ou "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.7, “Ajustar a versão candidata com o apt-pinning” para exceções)
Resolve a dependência do pacote
Obtém os pacotes binários selecionados do arquivo remoto se a versão candidata diferir da versão instalada
Desempacota os pacotes binários obtidos
Corre o script preinst
Instala os ficheiros binários
Corre o script postinst
Instalar ("apt 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 selecionados a partir do arquivo remoto
Desempacota os pacotes binários obtidos
Corre o script preinst
Instala os ficheiros binários
Corre o script postinst
Remover ("apt remove
…
", "aptitude remove …
" ou "apt-get
remove …
"):
Escolhe os pacotes listados na linha de comandos
Resolve a dependência do pacote
Corre o script prerm
Remove os ficheiros instalados excepto os ficheiros de configuração
Corre o script postrm
Purgar ("apt purge
",
"aptitude purge …
" ou "apt-get purge
…
"):
Escolhe os pacotes listados na linha de comandos
Resolve a dependência do pacote
Corre o script prerm
Remove os ficheiros instalados incluindo os ficheiros de configuração
Corre o script postrm
Aqui, saltei intencionalmente detalhes técnicos por causa da visão geral.
Deve ler a boa documentação oficial. O primeiro documento a ler é específico
de Debian
"/usr/share/doc/package_name/README.Debian
".
Também deve ser consultada outra documentação em
"/usr/share/doc/package_name/
". Se
definir a shell como Secção 1.4.2, “Personalizar bash”, escreva o
seguinte.
$ cd package_name
$ pager README.Debian
$ mc
Pode necessitar instalar o pacote de documentação correspondente, com o
sufixo "-doc
" no nome, para informações mais detalhadas.
Se estiver a ter problemas com um pacote específico, certifique-se que verifica primeiro o Sistema de acompanhamento de bugs Debian (BTS).
Tabela 2.5. Lista de sites web chave para resolver problemas com um pacote específico
site web | comando |
---|---|
Página inicial do Sistema de acompanhamento de bugs Debian (BTS) | sensible-browser "https://bugs.debian.org/" |
O relatório de bug de um nome de pacote conhecido | sensible-browser
"https://bugs.debian.org/nome_do_pacote" |
O relatório de bug de uma quantidade de bugs conhecida | sensible-browser
"https://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 criar um relatório de bug, por favor use o comando
reportbug
(1).
Quando encontrar mais de 2 pacotes semelhantes e não sabe qual deles instalar sem o esforço de "teste e erro", deve utilizar algum senso comum. Considero os seguintes pontos como boas indicações dos pacotes preferidos:
Essencial: sim > não
Área: main > contrib > non-free
Prioridade: required > important > standard > optional > extra
Tasks: pacotes listados em tarefas como "Ambiente de Trabalho"
Pacotes selecionados pelo pacote de dependência (por exemplo,
gcc-10
por gcc
)
Popcon: mais alto na votação e número de instalações
Changelog: atualizaçõ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 dos relatórios de bugs
BTS: maior quantidade de bugs corrigidos recentemente
BTS: menor quantidade de bugs "não-lista-de-desejos" remanescentes
O Debian, que é um projecto voluntário com modelo de desenvolvimento distribuído, o arquivo dele contém muitos pacotes com diferentes objetivos e qualidade. Tem de tomar as suas próprias decisões sobre o que fazer com eles.
Qualquer que seja a suite de sistema Debian que decida utilizar, pode ainda desejar correr versões de programas que não estão disponíveis nessa suite. Mesmo que encontre pacotes binários de tais programas noutras suites Debian ou noutros recursos não-Debian, os seus requisitos podem entrar em conflito com o seu sistema Debian atual.
Apesar de poder ajustar o sistema de gestão de pacotes com a técnica apt-pinning, etc., como descrito em Secção 2.7.7, “Ajustar a versão candidata com o apt-pinning” para instalar esses pacotes binários dessincronizados, essas abordagens de ajuste têm apenas casos de utilização limitados uma vez que podem quebrar esses programas e o seu sistema.
Antes de instalar brutalmente tais pacotes fora de sincronia, você deve procurar todas as soluções técnicas alternativas mais seguras disponíveis que sejam compatíveis com o seu sistema Debian atual.
Instale esses programas usando pacotes binários correspondentes em "sandbox" (veja Secção 7.7, “Sandbox”).
Crie um ambiente chroot ou similar e execute esses programas nele (veja Secção 9.11, “Sistema virtualizado”).
Os comandos CLI podem ser executados facilmente sob o seu chroot compatível (ver Secção 9.11.4, “Sistema chroot”).
É possível experimentar facilmente vários ambientes de trabalho completos sem reiniciar (ver Secção 9.11.5, “Sistemas de vários ambientes de trabalho”).
Construa você mesmo as versões desejadas dos pacotes binários que são compatíveis com o seu sistema Debian atual.
Trata-se de uma tarefa não trivial (ver Secção 2.7.13, “Portar um pacote ao sistema stable”).
As operações de gestão de pacotes baseadas em repositório no sistema Debian
podem ser executas por muitas ferramentas de gestão de pacotes baseadas no
APT e disponíveis no sistema Debian. Aqui vamos explicar 3 ferramentas de
gestão básica de pacotes: apt
,
apt-get
/ apt-cache
e
aptitude
.
Para as operações de gestão de pacotes que envolvam a instalação ou atualização de meta-dados do pacote, necessita de ter privilégios de root.
Apesar do aptitude
ser uma ferramenta interactiva muito
boa a qual o autor usa principalmente, deve ser advertido de alguns factos:
O comando aptitude
não é recomendado para a atualização
de sistema de lançamento-a-lançamento do sistema Debian
stable
após um novo lançamento.
O uso de "apt full-upgrade
" ou "apt-get
dist-upgrade
" é recomendado para isso. Veja Bug #411280.
O comando aptitude
por vezes sugere a remoção em massa de
pacotes para a atualização do sistema no sistema Debian
testing
ou unstable
.
Esta situação já assustou muitos administradores de sistemas. Não entre em pânico.
Isto parece ser causado principalmente pela torção de versões entre os
pacotes que são dependências ou recomendações de um meta-pacote tal como o
gnome-core
.
Isto pode ser resolvido ao selecionar "Cancelar operações pendentes" no menu
de comandos do aptitude
, a terminar o
aptitude
e a usar "apt full-upgrade
".
Os comandos apt-get
e apt-cache
são as
ferramentas de gestão de pacotes baseadas no APT mais básicas.
O apt-get
e o apt-cache
oferecem
apenas a interface de linha de comandos.
O apt-get
é mais apropriado para uma atualização maior ao sistema entre lançamentos,
etc.
O apt-get
oferece um resolvedor de dependências de
pacotes robusto.
apt-get
é menos exigente em recursos de hardware. Consome
menos memória e é mais rápido.
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
várias versões de pacotes a utilizar o
/etc/apt/preferences
mas é um pouco incómodo.
O comando apt
é uma interface de linha de comandos de
alto nível para gestão de pacotes. É basicamente um revestimento dos
apt-get
, apt-cache
e comandos
semelhantes, originalmente destinada a ser uma interface de utilizador final
e ativa por predefinição algumas opções melhor apropriadas para utilização
interativa.
O apt
disponibiliza uma barra de progresso amigável
quando se instala pacotes a usar o apt install
.
O apt
irá remover por
predefinição os pacotes .deb
em cache após instalação com
sucesso dos pacotes descarregados.
![]() |
Dica |
---|---|
É recomendado aos utilizadores usarem o novo comando
|
O comando aptitude
é a ferramenta de gestão de pacotes
baseada no APT mais versátil.
O aptitude
oferece a interface de utilizador de texto
interactiva de ecrã 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
inspecionar os pacotes instalados e procurar pacotes disponíveis.
O aptitude
é mais exigente em recursos de
hardware. Consome mais memória e é mais lento.
O aptitude
oferece um busca baseada em expressões
regulares avançada em todos os meta-dados
dos pacotes.
O aptitude
pode gerir várias versões de pacotes sem
utilizar o /etc/apt/preferences
e é bastante intuitivo.
Aqui estão algumas operações básicas de gestão de pacotes com a linha de
comandos a usar apt
(8), 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 a utilizar
apt
(8), aptitude
(8) e
apt-get
(8) /apt-cache
(8)
sintaxe do apt |
sintaxe do aptitude |
sintaxe do apt-get /apt-cache |
descrição |
---|---|---|---|
apt update |
aptitude update |
apt-get update |
atualiza os meta-dados do arquivo de pacotes |
apt install foo |
aptitude install foo |
apt-get install foo |
instala a versão candidata do pacote "foo " com as suas
dependências |
apt upgrade |
aptitude safe-upgrade |
apt-get upgrade |
instala as versões candidatas dos pacotes instalados sem remover quaisquer outros pacotes |
apt full-upgrade |
aptitude full-upgrade |
apt-get dist-upgrade |
instala as versões candidatas dos pacotes instalados a remover outros pacotes caso necessário |
apt remove foo |
aptitude remove foo |
apt-get remove foo |
remove o pacote "foo " a deixar os seus ficheiros de
configuração |
apt autoremove |
N/D | apt-get autoremove |
remove os pacotes auto-instalados que já não sejam necessários |
apt purge foo |
aptitude purge foo |
apt-get purge foo |
purga o pacote "foo " com os seus ficheiros de
configuração |
apt clean |
aptitude clean |
apt-get clean |
limpa completamente o repositório local de ficheiros de pacotes obtidos |
apt autoclean |
aptitude autoclean |
apt-get autoclean |
limpa os pacotes desatualizados do repositório local dos ficheiros de pacotes recebidos |
apt show foo |
aptitude show foo |
apt-cache show foo |
mostra informação detalhada acerca do pacote "foo " |
apt search regex |
aptitude search regex |
apt-cache search regex |
procura pacotes que correspondem à expressão-regular |
N/D | aptitude why regex |
N/D | explica a razão porque o pacotes que correspondem à expressão_regular devem ser instalados |
N/D | aptitude why-not regex |
N/D | explica a razão porque o pacotes que correspondem à expressão_regular não podem ser instalados |
apt list --manual-installed |
aptitude search '~i!~M' |
apt-mark showmanual |
lista os pacotes instalados manualmente |
apt
/ apt-get
e
aptitude
podem ser misturados sem grandes problemas.
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 rdepends
pacote
" ou "apt-cache rdepends
pacote
".
Quando o comando aptitude
é arrancado em modo de linha de
comandos e enfrenta alguns problemas como conflitos de pacotes, pode mudar
para modo interativo em ecrã total, ao pressionar a tecla
"e
", mais tarde na linha de comandos.
![]() |
Nota |
---|---|
Apesar do comando |
Pode dar 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 |
apenas descarrega e não instala/atualiza |
-D |
mostra breves explicações antes das instalações e remoções automáticas |
Para mais veja aptitude
(8) e o "Manual de utilizador do
aptitude" em "/usr/share/doc/aptitude/README
".
Para gestão de pacotes interativa, arranque o aptitude
em
modo interativo a partir da linha de comandos da consola conforme o
seguinte:
$ sudo aptitude -u Password:
Isto atualiza a cópia local da informação do arquivo e mostra a lista de
pacotes em ecrã completo com menu. O aptitude coloca a configuração dele em
"~/.aptitude/config
".
![]() |
Dica |
---|---|
Se desejar utilizar a configuração do root em vez da do utilizador, utilize
" |
![]() |
Dica |
---|---|
O |
As combinações de teclas notáveis para explorar o estado dos pacotes e definir uma "açã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 |
atualiza a informação de arquivo do pacote |
+ |
marca o pacote para atualização ou instalação |
- |
marca o pacote para remoção (manter os ficheiros de configuração) |
_ |
marca o pacote para purgar (remover ficheiros de configuração) |
= |
coloca o pacote em retenção (hold) |
U |
marca todos os pacotes com atualizações (funciona como full-upgrade) |
g |
começa a descarregar e a instalar os pacotes selecionados |
q |
sai do ecrã atual e guarda as alterações |
x |
sai do ecrã atual e descarta 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 conforme descrito em baixo. A expressão
regular do aptitude pode corresponder explicitamente a um nome de pacote a
utilizar uma cadeia começada por "~n
" e seguida do nome
do pacote.
![]() |
Dica |
---|---|
Necessita pressionar " |
No modo de ecrã completo interativo 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 flag "estado atual" (a primeira letra)
A flag "acção planeada" (a segunda letra)
A flag "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 atual do pacote
A versão candidata do pacote
![]() |
Dica |
---|---|
A lista completa de flags é fornecida ao fundo do ecrã de Ajuda mostrada ao pressionar
" |
A versão candidata é escolhida de acordo
com as preferências locais atuais (veja
apt_preferences
(5) e Secção 2.7.7, “Ajustar a versão candidata com o apt-pinning”).
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 | descrição da vista |
---|---|
Vista de Pacote |
veja Tabela 2.10, “A categorização das vista de pacotes standard” (predefinição) |
Recomendações de Auditoria |
lista pacotes que são recomendados por alguns pacotes instalados mas ainda não estão instalados |
Lista de Pacotes Lisa |
lista pacotes sem categorização (para utilizar com expressões regulares) |
Explorador de Debtags |
lista pacotes categorizados de acordo com as suas entradas debtags |
Vista do Pacote Fonte |
lista de pacotes agrupados por pacotes fonte |
![]() |
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 atualizá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 procurar pacotes a utilizar a fórmula de expressões regulares dele.
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 ecrã total interativo:
"l
" para limitar a vista de pacotes aos pacotes
correspondentes
"/
" para procurar um pacote correspondente
"\
" para procurar um pacote correspondente a voltar para
trás
"n
" para procurar o próximo
"N
" para procurar o próximo (a andar para trás)
![]() |
Dica |
---|---|
A cadeia para nome_de_pacote é tratada como a
correspondência exata da cadeia 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 das 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 | ~nregex_name |
corresponde com a descrição | ~dregex_description |
corresponde com nome da tarefa | ~tregex_task |
corresponde com debtag | ~Gregex_debtag |
corresponde com o maintainer | ~mregex_maintainer |
corresponde com secção do pacote | ~sregex_section |
corresponde com versão do pacote | ~Vregex_version |
corresponde com arquivo | ~A{bookworm,trixie,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 (pacotes instalados automaticamente) | ~M |
corresponde com pacotes instalados sem a marca A (pacotes selecionados pelo administrador) | ~i!~M |
corresponde com pacotes instalados e com atualizaçõ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 que declaram dependências quebradas | ~b |
corresponde com pacotes que declaram dependências quebradas de type | ~Btype |
corresponde a pacotes pattern que declaram dependência de type | ~D[type:]pattern |
corresponde a pacotes pattern que declaram dependência quebrada de type | ~DB[type:]pattern |
corresponde a pacotes para os quais o pacote que corresponde a pattern declara o type de dependência | ~R[type:]pattern |
corresponde a pacotes para os quais o pacote que corresponde a pattern declara o type de dependência quebrada | ~RB[type:]pattern |
corresponde com pacotes com os quais alguns pacotes instalados dependem | ~R~i |
corresponde com pacotes com os quais nenhum outro pacote instalado depende | !~R~i |
corresponde com pacotes com os quais alguns pacotes instalados dependem ou recomendam | ~R~i|~Rrecommends:~i |
corresponde o pacote pattern com a versão filtrada | ~S filter pattern |
corresponde com todos os pacotes (true) | ~T |
não corresponde com nenhum pacote (false) | ~F |
A parte da expressão regular é a mesma ERE que aquela utilizada nas típicas ferramentas de
texto tipo-Unix que utilizam "^
",
".*
", "$
" etc. como o
egrep
(1), awk
(1) e
perl
(1).
A dependência type é uma de (dependências, pré-dependências, recomendações, sugestões, conflitos, substituições, fornecimentos), que específica o inter-relacionamento do pacote.
O type de dependência predefinida é "depends".
![]() |
Dica |
---|---|
Quando regex_pattern for uma string nula, coloca
" |
Aqui estão alguns atalhos.
"~Pterm
" ==
"~Dprovides:term
"
"~Cterm
" ==
"~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
"PROCURAR, LIMITAR E EXPRESSÕES" no "Manual do Utilizador"
"/usr/share/doc/aptitude/README
".
![]() |
Nota |
---|---|
Com a versão |
A seleção de um pacote no aptitude
não puxa apenas os
pacotes definidos na lista de "Dependências:
" dele, mas
também os definidos na lista "Recomendados:
" se o menu
"F10
→ Opções → Preferências → Manuseamento de
dependências" assim estiver definido. Estes pacotes auto-instalados são
removidos automaticamente sob o aptitude
se não forem
mais necessários.
A flag que controla o comportamento "auto install" co comando
aptitude
também pode ser manipulada a usar o comando
apt-mark
(8) do pacote apt
.
Pode verificar o histórico de atividade de pacotes nos ficheiros log.
Tabela 2.12. Os ficheiros log para atividades de pacotes
ficheiro | conteúdo |
---|---|
/var/log/dpkg.log |
Log da atividade de nível do dpkg para as atividades de
todos os pacotes |
/var/log/apt/term.log |
Log da atividade genérica do APT |
/var/log/aptitude |
Log da atividade de comandos do aptitude |
Na realidade, não é muito fácil obter rapidamente uma compreensão significativa a partir destes logs. Veja Secção 9.3.9, “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).
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".
O seguinte comando lista pacotes com regex a condizer com nomes de pacotes.
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
Isto dá muito jeito para encontrar o nome exato 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
interativamente a informação deles.
Pode purgar todos os restantes ficheiros de configuração dos pacotes removidos.
Verifique os resultados do seguinte comando.
# aptitude search '~c'
Se julgar que os pacotes listados podem ser purgados, execute o seguinte comando:
# aptitude purge '~c'
Pode fazer o mesmo no modo interativo para um controle mais preciso.
Fornece a expressão regular "~c
" na vista "Nova Vista de
Pacotes" com a prompt "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 pressione "_
" em cabeçalhos de nível de topo tal
como "Pacotes Não Instalados". Apenas os pacotes correspondentes à expressão
regular sob o cabeçalho são marcados para serem purgados com isto. Pode
excluir alguns pacotes a serem purgados ao pressionar "=
"
interativamente para cada um deles.
Esta técnica é muito útil 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 interativo como root.
Escreva "u
", "U
",
"f
" e "g
" para atualizar a lista de
pacotes e atualizar os pacotes.
Escreva "l
" para inserir o limite de visualização de
pacotes aos "~i(~R~i|~Recomendados:~i)
" e escreva
"M
" sobre "Pacotes Instalados
" como
auto-instalado.
Escreva "l
" para inserir o limite de visualização de
pacotes como "~prequired|~pimportant|~pstandard|~E
" e
escreva "m
" sobre "Pacotes Instalados
"
como instalados manualmente.
Escreva "l
" para inserir o limite de visualização de
pacotes como "~i!~M
" e remover pacotes não utilizados ao
escrever "-
" sobre cada um deles após expô-los ao
escrever "[
" sobre "Pacotes
Instalados
".
Escreva "l
" para inserir o limite de amostragem de
pacotes como "~i
" depois escreva "m
"
sobre "Tasks
" para marcar esses pacotes como instalados
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 interativo 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 a saber que Debian é atualizá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.2, “Salvaguarda (backup) e recuperação”) antes de fazer isto. Recomendo fazer uma configuração de duplo arranque a usar partições diferentes para ter a transição mais suave. |
Pode efetuar a atualização de todo o sistema para uma versão mais recente
alterando os conteúdos da lista de fontes
apontando para uma nova versão e executando o comando "apt update;
apt dist-upgrade
".
Para atualizar de stable
para testing
ou unstable
durante o ciclo de lançamento
bookworm
-as-stable
, você
substitui "bookworm
" no exemplo da lista de fontes de Secção 2.1.5, “Básico do arquivos Debian” por
"trixie
" ou "sid
".
Na realidade, 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 atualização, maior a probabilidade de
ter grandes problemas. Para a transição da stable
antiga
à nova stable
após o lançamento dele, pode ler as novas
Notas de Lançamento dele e seguir o
procedimento exacto descrito lá para minimizar problemas.
Quando decidir mover de stable
para
testing
antes do lançamento formal dele, 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 atualização.
Deve dar passos de precaução para a atualização total enquanto recolhe a informação mais recente da lista de mail e a usar senso comum.
Leia as "Notas de Lançamento" anteriores.
Faça cópia de segurança a todo o sistema (especialmente dados e informação de configuração).
Tenha um meio de arranque à mão para o caso do gestor de arranque ficar danificado.
Informe os utilizadores do sistema com bastante antecedência.
Grave a atividade de atualização com o script
(1).
Para prevenir a remoção aplique "unmarkauto" aos pacotes necessários, p.e.,
"aptitude unmarkauto vim
", .
Minimize a quantidade de pacotes instalados para reduzir a hipótese de conflitos de pacotes, p.e., remova os pacotes da tarefas de ambiente de trabalho.
Remova o ficheiro "/etc/apt/preferences
" (desativa
apt-pinning).
Tente a atualização em passos inteligentes: oldstable
→
stable
→ testing
→
unstable
.
Atualize a lista de fontes para apontar
apenas para o novo arquivo e execute "aptitude update
".
Instale, opcionalmente, os novos pacotes de
base primeiro, ex., "aptitude install perl
".
Corra o comando "apt-get -s dist-upgrade
" para avaliar o
impacto.
Corra o comando "apt-get dist-upgrade
" em último lugar.
![]() |
Cuidado |
---|---|
Não é sensato saltar grandes lançamentos de Debian quando se atualiza entre
lançamentos |
![]() |
Cuidado |
---|---|
Nas "Notas de Lançamento" anteriores, GCC, Linux Kernel, initrd-tools, Glibc, Perl, a cadeia de ferramentas do APT, etc. necessitaram de alguma atenção especial para a atualização geral do sistema. |
Para atualizaçõ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
é de demasiado alto nível ou faltam-lhe
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 que correspondem no arquivo |
dpkg-reconfigure nome_do_pacote |
reconfigura o pacote exacto |
dpkg-reconfigure -p=low
nome_do_pacote |
reconfigura o pacote exacto com as questões mais detalhadas |
configure-debian |
reconfigura pacotes a partir do menu de ecrã completo |
dpkg --audit |
faz auditoria ao sistema por pacotes parcialmente instalados |
dpkg --configure -a |
configura todos os pacotes parcialmente instalados |
apt-cache policy
nome_do_pacote_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 de código-fonte de um pacote binário |
apt-get build-dep nome_do_pacote |
instala os pacotes necessários para compilar pacote |
aptitude build-dep nome_do_pacote |
instala os pacotes necessários para compilar pacote |
apt-get source nome_do_pacote |
descarrega código-fonte (do arquivo standard) |
dget URL para ficheiro dsc |
descarrega um pacote de código-fonte (de outro arquivo) |
dpkg-source -x
nome_do_pacote_versão-versão_debian.dsc |
constrói uma árvore de código-fonte a partir de um conjunto de pacotes de
código-fonte ("*.orig.tar.gz " e
"*.debian.tar.gz "/"*.diff.gz ") |
debuild binary |
compila pacote(s) a partir de uma árvore fonte local |
make-kpkg imagem_de_kernel |
compila um pacote de kernel a partir de uma árvore fonte de kernel |
make-kpkg --initrd imagem_de_kernel |
compila um pacote de kernel a partir de uma árvore fonte de kernel com initramfs activa |
dpkg -i
nome_pacote_versão-versão_debian_arquitectura.deb |
instalar um pacote local no sistema |
apt install
/path/to/package_filename.deb |
instala um pacote local no sistema, entretanto tenta resolver as dependências automaticamente |
debi
nome_pacote_versão-versão_debian_arquitectura.dsc |
instala pacote(s) locais no sistema |
dpkg --get-selections '*' >seleção.txt |
guarda a informação de estado de seleção a nível de pacotes do
dpkg |
dpkg --set-selections <seleção.txt |
define a informação de estado de seleção a nível de pacotes do
dpkg |
echo nome-do-pacote hold | dpkg
--set-selections |
define o estado de seleção de pacote ao nível do dpkg
para hold (equivalente a
"aptitude hold nome_do_pacote ") |
![]() |
Nota |
---|---|
Para um pacote com a funcionalidade multi-arch, pode precisar de especificar o nome da
arquitectura para alguns comandos. Por exemplo, use " |
![]() |
Cuidado |
---|---|
As ferramentas de pacotes de nível mais baixo como " |
Por favor note o seguinte:
Toda a configuração do sistema e comandos de instalação necessitam ser executados pelo root.
A contrário do aptitude
, que utiliza regex (veja Secção 1.6.2, “Expressões regulares”), os outros comandos de gestão de pacotes
utilizam 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 previamente "apt-file
update
".
O configure-debian
(8) disponibilizado pelo pacote
configure-debian
corre o
dpkg-reconfigure
(8) como seu backend.
O dpkg-reconfigure
(8) corre scripts de pacote a utilizar
o debconf
(1) como o backend dele.
Os comandos "apt-get build-dep
", "apt-get
source
" e "apt-cache showsrc
" requerem a
entrada "deb-src
" na lista de
fontes.
Os dget
(1), debuild
(1) e
debi
(1) necessitam do pacote
devscripts
.
Veja o procedimento de (re)empacotamento a utilizar "apt-get
source
" em Secção 2.7.13, “Portar um pacote ao sistema stable”.
O comando make-kpkg
necessita do pacote
kernel-package
(veja Secção 9.10, “O kernel”).
Para empacotamento em geral veja Secção 12.9, “Criar um pacote Debian”.
A instalação de debsums
permite a verificação dos
ficheiros dos pacotes instalados contra valores MD5sum do ficheiro
"/var/lib/dpkg/info/*.md5sums
" com
debsums
(1). Para saber como o MD5sum funciona veja Secção 10.3.5, “O valor de controlo MD5” .
![]() |
Nota |
---|---|
Como a base de dados MD5sum pode ser adulterada por um intruso, o
|
Muito utilizadores preferem seguir o lançamento testing (or unstable) do sistema Debian pelas suas novas funcionalidades e pacotes. Isto torna o sistema permeável a 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 fizer atualizações com o sistema APT.
A instalação do pacote apt-listchanges
disponibiliza
notícias importantes de "NEWS.Debian
" ao atualizar com o
sistema APT.
Embora hoje em dia visitar o site Debian https://packages.debian.org/ facilite a busca nos meta-dados do pacote, vamos ver modos mais tradicionais.
Os comandos grep-dctrl
(1),
grep-status
(1) e grep-available
(1)
podem ser utilizados para procurar qualquer ficheiro que tenha o formato
geral de um ficheiro de controle de pacote Debian.
"dpkg -S padrão_de_nome_de_ficheiro
"
pode ser utilizado para procurar nomes de pacotes instalados pelo
dpkg
que contenham ficheiros com o nome coincidente. Mas
isto não vê os ficheiros criados pelo script do responsável do pacote.
Se necessitar de fazer uma busca mais elaborada nos meta-dados do dpkg,
necessita executar o comando "grep -e padrão_de_expressão_regular
*
" no diretó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 desejar procurar, recursivamente, as dependências de pacotes, deverá
utilizar 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, p.e., "http://deb.debian.org/debian/
". A
estrutura de arquivo dele pode ser explorada com 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 utilizada 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, p.e.,
"http://deb.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, pode encontrar a minha lógica de utilizar "suite" e "nome de código" em Secção 2.1.5, “Básico do 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 "Componentes". |
A integridade do ficheiro de nível superior "Release
" é
verificada por uma infraestrutura criptográfica denominada apt seguro, tal como descrito em
apt-secure
(8).
O ficheiro de assinatura criptográfica "Release.gpg
" é
criado a partir do ficheiro "Release
" de nível de topo
autenticado e da chave secreta do arquivo Debian.
As chaves públicas do arquivo Debian são instaladas localmente pelo último
pacote debian-archive-keyring
.
O sistema APT seguro verifica
automaticamente a integridade do ficheiro de nível superior descarregado
"Release
" criptograficamente através deste ficheiro
"Release.gpg
" e das chaves públicas do arquivo Debian
instaladas localmente.
A integridade de todos os ficheiros "Packages
" e
"Sources
" é verificada a utilizar valores MD5sum do
ficheiro "Release
" de nível de topo. A integridade de
todos os ficheiros de pacotes é verificada a utilizar 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 do que o cálculo de valor MD5sum, a utilização de valores
MD5sum para cada pacote enquanto se utiliza assinatura criptográfica para o
ficheiro "Release
" de nível de topo disponibiliza boa segurança com
desempenho (veja Secção 10.3, “Infraestrutura da segurança de dados”).
Se a entrada da lista de fontes
especificar a opção "signed-by
", a integridade do seu
ficheiro de nível superior "Release
" descarregado é
verificada usando a chave pública especificada. Isto é útil quando a lista de fontes contém arquivos não-Debian.
![]() |
Dica |
---|---|
A utilização do comando |
Além disso, pode verificar manualmente a integridade do ficheiro
"Release
" com o ficheiro "Release.gpg
"
e a chave pública do arquivo Debian colocada em ftp-master.debian.org utilizando o
gpg
.
![]() |
Dica |
---|---|
Os ficheiros " |
Existem ficheiros "Release
" de nível de arquivo para
todas as localizações de arquivo especificadas pela lista de fontes, como
"http://deb.debian.org/debian/dists/unstable/main/binary-amd64/Release
"
ou
"http://deb.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
bookworm-backports
, que contêm pacotes que não
devem ser instalados automaticamente, existe uma linha extra, p.e.,
"http://deb.debian.org/debian/dists/experimental/main/binary-amd64/Release
"
como a seguir.
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.7, “Ajustar a versão candidata com o apt-pinning”).
Quando são utilizadas ferramentas APT, tais como
aptitude
, apt-get
,
synaptic
, apt-file
,
auto-apt
, ..., nós precisamos de atualizar 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 à
distribution
especificada , area
, e
nomes de architecture
na lista de
fontes (veja Secção 2.1.5, “Básico do arquivos Debian”).
"/var/lib/apt/lists/deb.debian.org_debian_dists_distribuição_Release
"
"/var/lib/apt/lists/deb.debian.org_debian_dists_distribuição_Release.gpg
"
"/var/lib/apt/lists/deb.debian.org_debian_dists_distribuição_área_binário-arquitectura_Packages
"
"/var/lib/apt/lists/deb.debian.org_debian_dists_distribuição_área_fonte_Sources
"
"/var/cache/apt/apt-file/deb.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 atualizados a partir da linha de comandos por
"apt-get update
" ou "aptitude
update
". Os meta dados "Packages
" são
atualizados se o "deb
" for especificado na lista de fontes. Os meta dados
"Sources
" são atualizados se o
"deb-src
" for especificado na lista de fontes.
Os meta-dados "Packages
" e "Sources
"
contêm a estrofe "Filename:
" que aponta à localização de
ficheiro dos pacotes binários e de código-fonte. atualmente, estes pacotes
estão localizados sob a árvore de diretórios "pool/
" para
a transição melhorada através dos lançamentos.
As cópias locais dos meta-dados "Packages
" podem ser
pesquisadas interativamente com a 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
atualizada pelo "apt-file update
" e a localização dele é
diferente dos outros 4. Veja apt-file
(1). (O
auto-apt
utiliza localização diferente para a cópia local
de "Contents-arquitectura.gz
" por
predefinição.)
Além dos meta-dados obtidos remotamente, a ferramenta APT após o
lenny
armazena a informação de estado de instalação dela
gerada localmente em "/var/lib/apt/extended_states
" que é
utilizada por todas as ferramentas do APT para seguirem todos os pacotes
auto-instalados.
Além 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.
Todos os pacotes obtidos remotamente através do mecanismo APT são
armazenados em "/var/cache/apt/archives
" até que sejam
limpos.
Esta politica de limpeza de ficheiros de cache para o
aptitude
pode ser definida em "Opções
"
→ "Preferências
" e pode ser forçada pelo seu menu
"Limpar cache de pacotes
" ou "Limpar ficheiros
obsoletos
" em "Acções
".
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_versão_upstream-versão-debian_arquitetura.deb |
O pacote binário para debian-installer (a.k.a udeb ) |
nome_de_pacote_versão_upstream-versão-debian_arquitetura.udeb |
O pacote fonte (código-fonte atual) | nome_de_pacote_versão_upstream-versão-debian.orig.tar.gz |
O pacote de código-fonte 1.0 (alterações do Debian) |
nome_de_pacote_versão_upstream-versão-debian.diff.gz |
O pacote de código-fonte 3.0 (quilt) (alterações do
Debian) |
nome_de_pacote_versão_upstream-versão-debian.debian.tar.gz |
O pacote de código-fonte (descrição) | nome_do_pacote_versão_upstream-versão-debian.dsc |
![]() |
Dica |
---|---|
Aqui apenas são descritos formatos de pacote fonte básicos. Veja mais em
|
Tabela 2.16. Os caracteres utilizáveis para cada componente nos nomes de pacotes Debian
componente do nome | caracteres utilizáveis (ERE regex) | existência |
---|---|---|
nome-do-pacote |
[a-z0-9][-a-z0-9.+]+ |
necessário |
epoch: |
[0-9]+: |
opcional |
versão-upstream |
[-a-zA-Z0-9.+:]+ |
necessário |
versão.debian |
[a-zA-Z0-9.+~]+ |
opcional |
![]() |
Nota |
---|---|
Pode verificar a ordem da versão de pacotes com o
|
![]() |
Nota |
---|---|
O debian-installer (d-i)
utiliza |
dpkg
(1) é a ferramenta de mais baixo nível para a gestão
de pacotes Debian. É muito poderosa e tem que ser utilizada com cuidado.
Enquanto instala o pacote chamado
"package_name
", o
dpkg
processa-o na seguinte ordem.
Desempacota o ficheiro deb (equivalente a "ar -x
")
Executa "nome_de_pacote.preinst
" a
utilizar o debconf
(1)
Instala o conteúdo do pacote no sistema (equivalente a "tar
-x
")
Executa "nome_de_pacote.postinst
" a
utilizar o debconf
(1)
O sistema debconf
disponibiliza interacção standard com o
utilizador com suporte de I18N e L10N (Capítulo 8, I18N e L10N).
Tabela 2.17. 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 diretó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 para ser executado antes da instalação do pacote |
/var/lib/dpkg/info/nome_do_pacote.postinst |
script de pacote para ser executado após a instalação do pacote |
/var/lib/dpkg/info/nome_do_pacote.prerm |
script de pacote para ser executado antes da remoção do pacote |
/var/lib/dpkg/info/nome_do_pacote.postrm |
script de pacote para ser 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 usadas pelo dpkg (1) e definidas
por dpkg-divert (8) |
/var/lib/dpkg/statoverride |
a informação de sobreposição de estado usada pelo dpkg (1)
e definida por 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 é utilizado por ferramentas
como o dpkg
(1), o "dselect update
" e o
"apt-get -u dselect-upgrade
".
O comando especializado de busca grep-dctrl
(1) pode
procurar as 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 a usar
update-alternatives
(1). Por exemplo, pode fazer o comando
vi
selecionar 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 to keep the default[*], or type selection number: 1
O sistema de alternativas do Debian mantêm a sua seleção como ligação
simbólica em "/etc/alternatives/
". O processo de seleção
utiliza 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 for
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 a usar os comandos
|
![]() |
Nota |
---|---|
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
localização predefinida dele, mas para uma localização divergida. Os uso do dpkg-divert
destina-se aos scripts do responsável do pacote. A utilização casual dele
pelo administrador do sistema está descontinuada.
Quando corre o sistema testing
ou
unstable
, espera-se que o administrador saiba recuperar o
sistema de situações de gestão de pacotes com conflitos.
![]() |
Cuidado |
---|---|
Alguns métodos descritos aqui são acções de alto risco. Foi avisado! |
Se forçar a instalação de um pacote através de "sudo dpkg -i
...
" num sistema sem todos os pacotes de dependência instalados, a
instalação do pacote irá falhar como parcialmente instalado.
Deve instalar todos os pacotes de dependência utilizando o APT-system ou
"sudo dpkg -i ...
".
Em seguida, configure todos os pacotes parcialmente instalados com o seguinte comando.
# dpkg --configure -a
Erros de cache dos dados do pacote causam erros intrigantes, tais como "Erro GPG: ... invalid: BADSIG ..." com APT.
Deve remover todos os dados guardados em cache com "sudo rm -rf
/var/lib/apt/*
" e tentar novamente. (Se for utilizado
apt-cacher-ng
, deve também correr "sudo rm -rf
/var/cache/apt-cacher-ng/*
".)
Se um programa GUI de ambiente de trabalho ficou instável após uma atualização significante da versão original, deve suspeitar de interferências com os ficheiros locais de configuração antigos criados por ele. Se estiver estável sob uma nova conta de utilizador criada, esta hipótese está confirmada. (Isto é um bug de empacotamento e geralmente evitado pelo empacotador.)
Para recuperar a estabilidade, deve mover os ficheiros de configuração locais correspondentes e reiniciar o programa GUI. 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 a utilizar as dependências
do pacote. (veja Secção 2.1.7, “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.6, “Pacotes de fontes mistas de arquivos sem apt-pinning”) pelo administrador do
sistema podem criar situações com dependências de pacotes definidas
incorrectamente. Quando instala um pacote com ficheiros sobrepostos a usar 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 através dos scripts do programador do pacote que são executados com
privilégios de root e podem fazer o que quiserem ao seu sistema. O comando
|
Pode contornar tal problema de instalação ao remover primeiro o pacote
ofensivo antigo, pacote_antigo
.
$ sudo dpkg -P old-package
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 acção dele 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 script de pacote
"package_name
", 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 a usar as seguintes técnicas:
desativar a linha ofensiva ao preceder um "#
"
forçar um retorno com sucesso ao acrescentar a linha ofensiva com
"|| true
"
Depois, siga Secção 2.6, “Recuperação de um sistema danificado”.
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.
Pode ainda encontrar cópias em cache de uma versão antiga livre de bugs do
pacote foo
no diretório de cache de pacotes:
"/var/cache/apt/archives/
". (se não, pode descarregá-lo
do arquivo https://snapshot.debian.org/ ou
copiá-lo da cache de pacotes de uma máquina funcional.)
Se puder arrancar o sistema, pode instalá-lo com o seguinte comando.
# dpkg -i /path/to/foo_old_version_arch.deb
![]() |
Dica |
---|---|
Se os danos no sistema forem menores, pode em alternativa fazer um downgrade (regredir a versão) ao sistema completo como em Secção 2.7.11, “Downgrade de emergência” a usar o nível mais alto do sistema APT. |
Se o seu sistema não puder arrancar pelo disco rígido, precisa procurar outras maneiras de arrancá-lo.
Arranque o sistema a usar o CD de instalação de Debian (debian-installer) em modo de recuperação.
Monte o sistema danificado no disco rígido em "/target
".
Instale uma versão antiga do pacote foo
com o seguinte.
# dpkg --root /target -i /path/to/foo_old_version_arch.deb
Este exemplo funciona mesmo se o comando dpkg
no disco
rígido estiver danificado.
![]() |
Dica |
---|---|
Pode ser utilizado, de modo semelhante, para recuperar um sistema danificado qualquer sistema GNU/Linux arrancado de outro sistema no disco rígido, Live CD de GNU/Linux, por pen USB de arranque ou arranque pela rede. |
Se a tentativa de instalar um pacote deste modo falha devido a algumas
violações de dependências e necessitar realmente de fazer isto como último
recurso, pode sobrepor a dependência a utilizar a
"--ignore-depends
", "--force-depends
"
e outras opções do dpkg
. Se o fizer, precisa de fazer um
sério esforço para restaurar as dependências apropriadas mais tarde. Veja
dpkg
(8) para mais detalhes.
![]() |
Nota |
---|---|
Se o seu sistema estiver seriamente danificado, deve fazer uma salvaguarda completa para um lugar seguro (veja Secção 10.2, “Salvaguarda (backup) e recuperação”) e deve fazer uma instalação limpa. Isto consome menos tempo e produz melhores resultados no fim. |
Se por qualquer razão o "/var/lib/dpkg/status
" ficar
corrompido o sistema Debian perde os dados de seleção de pacotes e sofre
severamente. Procure o ficheiro antigo
"/var/lib/dpkg/status
" em
"/var/lib/dpkg/status-old
" ou
"/var/backups/dpkg.status.*
".
Manter "/var/backups/
" numa partição separada pode ser
uma boa ideia porque este diretório contém muitos dados importantes do
sistema .
Em caso de sérios danos recomendo fazer uma instalação limpa após fazer a
salvaguarda do sistema. Mesmo que tudo em "/var/
" esteja
perdido, ainda pode recuperar alguma informação dos diretórios em
"/usr/share/doc/
" para guiar a sua nova instalação.
Reinstalar o sistema mínimo (ambiente de trabalho).
# mkdir -p /path/to/old/system
Monte o sistema antigo em
"/caminho/para/sistema/antigo/
".
# cd /path/to/old/system/usr/share/doc # ls -1 >~/ls1.txt # cd /usr/share/doc # ls -1 >>~/ls1.txt # cd # sort ls1.txt | uniq | less
Então ser-lhe-ão apresentados nomes de pacotes para instalar. (Podem existir
alguns nomes que não de pacotes como "texmf
".)
Para simplificar, os exemplos de listas de
fontes nesta secção são apresentados como
"/etc/apt/sources.list
" em estilo de uma linha após o
lançamento do bookworm
.
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 atividade 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 desejar limitar a largura de banda para o APT a, por exemplo, 800Kib/sec (=100kiB/sec), deve configurar o APT e o parâmetro de configuração dele conforme o seguinte.
APT::Acquire::http::Dl-Limit "800";
O pacote apt
vem com um script de cron próprio
"/etc/cron.daily/apt
" para suportar a descarga automática
de pacotes. Este script pode ser melhorado para executar a atualizaçã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
" conforme
descrito em "/usr/share/doc/unattended-upgrades/README
".
O pacote unattended-upgrades
destina-se principalmente às
atualizações de segurança do sistema stable
. Se o risco
de danificar um sistema stable
existente pelas
atualizações automáticas for menor que ser danificado por um intruso que usa
buracos de segurança que foram fechados por atualizações de segurança, deve
considerar usar estas atualizações automáticas com parâmetros de
configuração como os a seguir.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "1";
Se está a correr um sistema testing
ou
unstable
, não quer utilizar a atualização automática pois
certamente irá quebrar o sistema um dia. Mesmo para esse caso
testing
ou unstable
, pode querer
descarregar pacotes antecipadamente para poupar tempo para a atualização
interativa com parâmetros de configuração como os seguintes.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "0";
Existem stable-updates
("bookworm
-updates" durante o ciclo de
lançamento bookworm
-as-stable
) e arquivos backports.debian.org
que disponibilizam pacotes de atualização para stable
.
De modo a utilizar estes arquivos, liste todos os arquivos necessários no
ficheiro "/etc/apt/sources.list
" como a seguir:
deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free deb http://deb.debian.org/debian/ bookworm-backports main non-free-firmware contrib non-free
Não há necessidade de definir valores específicos de Pin-Priority no
ficheiro "/etc/apt/preferences
". Quando os novos pacotes
ficam disponíveis, a configuração predefinida disponibiliza as atualizações
mais razoáveis (veja Secção 2.5.3, “Ficheiros "Release" do nível de arquivo”).
Todos os pacotes antigos instalados são atualizados para mais recentes a
partir de bookworm-updates
.
Apenas os pacotes antigos instalados manualmente a partir de
bookworm-backports
são atualizados para mais
recentes a partir de bookworm-backports
.
Sempre que desejar instalar um pacote chamado
"nome-do-pacote
" com as suas
dependências a partir do arquivo
bookworm-backports
manualmente, utilize o
seguinte comando enquanto muda o lançamento alvo com a opção
"-t
".
$ sudo apt-get install -t bookworm-backports package-name
![]() |
Atenção |
---|---|
Não instale demasiados pacotes dos arquivos backports.debian.org. Isso pode causar complicações na dependência de pacotes. Veja Secção 2.1.11, “Como lidar com requisitos contraditórios” as soluções alternativas. |
![]() |
Atenção |
---|---|
Deve ter em atenção que o pacote externo ganha o privilégio de root no seu sistema. Só deve utilizar o arquivo de pacotes externos de confiança. Ver Secção 2.1.11, “Como lidar com requisitos contraditórios” para soluções alternativas. |
Pode utilizar o APT seguro com um arquivo de pacotes externo compatível com
Debian adicionando-o à lista de fontes e
ao seu ficheiro de chave de arquivo no diretório
"/etc/apt/trusted.gpg.d/
". Veja
sources.list
(5), apt-secure
(8) e
apt-key
(8).
![]() |
Cuidado |
---|---|
Instalar pacotes de fontes misturadas de arquivos não é suportado pela
distribuição oficial Debian excepto para combinações de arquivos
oficialmente suportadas tais como a |
Aqui está um exemplo de operações para incluir, uma vez, pacotes específicos
com novas versões da origem encontrados em unstable
enquanto se acompanha a testing
.
Altere o ficheiro "/etc/apt/sources.list
" temporariamente
para entrada única "unstable
".
Corra "aptitude update
".
Corra "aptitude install
nome-do-pacote
".
Recupere o ficheiro "/etc/apt/sources.list
" original para
testing
.
Corra "aptitude update
".
Não crie o ficheiro "/etc/apt/preferences
" nem precisa de
se preocupar com o apt-pinning com esta
abordagem manual. Mas isto é muito incómodo.
![]() |
Cuidado |
---|---|
Quando utiliza fontes misturadas de arquivos, tem que assegurar por si próprio a compatibilidade dos pacotes pois Debian não o garante. Se existir incompatibilidade de pacotes, pode danificar o seu sistema. Tem que ser capaz de julgar estes requisitos técnicos. A utilização de fontes misturadas de arquivos aleatórios é uma operação completamente opcional e a utilização deles não é algo que o encoraje a utilizar. |
As regras gerais para instalar pacotes de arquivos diferentes são as seguintes.
Pacotes não-binários de ("Arquitecture: all
") são
mais seguro para instalar.
pacotes de documentação: sem requisitos especiais
pacotes de programa interpretador: tem de estar disponível interpretador compatí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ários comerciais não-livres podem vir fornecidos com bibliotecas completamente ligadas estaticamente. Mesmo assim deve verificar problemas de compatibilidade da ABI e etc. com eles. |
![]() |
Nota |
---|---|
Exceto para evitar pacotes partidos por um curto período de tempo, instalar pacotes binários de repositórios não-Debian é geralmente má ideia. Você deve procurar todas as soluções técnicas alternativas mais seguras disponíveis que sejam compatíveis com o seu sistema Debian atual (veja Secção 2.1.11, “Como lidar com requisitos contraditórios”). |
![]() |
Atenção |
---|---|
A utilização da técnica apt-pinning por um utilizador novato irá certamente causar grandes problemas. Deve evitar utilizar esta técnica exceto quando for absolutamente necessário. |
Sem o ficheiro "/etc/apt/preferences
", o sistema APT
escolhe a versão disponível mais recente com a versão candidata a utilizar a cadeia de
versão. Este é o estado normal e a utilização recomendada do sistema
APT. Todas as combinações de arquivos oficialmente suportadas não necessitam
do ficheiro "/etc/apt/preferences
" porque alguns arquivos
que não devem ser utilizados como fonte automática de atualizaçõ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, p.e.,
" |
Quando instala regularmente pacotes de uma mistura de fontes de arquivos
(veja Secção 2.7.6, “Pacotes de fontes mistas de arquivos sem apt-pinning”), pode
automatizar estas operações complicadas ao criar o ficheiro
"/etc/apt/preferences
" com entradas apropriadas e a
moldar a regra de seleção de pacotes para a versão
candidata como descrito em
apt_preferences
(5). Isto chama-se apt-pinning.
Quando utilizar apt-pinning, você próprio tem que assegurar a compatibilidade dos pacotes pois Debian não o garante. O apt-pinning é uma operação completamente opcional e a sua utilização não é algo que se encoraje.
Os níveis de arquivo dos ficheiros de lançamento (veja Secção 2.5.3, “Ficheiros "Release" do nível de arquivo”) são utilizados para a regra do
apt_preferences
(5). Assim o apt-pinning funciona apenas com nome de "suite"
para arquivos Debian normais e
arquivos Debian de
segurança. (Isto é diferente dos arquivos do Ubuntu.) Por exemplo, pode fazer "Pin:
release a=unstable
" mas não pode fazer "Pin: release
a=sid
" no ficheiro "/etc/apt/preferences
".
Quando utilizar um arquivo não-Debian como parte de apt-pinning, deve verificar ao que ele se destina e também verificar a credibilidade dele. Por exemplo, Ubuntu e Debian não se destinam a ser misturados.
![]() |
Nota |
---|---|
Mesmo que não crie o ficheiro " |
Aqui está uma explicação simplificada da técnica de apt-pinning.
O sistema APT escolhe o pacote de atualizaçã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 for
maior que 1000, esta restrição de versão para atualização é abandonada para permitir a regressão
(veja Secção 2.7.11, “Downgrade de emergência”).
O valor Pin-Priority de cada pacote é definido por entradas "Pin-Priority"
no ficheiro "/etc/apt/preferences
" ou utiliza o valor
predefinido dele.
Tabela 2.18. Lista de valores notáveis de Pin-Priority para a técnica de apt-pinning.
Prioridade-pin | efeitos do apt-pinning no pacote |
---|---|
1001 | instala o pacote mesmo que isto constitua uma regressão na versão (downgrade) do pacote |
990 | utilizado como predefinição para o arquivo de lançamento de destino |
500 | utilizado por predefinição para o arquivo normal |
100 | utilizado como predefinição para os arquivos NotAutomatic e ButAutomaticUpgrades |
100 | utilizado para o pacote instalado |
1 | utilizado como predefinição para o arquivo NotAutomatic |
-1 | nunca instala o pacote mesmo que este seja recomendado |
O arquivo da suite alvo pode ser definido
pela linha de comando, por exemplo, "apt-get install -t testing
some-package
"
Os arquivos NotAutomatic e ButAutomaticUpgrades são definidos pelo servidor de
arquivo que contêm no ficheiro Release dele 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 ficheiro Release de nível de arquivo dele apenas
"NotAutomatic: yes
".
A situação de apt-pinning do
pacote de várias 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 p.e., "Package
pin: 0.190
".
Não existe nenhuma linha com "Package pin:
" se não
estiver definida nenhuma associação apenas com pacote.
O valor Pin-Priority a associar ao pacote é listado no
lado direito de todas as strings de versão, p.e., "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://deb.debian.org/debian/ bookworm-backports/main
Packages
".
![]() |
Atenção |
---|---|
A utilização da técnica apt-pinning por um utilizador novato irá certamente causar grandes problemas. Deve evitar utilizar esta técnica exceto quando for absolutamente necessário. |
Se desejar não puxar determinados pacotes automaticamente através de
"Recommends", tem de criar o ficheiro
"/etc/apt/preferences
" e listar explicitamente esses
pacotes no topo conforme a seguir:
Package: package-1 Pin: version * Pin-Priority: -1 Package: package-2 Pin: version * Pin-Priority: -1
![]() |
Atenção |
---|---|
A utilização da técnica apt-pinning por um utilizador novato irá certamente causar grandes problemas. Deve evitar utilizar esta técnica exceto quando for absolutamente necessário. |
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
atualizados regularmente enquanto segue a suite
testing
. Liste todos os arquivos necessários no ficheiro
"/etc/apt/sources.list
" conforme a seguir:
deb http://deb.debian.org/debian/ testing main contrib non-free deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://security.debian.org/debian-security testing-security 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, invoque o seguinte comando que muda o lançamento alvo com a
opção "-t
" (o Pin-Priority de unstable
torna-se 990).
$ sudo apt-get install -t unstable package-name
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
") atualiza os pacotes que foram instalados a partir
do repositório testing
ao usar a suite
testing
atual e os pacotes que foram instalados a partir
do repositório unstable
a usar a suite
unstable
atual.
![]() |
Cuidado |
---|---|
Tenha cuidado para não remover a entrada " |
![]() |
Dica |
---|---|
Geralmente edito o ficheiro " |
![]() |
Dica |
---|---|
Se for utilizado " |
Se desejar acompanhar pacotes particulares em unstable
automaticamente sem uma instalação inicial "-t unstable
",
tem de criar o ficheiro "/etc/apt/preferences
" e listar
explicitamente todos esses pacotes no topo conforme a seguir:
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, deve ter as seguintes entradas no ficheiro
"/etc/apt/preferences
".
Package: debian-reference-en 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 estiver a seguir o arquivo |
![]() |
Atenção |
---|---|
A utilização da técnica apt-pinning por um utilizador novato irá certamente causar grandes problemas. Deve evitar utilizar esta técnica exceto quando for absolutamente necessário. |
Aqui está outro exemplo de técnica de apt-pinning para incluir pacotes de versão de
origem mais recentes encontrados em experimental
enquanto
segue unstable
. Lista todos os arquivos necessários no
ficheiro "/etc/apt/sources.list
" conforme o seguinte:
deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://deb.debian.org/debian/ experimental main contrib non-free deb http://security.debian.org/ testing-security 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 é necessário definir o valor
Pin-Priority explicitamente no ficheiro
"/etc/apt/preferences
" apenas para usar o arquivo
experimental
a menos que deseje seguir pacotes
particulares nele automaticamente para a próxima atualização.
![]() |
Atenção |
---|---|
A utilização da técnica apt-pinning por um utilizador novato irá certamente causar grandes problemas. Deve evitar utilizar esta técnica exceto quando for absolutamente necessário. |
![]() |
Cuidado |
---|---|
O downgrade (regressão de versão) não é suportado oficialmente pelo sistema Debian por design. 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, Deve fazer salvaguardas (backups) de todos os dados importantes após a operação de recuperação e reinstalar um sistema novo a partir da estaca zero. |
Pode ter sorte ao fazer o downgrade de uma arquivo recente para um arquivo
mais antigo para recuperar de uma atualização ao sistema que o deixou
danificado ao manipular a versão
candidata (veja Secção 2.7.7, “Ajustar a versão candidata com o apt-pinning”). 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.6, “Recuperação com o comando dpkg”).
Procure as linhas no ficheiro "/etc/apt/sources.list
" que
acompanham unstable
como a seguir.
deb http://deb.debian.org/debian/ sid main contrib non-free
Substitua-as de modo a acompanharem testing
.
deb http://deb.debian.org/debian/ trixie main contrib non-free
Configure o ficheiro "/etc/apt/preferences
" como o
seguinte:
Package: * Pin: release a=testing Pin-Priority: 1010
Corra "apt-get update; apt-get dist-upgrade
" para forçar
a regressão 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. Pode necessitar remover e instalar manualmente alguns pacotes para conseguir o downgrade do sistema. O kernel Linux, gestor de arranque, udev, PAM, APT, os pacotes relacionados com a rede e os seus ficheiros de configuração requerem atenção especial. |
Se vai compilar um programa a partir do código-fonte para substituir um
pacote Debian, o melhor é torná-lo num pacote local realmente 'debianizado'
(*.deb
) e utilizar um arquivo privado.
Se escolher compilar um programa de fonte e instalá-lo sob
"/usr/local
", pode necessitar de utilizar o
equivs
como último recurso para satisfazer as
dependências em falta para o pacote.
Package: equivs Priority: optional Section: admin Description: Circumventing Debian package dependencies This package provides a tool to create trivial Debian packages. Typically these packages contain only dependency information, but they can also include normal installed files like other packages do. . One use for this is to create a metapackage: a package whose sole purpose is to declare dependencies and conflicts on other packages so that these will be automatically installed, upgraded, or removed. . Another use is to circumvent dependency checking: by letting dpkg think a particular package name and version is installed when it isn't, you can work around bugs in other packages' dependencies. (Please do still file such bugs, though.)
![]() |
Cuidado |
---|---|
Não existe qualquer garantia de que o procedimento aqui descrito funcione sem esforços manuais adicionais devido a diferenças de sistema. |
Para atualizações parciais do sistema stable
, é desejável
reconstruir um pacote dentro do ambiente dele a utilizar um pacote de
código-fonte. Isto evita atualizações maciças de pacotes devido às suas
dependências.
Adicione as seguintes entradas ao "/etc/apt/sources.list
"
num sistema stable
.
deb-src http://deb.debian.org/debian unstable main contrib non-free
Instale os pacotes necessários para a compilação e descarregue o pacote de código-fonte conforme o seguinte:
# apt-get update # apt-get dist-upgrade # apt-get install fakeroot devscripts build-essential # apt-get build-dep foo $ apt-get source foo $ cd foo*
atualize alguns pacotes de correntes de ferramentas como o
dpkg
e o debhelper
a partir de pacotes
de backport se forem necessários para o "backporting".
Execute o seguinte.
$ dch -i
Aumentar a versão do pacote, p.e. um com "+bp1
"
acrescentado em "debian/changelog
"
Compile os pacotes e instale-os para o sistema com o seguinte:
$ debuild $ cd .. # debi foo*.changes
Como pôr em mirror uma sub-secção inteira do arquivo Debian é um desperdício
de espaço de disco e largura de banda de rede, a implantação se um servidor
proxy local para o APT é desejável a ter em consideração se administrar
muitos sistemas em LAN. O APT pode ser
configurado para utilizar servidores proxy web genéricos (http) como o
squid
(veja Secção 6.5, “Outras aplicações de servidor de rede”) conforme descrito em
apt.conf
(5) e em
"/usr/share/doc/apt/examples/configure-index.gz
". A
variável de ambiente $http_proxy
" pode ser utilizada para
sobrepor a definição de servidor proxy do ficheiro
"/etc/apt/apt.conf
".
Existem ferramentas de proxy especiais para o arquivo Debian. Deve verificar o BTS antes de as utilizar.
Tabela 2.19. Lista de ferramentas proxy especiais para arquivos Debian
pacote | popcon | tamanho | descrição |
---|---|---|---|
approx
|
V:0, I:0 | 7124 | servidor proxy de cache para ficheiros de arquivo Debian (programa OCaml compilado) |
apt-cacher
|
V:0, I:0 | 266 | Proxy de cache para pacotes Debian e ficheiros de código-fonte (programa Perl) |
apt-cacher-ng
|
V:4, I:4 | 1816 | Proxy de cache para distribuição de pacotes de software (programa C++ compilado) |
![]() |
Cuidado |
---|---|
Quando Debian reorganiza a estrutura do arquivo dele, estas ferramentas de proxy especializadas tendem a necessitar ser reescritas de 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 mais fáceis de acompanhar estas mudanças. |
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
(8),
apt-get
(8), apt-config
(8),
apt-key
(8), sources.list
(5),
apt.conf
(5), and 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 de Debian: