Manpages

NOME

dpkg - gestor de pacotes para Debian

RESUMO

dpkg [option...] action

AVISO

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.

DESCRIÇÃO

dpkg is a medium-level tool to install, build, remove and manage Debian packages. The primary and more user-friendly front-end for dpkg as a CLI (command-line interface) is apt(8) and as a TUI (terminal user interface) is aptitude(8). dpkg itself is controlled entirely via command line parameters, which consist of exactly one action and zero or more options. The action-parameter tells dpkg what to do and options control the behavior of the action in some way.

dpkg can also be used as a front-end to dpkg-deb(1) and dpkg-query(1). The list of supported actions can be found later on in the ACTIONS section. If any such action is encountered dpkg just runs dpkg-deb or dpkg-query with the parameters given to it, but no specific options are currently passed to them, to use any such option the back-ends need to be called directly.

INFORMAÇÃO ACERCA DE PACOTES

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.

Estados de pacote
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.

Estados de selecção de pacote
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.

Bandeiras (flags) do pacote

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.

ACÇÕES

-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.

To reconfigure a package which has already been configured, try the dpkg-reconfigure(8) command instead (which is part of the debconf project).

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

Supports long filenames in deb(5) archives (since 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

See dpkg-deb(1) for more information about the following actions, and other actions and options not exposed by the dpkg front-end.
-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

See dpkg-query(1) for more information about the following actions, and other actions and options not exposed by the dpkg front-end.
-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.

OPÇÕES

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:

If a conffile has been modified and the version in the package did change, always choose the default action without prompting. If there is no default action it will stop to ask the user unless --force-confnew or --force-confold is also given, in which case it will use that to decide the final action.

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:

Run maintainer scripts without chroot(2)ing into instdir even if the package does not support this mode of operation (since 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.

Be sure to give --no-act before the action-parameter, or you might end up with undesirable results (e.g. dpkg --purge foo --no-act will first purge package “foo” and then try to purge package ”--no-act”, even though you probably expected it to actually do nothing).

-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

Set the installation directory, which refers to the directory where packages are to be installed. instdir is also the directory passed to chroot(2) before running package’s installation scripts, which means that the scripts see instdir as a root directory. Defaults to «/».

--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

Set an invoke hook command to be run via “sh -c” before or after the dpkg run for the unpack, configure, install, triggers-only, remove and purge actions (since dpkg 1.15.4), and add-architecture and remove-architecture actions (since dpkg 1.17.19). This option can be specified multiple times. The order the options are specified is preserved, with the ones from the configuration files taking precedence. The environment variable DPKG_HOOK_ACTION is set for the hooks to the current dpkg action.

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.

The glob patterns use the same wildcards used in the shell, were ’*’ matches any sequence of characters, including the empty string and also ’/’. For example, «/usr/*/READ*» matches «/usr/share/doc/package/README». As usual, ’?’ matches any single character (again, including ’/’). And ’[’ starts a character class, which can contain a list of characters, ranges and complementations. See glob(7) for detailed information about globbing. Note: The current implementation might re-include more directories and symlinks than needed, in particular when there is a more specific re-inclusion, to be on the safe side and avoid possible unpack failures; future work might fix this.

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.

The filters are applied when unpacking the binary packages, and as such only have knowledge of the type of object currently being filtered (e.g. a normal file or a directory) and have not visibility of what objects will come next. Because these filters have side effects (in contrast to find(1) filters), excluding an exact pathname that happens to be a directory object like /usr/share/doc will not have the desired result, and only that pathname will be excluded (which could be automatically reincluded if the code sees the need). Any subsequent files contained within that directory will fail to unpack.

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:
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

Send machine-readable package status and progress information to the shell command’s standard input, to be run via “sh -c” (since dpkg 1.16.0). This option can be specified multiple times. The output format used is the same as in --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).

ESTADO À SAÍDA

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.

AMBIENTE

Ambiente externo
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

The program dpkg will execute when running a pager, which will be executed with «$SHELL -c», for example when displaying the conffile differences. If SHELL is not set, «sh» will be used instead. The DPKG_PAGER overrides the PAGER environment variable (since 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).

Ambiente interno
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

Defined by dpkg on the maintainer script environment to indicate which installation to act on (since dpkg 1.18.5). The value is intended to be prepended to any path maintainer scripts operate on. During normal operation, this variable is empty. When installing packages into a different instdir, dpkg normally invokes maintainer scripts using chroot(2) and leaves this variable empty, but if --force-script-chrootless is specified then the chroot(2) call is skipped and instdir is non-empty.

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).

FICHEIROS

/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

Statuses of available packages. This file contains information about whether a package is marked for removing or not, whether it is installed or not, etc. See section "INFORMATION ABOUT PACKAGES" for more info.

O ficheiro status é salvaguardado diariamente em /var/backups. Pode ser útil se for perdido ou corrompido devido a problemas com o sistema de ficheiros.

The format and contents of a binary package are described in deb(5).

Filesystem filenames
During unpacking and configuration dpkg uses various filenames for backup and rollback purposes. The following is a simplified explanation of how these filenames get used during package installation.
*.dpkg-new

During unpack, dpkg extracts new filesystem objects into pathname.dpkg-new (except for existing directories or symlinks to directories which get skipped), once that is done and after having performed backups of the old objects, the objects get renamed to pathname.

*.dpkg-tmp

During unpack, dpkg makes backups of the old filesystem objects into pathname.dpkg-tmp after extracting the new objects. These backups are performed as either a rename for directories (but only if they switch file type), a new symlink copy for symlinks, or a hard link for any other filesystem object, except for conffiles which get no backups because they are processed at a later stage.

In case of needing to rollback, these backups get used to restore the previous contents of the objects. These get removed automatically after the installation is complete.

*.dpkg-old

During configuration, when installing a new version, dpkg can make a backup of the previous modified conffile into pathname.dpkg-old.

*.dpkg-dist

During configuration, when keeping the old version, dpkg can make a backup of the new unmodified conffile into pathname.dpkg-dist.

SEGURANÇA

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).

BUGS

--no-act geralmente dá menos informação do que poderia ser útil.

EXEMPLOS

To list installed packages related to the editor vi(1) (note that dpkg-query does not load the available file anymore by default, and the dpkg-query --load-avail option should be used instead for that):

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

To remove an installed neovim package:

dpkg -r neovim

To install a package, you first need to find it in an archive or media disc. When using an archive based on a pool structure, knowing the archive area and the name of the package is enough to infer the pathname:

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.

Ordinarily, you will find that dselect(1) provides a more convenient way to modify the package selection states.

FUNCIONALIDADES ADICIONAIS

Additional functionality can be gained by installing any of the following packages: apt, aptitude and debsig-verify.

VEJA TAMBÉM

aptitude(8), apt(8), dselect(1), dpkg-deb(1), dpkg-query(1), deb(5), deb-control(5), dpkg.cfg(5), and dpkg-reconfigure(8).

AUTORES

Veja /usr/share/doc/dpkg/THANKS para a lista de pessoas que contribuíram para o dpkg.

TRADUÇÃO

Américo Monteiro

Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro <a_monteiro [AT] gmx.com>.