dpkg - gestor de pacotes para Debian
este manual destina-se a utilizadores que desejam compreender as
opções de linha de comandos do dpkg e estados de
pacotes em mais detalhe do que aquele fornecido por dpkg --help.
Não deverá ser usado por maintainers de
pacotes que desejem compreender como o dpkg irá instalar os
seus pacotes. A descrição do que o dpkg faz quando
instala ou remove pacotes é particularmente inadequada.
dpkg é uma ferramenta de nível médio
para instalar, compilar, remover e gerir pacotes Debian. O front-end
principal e mais amigo-do-utilizador para o dpkg como CLI é o
(interface de linha de comandos) é o apt(8) e como TUI
(interface de terminal de utilizador) é o aptitude(8). O
próprio dpkg é controlado inteiramente via
parâmetros de linha de comandos, o que consiste de exactamente uma
acção e zero ou mais opções. O
parâmetro-acção diz ao dpkg o que fazer e as
opções controlam o comportamento da acção em
algum modo.
O dpkg pode também ser usado como front-end para
dpkg-deb(1) e dpkg-query(1). A lista de acções
suportadas pode ser encontrada mais tarde na secção
ACÇÕES. Se qualquer tal acção for
encontrada, o dpkg apenas corre dpkg-deb ou dpkg-query
com os parâmetros dados a ele, mas nenhuma opção
especifica é presentemente passada para eles, para se qualquer tal
opção, os back-ends precisam de ser chamados directamente.
O dpkg mantém alguma informação
utilizável sobre pacotes disponíveis. A
informação é dividida em três classes:
states, selection states e flags. Estes valores
destinam-se a serem alterados principalmente com o dselect.
- not-installed
- Este pacote não está instalado no seu sistema.
- config-files
- Apenas os ficheiros de configuração ou o script
postrm e os dados que precisa para remoção do pacote
existem no sistema.
- half-installed
- A instalação do pacote foi iniciada, mas não foi
acabada por alguma razão.
- unpacked
- O pacote está desempacotado mas não configurado.
- half-configured
- O pacote está desempacotado e a configuração foi
iniciada, mas ainda não está acabada por alguma
razão.
- triggers-awaited
- O pacote espera o processamento de trigger por outro pacote.
- triggers-pending
- O pacote foi despoletado
- installed
- O pacote está actualmente desempacotado e configurado.
- install
- O pacote está seleccionado para instalação.
- hold
- Um pacote marcado para estar em hold é mantido na mesma
versão, isto é, não serão executadas nenhumas
novas instalações, actualizações ou
remoções automáticas nele, a menos que estas
acções sejam requisitadas explicitamente, ou sejam
permitidas serem feitas automaticamente com a opção
--force-hold.
- deinstall
- O pacote está seleccionado para desinstalação (isto
é, queremos remover todos os ficheiros, excepto os ficheiros de
configuração).
- purge
- O pacote está seleccionado para ser purgado (isto é,
queremos remover tudo dos directórios do sistema, até os
ficheiros de configuração).
- unknown
- A selecção de pacote é desconhecida. Um pacote que
também está nu estado not-installed, e com uma
bandeira ok irá ser esquecido no próximo
armazenamento da base de dados.
- ok
- Um pacote marcado com ok está num estado conhecido, mas pode
precisar de mais processamento.
- reinstreq
- Um pacote marcado com reinstreq está quebrado e requer
reinstalação. Estes pacotes não podem ser removidos,
a menos que tal seja forçado com a opção
--force-remove-reinstreq.
- -i, --install
package-file...
- Instala o pacote. Se a opção --recursive ou -R
for especificada, ficheiro-pacote tem que se referir a um
directório em vez de um ficheiro.
A instalação consiste nos seguintes passos:
- 1.
- Extrai os ficheiros de controle do novo pacote.
- 2.
- Se outra versão do mesmo pacote foi instalada antes da nova
instalação, executa o script prerm do pacote
antigo.
- 3.
- Corre o script preinst, se disponibilizado pelo pacote.
- 4.
- Desempacota os novos ficheiros, e aos mesmo tempo salvaguarda os ficheiros
antigos, para que se algo correr mal, eles possam ser restaurados.
- 5.
- Se outra versão do mesmo pacote foi instalada antes da nova
instalação, executa o script postrm do pacote antigo.
Note que este script é executado depois do script preinst do
novo pacote, porque novos ficheiros são escritos ao mesmo tempo que
ficheiros antigos são removidos.
- 6.
- Configura o pacote. Veja --configure para informação
detalhada sobre como isto é feito.
- --unpack
package-file...
- Desempacota o pacote, mas não o configura. Se a opção
--recursive ou -R for especificada, package-file
deverá então referir-se a um directório.
Irá processar os gatilhos para Pre-Depends a
menos que --no-triggers esteja especificado.
- --configure
package...|-a|--pending
- Configura um pacote que foi desempacotado mas ainda não
configurado. Se for fornecido -a ou --pending em vez de
package, todos os pacotes desempacotados mas não
configurados são configurados.
Para reconfigurar um pacote que já foi configurado,
tente usar o comando dpkg-reconfigure(8) em vez deste (o qual faz
parte do projeto debconf).
A configuração consiste dos seguintes
passos:
- 1.
- Desempacota os conffiles, e ao mesmo tempo faz salvaguardas dos conffiles
antigos, para que possam ser restaurados se algo correr mal.
- 2.
- Corre o script postinst, se fornecido pelo pacote.
Irá processar os gatilhos a menos que --no-triggers
esteja especificado.
- --triggers-only
package...|-a|--pending
- Processa apenas gatilhos (desde dpkg 1.14.17). Todos os gatilhos pendentes
serão processados. Se forem fornecidos nomes de pacotes, apenas os
gatilhos desses pacotes serão processados, exactamente uma vez onde
necessário. O uso desta opção pode deixar pacotes em
estados triggers-awaited e triggers-pending
impróprios. Isto pode ser corrigido mais tarde ao correr: dpkg
--configure --pending.
- -r, --remove
package...|-a|--pending
- Remove um pacote instalado. Isto remove tudo excepto conffiles e outros
dados limpos pelo script postrm, o qual pode evitar de ter que
reconfigurar o pacote se for reinstalado mais tarde (conffiles são
ficheiros de configuração que estão listados no
ficheiro de controle DEBIAN/conffiles). Se não existir um
ficheiro de controlo DEBIAN/conffiles nem script
DEBIAN/postrm, este comando é equivalente a chamar
--purge. Se for fornecido -a ou --pending em vez de
um nome de pacote , então são removidos todos os pacotes
desempacotados mas marcados para serem removidos no ficheiro
/var/lib/dpkg/status.
Remover um pacote consiste nos seguintes passos:
- 1.
- Corre o script prerm.
- 2.
- Remove os ficheiros instalados.
- 3.
- Corre o script postrm.
Irá processar os gatilhos a menos que --no-triggers
esteja especificado.
- -P, --purge
package...|-a|--pending
- Purga um pacote instalado ou já removido.Isto remove tudo,
incluindo conffiles, e tudo o resto limpo a partir do postrm. Se
for fornecido -a ou --pending em vez do nome de pacote,
então todos os pacotes desempacotados ou removidos, mas marcados
para serem purgados no ficheiro /var/lib/dpkg/status, serão
purgados.
Nota: Alguns ficheiros de configuração
podem ser desconhecidos para o dpkg porque eles são
criados e manuseados separadamente através dos scripts de
configuração. Nesse caso, o dpkg não
irá remove-los sozinho, mas o script postrm do pacote (que
é chamado pelo dpkg), tem de fazer a sua
remoção durante a purga. Claro que, isto só se
aplica a ficheiros em directórios do sistema, e não a
ficheiros de configuração escritos nos directórios
home de utilizadores individuais.
Purgar um pacote consiste nos seguintes passos:
- 1.
- Remove o pacote, se não estiver já removido. Veja
--remove para informação detalhada acerca de como
isto é feito.
- 2.
- Corre o script postrm.
Irá processar os gatilhos a menos que --no-triggers
esteja especificado.
- -V, --verify
[package-name...]
- Verifica a integridade de package-name ou todos os pacotes se
omitido, ao comparar informação dos ficheiros instalados com
a informação de metadados de ficheiros guardada na base de
dados do dpkg (desde dpkg 1.17.2). A origem da
informação de metadados de ficheiros na base de dados
é os próprios pacotes binários. Esses metadados
são colecionados ao desempacotar os ficheiros durante o processo de
instalação.
Presentemente a única verificação
funcional executada é uma verificação de md5sum do
conteúdo dos ficheiros contra o valor armazenado na base de dados
dos ficheiros. Só serão verificados se a base de dados
conter o md5sum dos ficheiros. Para verificar por quaisquer metadados em
falta na base de dados, pode ser usado o comando --audit. Isto
é apenas uma verificação de integridade e
não deve ser considerado como nenhum tipo de
verificação de segurança.
O formato do resultado é seleccionável com a
opção --verify-format, que por
predefinição usa o formato rpm, mas isso pode mudar
no futuro, e como tal, os programas que analisam resultado de comando
devem estar explícitos acerca do formato que esperam.
- -C, --audit
[package-name...]
- Executa testes de sanidade e consistência para package-name
ou todos os pacotes se omitido (verificações por pacote
desde dpkg 1.17.10). Por exemplo, procura por pacote que foram instalados
apenas parcialmente no seu sistema ou têm ficheiros ou dados de
controle em falta, errados ou obsoletos. O dpkg irá sugerir
o que fazer com eles para os corrigir.
- --update-avail
[Packages-file]
- --merge-avail
[Packages-file]
- Actualiza o conhecimento de dpkg's e dselect de quais
pacotes estão disponíveis. Com a acção
--merge-avail, a informação antiga é combinada
com informação de Packages-file. Com a
acção --update-avail, informação antiga
é substituída pela informação de
Packages-file. O Packages-file distribuído com Debian
é simplesmente chamado «Packages». Se o
argumento Packages-file estiver em falta ou for chamado
«-» então será lido a partir da entrada
standard (desde dpkg 1.17.7). dpkg mantém o seu registo de
pacotes disponíveis em /var/lib/dpkg/available.
Um comando único mais simples de obter e actualizar o
ficheiro available é dselect update. Note que este
ficheiro é maioritariamente inútil se você
não usar o dselect mas um frontend baseado no APT: O APT
tem o seu próprio sistema para acompanhar os pacotes
disponíveis.
- -A, --record-avail
package-file...
- Actualiza o conhecimento de dpkg's e dselect de quais
pacotes estão disponíveis com informação a
partir do pacote package-file. Se forem especificadas as
opções --recursive ou -R, então
package-file deve referir-se a um directório.
- --forget-old-unavail
- Agora obsoleto e uma não-opção pois o
dpkg irá esquecer automaticamente os pacotes não
instalados e não disponíveis (desde dpkg 1.15.4), mas apenas
aqueles que não contêm informação de
utilizador tal como selecções de pacotes.
- --clear-avail
- Apaga a informação existente sobre que pacotes estão
disponíveis.
- --get-selections
[package-name-pattern...]
- Obtém lista de selecções de pacotes, e escreve-a no
stdout. Sem um padrão, os pacotes não-instalados (isto
é, aqueles que foram previamente purgados) não serão
mostrados.
- --set-selections
- Define selecções de pacotes usando um ficheiro a partir de
stdin. Este ficheiro deve estar no formato “package
state”, onde state é um de install,
hold, deinstall ou purge. São também
permitidas linhas vazias e linhas de comentários começando
com ‘#’.
O ficheiro available precisa de estar actualizado para
que este comando seja útil, caso contrário os pacotes
desconhecidos serão ignorados com um aviso. Veja os comandos
--update-avail e --merge-avail para mais
informação.
- --clear-selections
- Define o estado requerido de todos os pacotes não-essenciais para
"desinstalar" (desde dpkg 1.13.18). Isto destina-se a ser usado
imediatamente antes de --set-selections, para desinstalar quaisquer
pacotes que não estejam na lista fornecida ao
--set-selections.
- --yet-to-unpack
- Procura por pacotes selecionados para instalação, mas que
por alguma razão ainda não foram instalados.
Nota: Este comando faz uso de ambos o ficheiro
disponível e das selecções do pacote.
- --predep-package
- Escreve um pacote único que é o alvo de uma ou mais
pré-dependências relevantes e tem ele próprio
pré-dependências não satisfeitas.
Se tal pacote estiver presente, escreve-o como uma entrada no
ficheiro Packages, o qual pode ser tratado como apropriado.
Nota: Este comando faz uso de ambos o ficheiro
disponível e das selecções do pacote.
Retorna 0 quando um pacote é escrito, 1 quando nenhum
pacote apropriado está disponível e 2 em caso de erro.
- --add-architecture
architecture
- Adiciona architecture à lista de arquitecturas para quais
pacotes podem ser instalados sem se usar --force-architecture
(desde dpkg 1.16.2). A arquitectura para qual o dpkg é
compilado (isto é, o resultado de --print-architecture) faz
sempre parte dessa lista.
- --remove-architecture
architecture
- Remove architecture da lista de arquitecturas para quais pacotes
podem ser instalados sem se usar --force-architecture (desde dpkg
1.16.2). Se a arquitectura estiver presentemente em uso na base de dados
então a operação será recusada, excepto se
--force-architecture for especificado. A arquitectura para qual o
dpkg é compilado (isto é, o resultado de
--print-architecture) nunca pode ser removida dessa lista.
- --print-architecture
- Escreve a arquitectura dos pacotes que o dpkg instala (por exemplo
, “i386”).
- --print-foreign-architectures
- Escreve uma lista, com separação por novas linhas, de
arquitecturas extra que o dpkg tem configurado para permitir
instalar pacotes para elas (desde dpkg 1.16.2).
- --assert-help
- Oferece ajuda acerca das opções
--assert-feature (desde dpkg 1.21.0).
- --assert-feature
- Afirma que o dpkg suporta a funcionalidade requerida. Retorna 0 se
a funcionalidade é totalmente suportada. 1 se a funcionalidade
é conhecida mas o dpkg ainda não pode suporta-la, e 2
se a funcionalidade é desconhecida. A lista actual de
funcionalidades afirmáveis é:
- support-predepends
- Suporta o campo Pre-Depends (desde dpkg 1.1.0).
- working-epoch
- Suporta épocas em strings de versão (desde dpkg
1.4.0.7).
- long-filenames
- Suporta nomes de ficheiros longos em arquivos deb(5) (desde dpkg
1.4.1.17).
- multi-conrep
- Suporta múltiplos Conflicts e Replaces (desde dpkg
1.4.1.19).
- multi-arch
- Suporta campos multi-arch e semânticas (desde dpkg 1.16.2).
- versioned-provides
- Suporta Provides com versão (desde dpkg 1.17.11).
- protected-field
- Suporta o campo Protected (desde dpkg 1.20.1).
- --validate-thing
string
- Valida que a thing string tem a sintaxe correcta (desde dpkg
1.18.16). Retorna 0 se a string for válida, 1 se a
string é inválida mas pode ser aceite em contextos
lax, e 2 se a string é inválida. A lista actual de
thing validáveis é:
- pkgname
- Valida o nome de pacote fornecido (desde dpkg 1.18.16).
- trigname
- Valida o nome de gatinho fornecido (desde dpkg 1.18.16).
- archname
- Valida o nome de arquitectura fornecido (desde dpkg 1.18.16).
- version
- Valida a versão fornecida (desde dpkg 1.18.16).
- --compare-versions
ver1 op ver2
- Compara números de versão, onde op é um
operador binário. dpkg retorna verdadeiro (0) se a
condição especificada for satisfeita, e falso (1)
caso contrário. Existe dois grupos de operadores, que diferem em
como eles tratam um ver1 ou ver2 vazio. Estes tratam uma
versão vazia mais cedo que qualquer versão: lt le eq ne
ge gt. Estes tratam uma versão vazia mais tarde que qualquer
versão: lt-nl le-nl ge-nl gt-nl. Estes são fornecidos
apenas para compatibilidade com sintaxe de ficheiros de controle: <
<< <= = >= >> >. Os operadores < e
> estão obsoletos e não devem ser usados,
devido a semânticas confusas. Para ilustrar: 0.1 < 0.1
avalia para verdadeiro.
- -?, --help
- Mostra uma mensagem de ajuda breve.
- --force-help
- Oferece ajuda acerca das opções
--force-qualquer-coisa.
- -Dh,
--debug=help
- Oferece ajuda acerca de opções de
depuração.
- --version
- Mostra informação de versão do dpkg.
Quando usado com --robot, o resultado será o
número de versão de programa num formato numérico
pontuado, sem nenhuma nova linha.
- dpkg-deb
actions
- Veja dpkg-deb(1) para mais informações acerca das
seguintes acções, e outras acções e
opções não expostas pelo front-end do
dpkg.
- dpkg-query
actions
- Veja dpkg-query(1) para mais informações acerca das
seguintes acções, e outras acções e
opções não expostas pelo front-end do
dpkg.
Todas as opções pode ser especificadas em ambos
linha de comandos e no ficheiro de configuração do dpkg
/etc/dpkg/dpkg.cfg ou em ficheiros fragmento (com nomes a
corresponder a este padrão de shell "[0-9a-zA-Z_-]*') no
directório de configuração
/etc/dpkg/dpkg.cfg.d/. Cada linha no ficheiro de
configuração é ou uma opção (exatamente
igual a uma opção de linha de comandos mas sem os
hífens iniciais) ou um comentário (se começar com
‘#’).
- --abort-after=number
- Altera o após quantos erros o dpkg irá abortar. A
predefinição é 50.
- -B,
--auto-deconfigure
- Quando um pacote é removido, existe a possibilidade que outro
pacote instalado dependa do pacote removido. Especificar esta
opção irá provocar a desconfiguração
automática do pacote que dependia do pacote removido.
- -Doctal,
--debug=octal
- Liga a depuração. octal é formado por valores
bitwise-ORing desejados juntos da lista em baixo (note que estes valores
podem mudar em lançamentos futuros). -Dh ou
--debug=help mostram estes valores de depuração.
Número Descrição
1 Informação de progresso geralmente útil
2 Invocação e estado dos scripts do maintainer
10 Resultado de cada ficheiro processado
100 Montes de resultados de cada ficheiro processado
20 Resultado para cada ficheiro de configuração
200 Montes de resultados de cada ficheiro de configuração
40 Dependências e conflitos
400 Montes de resultados de dependências/conflitos
10000 Activação de gatilhos e processamento
20000 Montes de resultados relativos a gatilhos
40000 Quantidades tolas de resultados relativos a gatilhos
1000 Lotes de drivel acerca por exemplo do directório dpkg/info
2000 Lotes tolos de drivel
- --force-things
- --no-force-things,
--refuse-things
- Força ou recusa (no-force e refuse significa a mesma
coisa) para fazer algumas coisas. things é uma lista
separada por vírgulas de coisas especificadas em baixo.
--force-help mostra uma mensagem que as descreve. Coisas marcadas
com (*) são forçadas por predefinição.
Aviso: Estas opções são
maioritariamente destinadas a serem usadas apenas por experts. Usa-las
sem total conhecimento dos seus efeitos pode danificar todo o seu
sistema.
- all:
- Liga (ou desliga) todas as opções de forçar.
- downgrade(*):
- Instala um pacote, mesmo que já esteja instalada uma versão
dele mais recente.
Aviso: Presentemente o dpkg não efetua
nenhuma verificação de dependência em downgrades e
por isso não irá avisa-lo se o downgrade quebrar a
dependência de algum outro pacote. Isto pode ter sérios
efeitos secundários, o downgrade de componentes essenciais do
sistema pode até inutilizar todo o seu sistema. Use com
cuidado.
- configure-any:
- Configura também quaisquer pacotes desempacotados mas não
configurados nos quais o pacote actual depende.
- hold:
- Permite instalações, actualizações e
remoções automáticas mesmo quando marcado para estar
em “hold”. Nota: Quando estas acções
são requisitadas explicitamente, o estado "hold" de
selecção de pacote é sempre ignorado.
- remove-reinstreq:
- Remove um pacote, mesmo se estiver quebrado e marcado a requerer
reinstalação. Isto pode, por exemplo, causar que partes do
pacote fiquem no sistema, que serão depois esquecidos pelo
dpkg.
- remove-protected:
- Remove, mesmo se o pacote for considerado protegido (desde dpkg 1.20.1).
Os pacotes protegidos contêm maioritariamente a importante
infraestrutura de arranque do sistema ou são usados por
meta-pacotes personalizados locais-do-sistema. Remove-los pode causar que
todo o sistema seja incapaz de arrancar ou perca funcionalidades
requeridas para operar, portanto use com muito cuidado.
- remove-essential:
- Remove, mesmo se o pacote for considerado essencial. Os pacotes essenciais
contêm maioritariamente comandos Unix mais básicos,
requeridos para o sistema de empacotamento, para a operação
do sistema em geral ou durante o arranque (apesar do último dever
ser alterado para pacotes protegidos em vez disto). Remove-los pode causar
que todo o sistema pare de funcionar, por isso use com cuidado.
- depends:
- Torna todos os problemas de dependências em avisos. Isto afecta os
campos Pre-Depends and Depends.
- depends-version:
- Não se interessa pelas versões quando verifica as
dependências. Isto afecta os campos Pre-Depends and
Depends.
- breaks:
- Instala, mesmo que isto danifique outro pacote (desde dpkg 1.14.6). Isto
afecta o campo Breaks.
- conflicts:
- Instala, mesmo que fique em conflito com outro pacote. Isto é
perigoso, pois geralmente causa a sobreposição de alguns
ficheiros. Isto afecta o campo Conflicts.
- confmiss:
- Instala sempre o ficheiro de configuração em falta sem
avisar. Isto é perigoso, pois isto significa não preservar
uma alteração feita no ficheiro de
configuração (removendo-a).
- confnew:
- Se um ficheiro de configuração foi modificado e a
versão do pacote mudou, instala sempre a nova versão sem
avisar, a menos que seja também especificado
--force-confdef, que neste caso é preferida a
acção predefinida.
- confold:
- Se um ficheiro de configuração foi modificado e a
versão do pacote mudou, mantém sempre a versão antiga
sem avisar, a menos que seja também especificado
--force-confdef, que neste caso é preferida a
acção predefinida.
- confdef:
- Se um conffile foi modificado e a versão no pacote alterou, escolhe
sempre a acção predefinida sem perguntar. Se não
existir acção predefinida irá parar para pedir ao
utilizador a menos que --force-confnew ou --force-confold
sejam também fornecidos, nesse caso irá usar isso para
decidir a acção final.
- confask:
- Se um conffile foi modificado oferece-se sempre para o substituir pela
versão no pacote, mesmo que a versão no pacote não
tenha mudado (desde dpkg 1.15.8). Se algum de --force-confnew,
--force-confold, ou --force-confdef forem também
fornecidos, será usado para decidir a acção
final.
- overwrite:
- Sobrescreve um ficheiro de um pacote por um ficheiro de outro.
- overwrite-dir:
- Sobrepõe um directório de um pacote com ficheiros de
outro.
- overwrite-diverted:
- Sobrescreve a ficheiro divergido com uma versão
não-divergida.
- statoverride-add:
- Sobrescreve uma sobreposição de estatística existente
quando a adiciona (desde dpkg 1.19.5).
- statoverride-remove:
- Ignora uma sobreposição de estatística em falta
quando a remove (desde dpkg 1.19.5).
- security-mac(*):
- Usa segurança baseada em Mandatory Access Controls (MAC)
específica da plataforma quando instala ficheiros no sistema de
ficheiros (desde dpkg 1.19.5). Em sistemas Linux a
implementação usa SELinux.
- unsafe-io:
- Não executa operações I/O seguras quando desempacota
(desde dpkg 1.15.8.6). Actualmente isto implica não executar
sincronismos do sistema antes de renomear ficheiros, o que é
conhecido por causar uma degradação substancial de
performance em alguns sistemas de ficheiros, infelizmente são esses
que requerem o I/O seguro em primeiro lugar devido ao seu comportamento
não fiável que provoca ficheiros de comprimento-zero em
crashes abruptos do sistema.
Nota: Para ext4, o principal ofensor, considere usar a
opção de montagem nodelalloc, o que irá
corrigir ambos a degradação de performance e os problemas
de segurança de dados, o último ao tornar o sistema de
ficheiros não produtor de ficheiros de zero-tamanho em crashes
abruptos do sistema com qualquer software que não faça
sincronismos antes de renomeações atómicas.
Aviso: Usar esta opção pode melhorar a
performance a custo de perda de dados, use com cuidado.
- script-chrootless:
- Corre os scripts de maintainer sem fazer chroot(2) em
instdir mesmo que o pacote não suporte este modo de
operação (desde dpkg 1.18.5).
Aviso: Isto pode destruir o seu sistema, use com
extremo cuidado.
- architecture:
- Processa pacotes mesmo da arquitectura errada ou sem nenhuma.
- bad-version:
- Processa pacotes mesmo com versões erradas (desde dpkg
1.16.1).
- bad-path:
- PATH tem em falta programas importantes, portanto é
provável haver problemas.
- not-root:
- Tenta (des)instalar coisas mesmo não sendo root.
- bad-verify:
- Instala um pacote mesmo que este falhe no teste de autenticidade.
- --ignore-depends=package,...
- Ignora verificação de dependências para pacotes
específicos (na verdade, a verificação é
executada, mas são apenas dados avisos sobre conflitos, nada
,mais). Isto afecta os campos Pre-Depends, Depends e
Breaks.
- --no-act,
--dry-run, --simulate
- Faz tudo o que é suposto ser feito, mas não escreve
quaisquer alterações. Isto é usado para se ver o que
acontecia com uma acção específica, sem modificar
nada na realidade.
Certifique-se de fornecer --no-act antes do
parâmetro da acção, ou poderá acabar com
resultados não desejáveis (ex. dpkg --purge foo
--no-act irá primeiro purgar o pacote "foo" e
depois tentará purgar o pacote "--no-act", mesmo
pensando que provavelmente não vai fazer nada).
- -R,
--recursive
- Lida recursivamente com todos os ficheiros regulares que correspondem ao
padrão *.deb encontrados em directórios especificados
e em todos os seus sub-directórios. Isto pode ser usado com as
acções -i, -A, --install,
--unpack e --record-avail.
- -G
- Não instala um pacote se uma versão mais recente do mesmo
pacote já estiver instalada. Isto é um nome alternativo de
--refuse-downgrade.
- --admindir=dir
- Define o directório administrativo para directory. Este
directório contem muitos ficheiros que fornecem
informação acerca do estado de pacotes instalados ou
desinstalados, etc. A predefinição é
«/var/lib/dpkg» se DPKG_ADMINDIR não
estiver definido.
- --instdir=dir
- Define o directório de instalação, o que se refere ao
directório onde os pacotes vão ser instalados.
instdir é também o directório passado ao
chroot(2) antes de correr scripts de instalação dos
pacotes, o que significa que os vêm instdir como o
directório raiz. A predefinição é
«/».
- --root=dir
- Define o directório raiz para directory, o que define o
directório de instalação para
«dir» e o directório administrativo para
«dir/var/lib/dpkg».
- -O,
--selected-only
- Apenas processa os pacotes que estão selecionados para
instalação. A marcação real é feita com
dselect ou pelo dpkg, quando lida com pacotes. Por exemplo,
quando um pacote é removido, será marcado selecionado para
desinstalação.
- -E,
--skip-same-version
- Não instala o pacote se a mesma versão e arquitectura do
pacote já estiver instalada.
Desde dpkg 1.21.10, a arquitectura é também tida
em conta, o que torna possível cruzar o grau dos pacotes ou
instalar instâncias co-instaláveis adicionais com a mesma
versão, mas arquitectura diferente.
- --pre-invoke=command
- --post-invoke=command
- Define um command hook de invocação para ser corrido
via “sh -c” antes ou depois de o dpkg correr para as
acções unpack, configure, install,
triggers-only, remove, e purge (desde dpkg 1.15.4), e
as acções add-architecture e
remove-architecture (desde dpkg 1.17.19). Esta opção
pode ser especificada várias vezes. A ordem que as
opções são especificadas é preservada, com
aquelas dos ficheiros de configuração a tomar
precedência. A variável de ambiente DPKG_HOOK_ACTION
é definida para os hooks para a acção actual do
dpkg.
Nota: Front-ends podem chamar dpkg várias
vezes por invocação, o que pode fazer correr os hooks mais
vezes do que o esperado.
- --path-exclude=glob-pattern
- --path-include=glob-pattern
- Define glob-pattern como um filtro de caminho, seja por excluir ou
re-incluir caminhos previamente excluídos que correspondem aos
padrões especificados durante a instalação (desde
dpkg 1.15.8).
Aviso: Tenha em conta que ao depender de caminhos
excluídos você pode danificar completamente o seu sistema,
use com cuidado.
Os padrões glob usam as mesmas wildcards usadas na
shell, onde ‘*’ corresponde a qualquer sequência de
caracteres, incluindo a string vazia e também ‘/’.
Por exemplo, «/usr/*/READ*» corresponde a
«/usr/share/doc/package/README». Como normal,
‘?’ corresponde a qualquer caractere único (mais
uma vez, incluindo ‘/’). E ‘[’ começa
uma classe de caractere, o qual pode conter uma lista de caracteres,
gamas e complementações. Veja glob(7) para
informação detalhada acerca de globbing. Nota: A
implementação actual pode re-incluir mais directivas e
links simbólicos do que necessário, em particular quando
existe uma re-inclusão mais específica. para estar no lado
seguro e evitar possíveis falhas de desempacotamento, trabalho
futuro poderá corrigir isto.
Isto pode ser usado para remover todos os caminhos excepto
alguns particulares; um caso típico é:
--path-exclude=/usr/share/doc/*
--path-include=/usr/share/doc/*/copyright
para remover todos os ficheiros de documentação
excepto os ficheiros de copyright.
Estas duas opções pode ser especificadas
várias vezes, e intercaladas entre elas. Ambas são
processadas na ordem fornecida, com a última regra corresponde a
um nome de ficheiro a marcar a decisão.
Os filtros são aplicados quando se desempacota os
pacotes binários, e como tal apenas têm conhecimento do
tipo de objecto actualmente a ser filtrado (ex. um ficheiro normal num
directório) e não têm visibilidade dos outros
objetos que virão a seguir. Porque estes filtros têm
efeitos secundários (em contraste aos filtros find(1)),
excluir um nome de caminho exacto que acontece ser um objecto
directório como /usr/share/doc não irá ter o
resultado desejado, e apenas esse nome de caminho será
excluído (que poderá ser automaticamente
re-incluído se o código vir a necessidade). Quaisquer
ficheiros subsequentes contidos dentro desse directório
irão falhar ao desempacotar.
Dica: certifique-se que os globs não são
expandidos pela sua shell.
- --verify-format
format-name
- Define o formato dos resultados para o comando --verify (desde dpkg
1.17.2).
O único formato de saída actualmente suportado
é rpm, o qual consiste de uma linha para cada caminho que
falhou qualquer verificação. Estas linhas têm o
seguinte formato:
missing [c] pathname
[(error-message)]
??5?????? [c] pathname
Os primeiros 9 caracteres são usados para reportar o
resultado das verificações, seja um missing literal
quando o ficheiro não está presente ou os seus meta-dados
não puderam ser obtidos, ou um dos seguintes caracteres especiais
que reportam o resultado para cada verificação:
- ‘?’
- Implica que a verificação não pôde ser feita
(falta de suporte, permissões do ficheiro, etc).
- ‘.’
- Implica que a verificação passou.
- ‘A-Za-z0-9’
- Implica que uma verificação especifica falhou. As seguinte
posições e caracteres alfanuméricos são
actualmente suportados:
- 1 ‘?’
- Estas verificações actualmente não são
suportadas, serão sempre ‘?’.
- 2 ‘M’
- A verificação de modo de ficheiro falhou (desde dpkg
1.21.0). Porque os meta-dados do nome de caminho não estão
actualmente seguidos, esta verificação só pode ser
parcialmente emulada via heurística muito simples para nomes de
caminho que têm um resumo conhecido, o que implica que devem ser
ficheiros regulares, onde a verificação irá falhar se
o nome de caminho não for um ficheiro regular no sistema de
ficheiros. Esta verificação nunca irá actualmente ter
sucesso pois não tem informação suficiente
disponível.
- 3 ‘5’
- A verificação de resumo falhou, o que significa que o
conteúdo do ficheiro foi modificado. Isto é apenas uma
verificação de integridade e não deve ser considerada
como nenhum tipo de verificação de segurança.
- 4-9 ‘?’
- Estas verificações actualmente não são
suportadas, serão sempre ‘?’.
A linha é seguida por um espaço e um caractere de
atributo. O seguinte caractere de atributo é suportado:
- ‘c’
- O nome-de-caminho é um conffile.
Finalmente seguido por outro espaço e o nome de
caminho.
No caso da entrada ser do tipo missing, e o ficheiro
não estava realmente presente no sistema de ficheiros, então a
linha é seguida por um espaço e a mensagem de erro entre
parêntesis.
- --status-fd
n
- Envia o estado do pacote em linguagem de máquina e
informação de progresso para o descritor de ficheiro
n. Esta opção pode ser especificada várias
vezes. A informação é geralmente um registo por
linha, em um dos seguintes formatos:
- --status-logger=command
- Envia o estado do pacote em linguagem de máquina e
informação de progresso para a entrada standard de
command de shell, para ser corrido via “sh -c” (desde
dpkg 1.16.0). Esta opção pode ser especificada várias
vezes. O formato de resultados usado é o mesmo que em
--status-fd.
- --log=filename
- Regista actualizações de alteração de estado e
acções em filename, em vez da
predefinição /var/log/dpkg.log. Se esta
opção for dada várias vezes, é usado o
último nome de ficheiro. As mensagens registadas estão no
formato:
- --robot
- Usa um formato de resultados em linguagem máquina. Este fornece uma
interface para programas que precisam de analisar os resultados de alguns
dos comandos que de outro modo não emitem um formato de resultados
em linguagem máquina. Nenhuma localização será
usada, e os resultados serão modificados para os tornar mais
fácil de analisar.
O único comando actualmente suportado é
--version.
- --no-pager
- Desactiva o uso de qualquer paginador quando mostra
informação (desde dpkg 1.19.2).
- --no-debsig
- Não tenta verificar as assinaturas dos pacotes.
- --no-triggers
- Não corre nenhum gatilho nesta execução (desde dpkg
1.14.17), mas as activações serão na mesma gravadas.
Se usado com --configure package ou --triggers-only
package então o postinst do pacote nomeado irá mesmo
assim ser corrido mesmo que apenas seja necessário correr um
gatilho. O uso desta opção pode deixar pacotes em estados
triggers-awaited e triggers-pending impróprios. Isto
pode ser corrigido mais tarde ao correr: dpkg --configure
--pending.
- --triggers
- Cancela um --no-triggers anterior (desde dpkg 1.14.17).
- 0
- A acção requisitada foi executada com sucesso. Ou uma
verificação ou comando de afirmação retornou
verdadeiro.
- 1
- Uma verificação ou comando de afirmação
retornou falso.
- 2
- Erro fatal ou irrecuperável devido a utilização de
linha de comandos inválida, ou interações com o
sistema, tais como acesso à base de dados, alocações
de memória, etc.
- PATH
- Esta variável é esperada estar definida no ambiente e
apontar para os caminhos do sistema onde vários programas
requeridos se encontram. Se não estiver definida, ou os programas
não forem encontrados, o dpkg irá abortar.
- HOME
- Se definido, o dpkg irá usa-lo como o directório de
onde ler o ficheiro de configuração específico do
utilizador.
- TMPDIR
- Se definido, o dpkg irá usa-lo como o directório onde
criar os ficheiros e directórios temporários.
- SHELL
- O programa que o dpkg irá executar quando iniciar uma nova
shell interactiva, ou quando multiplica um comando via shell.
- O programa que o dpkg irá executar quando correr um
paginador, o qual será executado com
«$SHELL -c», por
exemplo quando mostrar as diferenças do conffile. Se SHELL
não estiver definida, será usado «sh»
em vez deste. O DPKG_PAGER sobrepõe a variável de
ambiente PAGER (desde dpkg 1.19.2).
- DPKG_COLORS
- Define o modo de cor (desde dpkg 1.18.5). Os valores actualmente aceites
são: auto (predefinido), always e never.
- DPKG_DEBUG
- Define a máscara de depuração (desde dpkg 1.21.10) a
partir dum valor octal. As bandeiras presentemente aceites estão
descritas na opção --debug.
- DPKG_FORCE
- Define as bandeiras de forçar (desde dpkg 1.19.5). Quando esta
variável está presente, nenhuma predefinição
de forçar embutida será aplicada. Se a variável esta
presente mas vazia, todas as bandeiras de forçar serão
desactivadas.
- DPKG_ADMINDIR
- Se definido e as opções --admindir ou --root
não foram especificadas, será usado como o directório
administrativo do dpkg (desde dpkg 1.20.0).
- DPKG_FRONTEND_LOCKED
- Definido pelo frontend de gestão de pacotes para notificar o dpkg
que não deve adquirir o bloqueio do frontend (desde dpkg
1.19.1).
- LESS
- Definido pelo dpkg para “-FRSXMQ”, Se
não já definido, quando cria um paginador (desde dpkg
1.19.2). Para modificar o comportamento predefinido, esta variável
por ser pré-ajustada para qualquer outro valor incluindo uma string
vazia, ou as variáveis PAGER ou DPKG_PAGER podem ser
definidas para desactivar opções específicas com
«-+», por exemplo DPKG_PAGER="less
-+F".
- DPKG_ROOT
- Definido pelo dpkg no ambiente de scripts do maintainer para
indicar em qual instalação devem actuar (desde 1.18.5). O
valor destina-se a ser adicionado ao inicio de qualquer caminho em que os
scripts de maintainer operam. Durante uma operação normal,
esta variável está vazia. Ao instalar pacotes numa
instdir diferente, o dpkg normalmente invoca scripts do
maintainer usando chroot(2) e deixa esta variável vazia, mas
se --force-script-chrootless for especificado então a
chamada chroot(2) é saltada e instdir fica
não-vazia.
- DPKG_ADMINDIR
- Definido pelo dpkg no ambiente de scripts do maintainer para
indicar o directório administrativo do dpkg a usar (desde
dpkg 1.16.0). Esta variável está sempre definida para o
valor actual --admindir.
- DPKG_FORCE
- Definido pelo dpkg no ambiente de sub-processos para todos os nomes
de opções de forçar, actualmente activos, separados
por vírgulas (desde dpkg 1.19.5).
- DPKG_SHELL_REASON
- Definido pelo dpkg na shell criada no incitar do conffile para
examinar a situação (desde dpkg 1.15.6). Valor válido
actual: conffile-prompt.
- DPKG_CONFFILE_OLD
- Definido pelo dpkg na shell criada no incitar do conffile para
examinar a situação (desde dpkg 115.6). Contém o
caminho do conffile antigo.
- DPKG_CONFFILE_NEW
- Definido pelo dpkg na shell criada no incitar do conffile para
examinar a situação (desde dpkg 115.6). Contém o
caminho do conffile novo.
- DPKG_HOOK_ACTION
- Definido pelo dpkg na shell criada quando executa uma
acção hook (desde dpkg 1.15.4). Contém a
acção actual do dpkg.
- DPKG_RUNNING_VERSION
- Definido pelo dpkg no ambiente de scripts do maintainer para a
versão da instância do dpkg actualmente a correr
(desde dpkg 1.14.17).
- DPKG_MAINTSCRIPT_PACKAGE
- Definido pelo dpkg no ambiente de scripts do maintainer para o nome
do pacote (qualificado-não-arquitectura) a ser manuseado (desde
dpkg 1.14.17).
- DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT
- Definido pelo dpkg no ambiente de scripts do maintainer para a
contagem de referência de pacotes, isto é, o número
de instâncias de pacotes com um estado maior que
not-installed (desde dpkg 1.17.2).
- DPKG_MAINTSCRIPT_ARCH
- Definido pelo dpkg no ambiente de scripts do maintainer para a
arquitectura que o pacote foi compilado (desde dpkg 1.15.4).
- DPKG_MAINTSCRIPT_NAME
- Definido pelo dpkg no ambiente de scripts do maintainer para o nome
do script a correr, um de preinst, postinst, prerm or
postrm (desde dpkg 1.15.7).
- DPKG_MAINTSCRIPT_DEBUG
- Definido pelo dpkg no ambiente de scripts do maintainer para um
valor (‘0’ ou ‘1’) que indica se
a depuração foi requisitada (com a opção
--debug) para os scripts do maintainer (desde dpkg 1.18.4).
- /etc/dpkg/dpkg.cfg.d/[0-9a-zA-Z_-]*
- Ficheiros de fragmentos de configuração (desde dpkg
1.15.4).
- /etc/dpkg/dpkg.cfg
- Ficheiro de configuração com as opções
predefinidas.
- /var/log/dpkg.log
- Ficheiro de relatório predefinido (veja /etc/dpkg/dpkg.cfg e
a opção --log).
Os outros ficheiros listados em baixo estão nos seus
directórios predefinidos, veja a opção
--admindir para saber como modificar as localizações
destes ficheiros.
- /var/lib/dpkg/available
- Lista dos pacotes disponíveis.
- /var/lib/dpkg/status
- Estados dos pacotes disponíveis. Este ficheiro contem
informação acerca de se um pacote está marcado para
remoção ou não, se está instalado ou
não, etc. Veja a secção
"INFORMAÇÃO ACERCA DE PACOTES" para mais
informação.
O ficheiro status é salvaguardado diariamente em
/var/backups. Pode ser útil se for perdido ou corrompido
devido a problemas com o sistema de ficheiros.
O formato e conteúdo de um pacote binário
está descrito em deb(5).
Durante o desempacotar e configurar o dpkg usa
vários nomes de ficheiros para objectivos de salvaguarda e
reposição. O seguinte é uma explicação
simplificada de como estes nomes de ficheiros são usados durante a
instalação de um pacote.
- *.dpkg-new
- Durante o desempacotar. o dpkg extrai os novos objectos do sistema
de ficheiros em pathname.dpkg-new (excepto para
directórios existentes ou links simbólicos a
directórios que são saltados), após isso estar feito
e após ter feito salvaguardas dos objectos antigos, os objectos
são renomeados para pathname.
- *.dpkg-tmp
- Durante o desempacotar. o dpkg cria salvaguardas dos antigos
objectos do sistema de ficheiros em pathname.dpkg-tmp
após extrair os novos objectos. Estas salvaguardas são
executadas seja ou ao renomear os directórios (mas apenas se
mudarem de tipo de ficheiro), uma nova cópia de link
simbólico para os links simbólicos, ou um hard link para
qualquer outro objecto de sistema de ficheiros, excepto para ficheiros de
configuração os quais não têm salvaguardas
porque serão processados num estágio posterior.
No caso de necessidade de reposição, estas
salvaguardas são usadas para restaurar os conteúdos
anteriores dos objectos. Estas são removidas automaticamente
após a instalação estar completa.
- *.dpkg-old
- Durante a configuração, quando instala a nova versão,
o dpkg consegue fazer uma salvaguarda do ficheiro de
configuração modificado anteriormente em
pathname.dpkg-old.
- *.dpkg-dist
- Durante a configuração, e ao manter a versão antiga,
o dpkg consegue fazer uma salvaguarda do novo ficheiro de
configuração não modificado em
pathname.dpkg-dist.
Qualquer operação que precise de acesso de escrita
à base de dados ou ao sistema de ficheiro é considerada uma
operação privilegiada que pode permitir escalada a root. Estas
operações nunca devem ser delegadas a um utilizador
não-confiável ou serem feitas em pacotes
não-confiáveis, pois isso pode permitir acesso de root ao
sistema.
Algumas operações (tais como
verificação do pacote) podem precisar de privilégios de
root para serem capazes de aceder a ficheiros no sistema de ficheiros que
caso contrário seriam inacessíveis devido a
restrição de permissões, mas por outro lado devem
funcionar normalmente e produzir mensagens apropriadas nesses casos.
Operações de consulta nunca devem requerer root, e
delegar a sua execução para utilizadores sem
privilégios via algum comando de ganhar-root pode ter
implicações de segurança (tais como escalada de
privilégios), por exemplo quando um paginador é invocado
automaticamente pela ferramenta.
Veja também a secção SECURITY dos
manuais dpkg-deb(1) e dpkg-split(1).
--no-act geralmente dá menos
informação do que poderia ser útil.
Para listar pacotes instalados relacionados com o editor
vi(1) (note que dpkg-query já não carrega o
ficheiro available por predefinição, e para isso deve
ser usada a opção dpkg-query --load-avail):
dpkg -l '*vi*'
Para ver as entradas em /var/lib/dpkg/available de dois
pacotes:
dpkg --print-avail vim neovim | less
Para procurar você próprio na listagem de
pacotes:
dpkg --print-avail | less
Para remover um pacote neovim instalado:
dpkg -r neovim
Para instalar um pacote, primeiro você precisa de
encontra-lo num arquivo ou disco de media. Quando se usa um arquivo baseado
numa estrutura pool, conhecer a área do arquivo e o nome do pacote
é suficiente para inferir o nome de de caminho:
dpkg -i /media/bdrom/pool/main/v/vim/vim_9.0.2018-1_amd64.deb
Para fazer uma cópia local do estado de
selecção de pacotes:
dpkg --get-selections >myselections
Você poderá transferir este ficheiro para outro
computador, e depois de ter actualizado lá o ficheiro
available com o seu frontend elegido de gestão de pacotes
(veja <https://wiki.debian.org/Teams/Dpkg/FAQ#set-selections> para
mais detalhes), por exemplo:
apt-cache dumpavail | dpkg --merge-avail
você pode instala-lo com:
dpkg --clear-selections
dpkg --set-selections <myselections
Note que isto não irá realmente instalar ou remover
nada, mas apenas definir o estado de selecção nos pacotes
requeridos. Você irá precisar de alguma outra
aplicação para realmente descarregar e instalar os pacotes
requeridos. Por exemplo, correr apt-get dselect-upgrade.
Normalmente, você irá descobrir que o
dselect(1) fornece um método mais conveniente de modificar os
estados de selecção de pacotes.
Podem ser ganhas funcionalidades adicionais ao instalar qualquer
um dos seguintes pacotes: apt, aptitude e
debsig-verify.
aptitude(8), apt(8), dselect(1),
dpkg-deb(1), dpkg-query(1), deb(5),
deb-control(5), dpkg.cfg(5), e dpkg-reconfigure(8).
Veja /usr/share/doc/dpkg/THANKS para a lista de pessoas que
contribuíram para o dpkg.
Américo Monteiro
Se encontrar algum erro na tradução deste documento,
por favor comunique para Américo Monteiro
<a_monteiro@gmx.com>.