dpkg - gestor de pacotes para Debian
dpkg [
option...]
action
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 instalado, tente usar o
comando dpkg-reconfigure(8).
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. Remover o pacote, se não estiver já removido. Veja
--remove para informação detalhada acerca de como
isto é feito.
2. Correr 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.
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.
-
-b, --build directory
[archive|directory]
- Compila um pacote deb.
-
-c, --contents archive
- Lista o conteúdo de um pacote deb.
-
-e, --control archive
[directory]
- Extrai informação-controle de um pacote.
-
-x, --extract archive
directory
- Extrai os ficheiros contidos por um pacote.
-
-X, --vextract archive
directory
- Extrai e mostra os nomes de ficheiros contidos por um
pacote.
-
-f, --field archive
[control-field...]
- Mostra campo(s) de controle de um pacote.
-
--ctrl-tarfile archive
- Resulta o ficheiro tar de controle contido num pacote
Debian.
-
--fsys-tarfile archive
- Resulta o ficheiro tar de sistema de ficheiros contido num
pacote Debian.
-
-I, --info archive
[control-file...]
- Mostra informação acerca de um pacote.
- 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.
-
-l, --list
package-name-pattern...
- Lista pacotes que correspondem ao padrão dado.
-
-s, --status package-name...
- Reporta estado do pacote especificado.
-
-L, --listfiles package-name...
- Lista ficheiros instalados no seu sistema a partir de
package-name.
-
-S, --search
filename-search-pattern...
- Procura por um nome de ficheiro a partir de pacotes
instalados.
-
-p, --print-avail package-name...
- Mostra detalhes acerca de package-name, como
encontrado em /var/lib/dpkg/available. Os utilizadores de frontends
baseados no APT devem usar apt show package-name em vez
disto.
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 par ao 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,
purge, add-architecture e remove-architecture
dpkg (desde dpkg 1.15.4; 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 alterou.
- 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: package: status
- Status do pacote alterado; status está como
no ficheiro de status.
-
status: package : error :
extended-error-message
- Ocorreu um erro. Quaisquer possíveis novas linhas em
extended-error-message irão ser convertidas para
espaços antes do resultado.
-
status: file : conffile-prompt :
'real-old ' 'real-new' useredited
distedited
- Está a ser perguntado ao utilizador uma
questão de ficheiro de configuração.
-
processing: stage: package
- Enviado apenas antes de um estado de processamento
começar. stage é um de upgrade, install
(ambos enviados antes do desempacotamento), configure,
trigproc, disappear, remove, purge.
-
--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:
- YYYY-MM-DD HH:MM:SS startup type
command
- Para cada invocação do dpkg onde type
é archives (com um command de unpack ou
install) ou packages (com um command de
configure, triggers-only, remove ou
purge).
- YYYY-MM-DD HH:MM:SS status state pkg
installed-version
- Par actualizações de mudança de
estado.
- YYYY-MM-DD HH:MM:SS action pkg
installed-version available-version
- Para acções onde action é um de
install, upgrade, configure, trigproc,
disappear, remove ou purge.
- YYYY-MM-DD HH:MM:SS conffile filename
decision
- Para alterações de conffile onde
decision ou é install ou é keep.
- --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.
- PAGER
- DPKG_PAGER
- 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).
--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 elvis vim | less
Para procurar você próprio na listagem de pacotes:
less /var/lib/dpkg/available
Para remover um pacote elvis instalado:
dpkg -r elvis
Para instalar um pacote, primeiro você precisa de encontra-lo num arquivo
ou CDROM. O ficheiro
available mostra que o pacote vim está na
secção
editors:
cd /media/cdrom/pool/main/v/vim
dpkg -i vim_4.5-3.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
ou com o dpkg 1.17.6 e anteriores:
avail=$(mktemp)
apt-cache dumpavail> "$avail"
dpkg --merge-avail "$avail"
rm "$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
debsums.
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 <
[email protected]>.