dpkg(1) | dpkg suite | dpkg(1) |
NOME¶
dpkg - gestor de pacotes para Debian
SINOPSE¶
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 é 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.
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¶
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.
- Extract the control files of the new package.
- 2.
- If another version of the same package was installed before the new installation, execute prerm script of the old package.
- 3.
- Run preinst script, if provided by the package.
- 4.
- Unpack the new files, and at the same time back up the old files, so that if something goes wrong, they can be restored.
- 5.
- If another version of the same package was installed before the new installation, execute the postrm script of the old package. Note that this script is executed after the preinst script of the new package, because new files are written at the same time old files are removed.
- 6.
- Configure the package. See --configure for detailed information about how this is done.
- --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.
- Unpack the conffiles, and at the same time back up the old conffiles, so that they can be restored if something goes wrong.
- 2.
- Run postinst script, if provided by the package.
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.
- Run prerm script.
- 2.
- Remove the installed files.
- 3.
- Run postrm script.
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.
Note: Some configuration files might be unknown to dpkg because they are created and handled separately through the configuration scripts. In that case, dpkg won't remove them by itself, but the package's postrm script (which is called by dpkg), has to take care of their removal during purge. Of course, this only applies to files in system directories, not configuration files written to individual users' home directories.
Purgar um pacote consiste nos seguintes passos:
- 1.
- Remove the package, if not already removed. See --remove for detailed information about how this is done.
- 2.
- Run postrm script.
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.
Currently the only functional check performed is an md5sum verification of the file contents against the stored value in the files database. It will only get checked if the database contains the file md5sum. To check for any missing metadata in the database, the --audit command can be used. This is only an integrity check and should not be considered as any kind of security verification.
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.
Note: This command makes use of both the available file and the package selections.
- --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.
Note: This command makes use of both the available file and the package selections.
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 é:
- --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.
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.
Warning: These options are mostly intended to be used by experts only. Using them without fully understanding their effects may break your whole system.
- all:
- Turns on (or off) all force options.
- downgrade(*):
- Install a package, even if newer version of it is already installed.
Warning: At present dpkg does not do any dependency checking on downgrades and therefore will not warn you if the downgrade breaks the dependency of some other package. This can have serious side effects, downgrading essential system components can even make your whole system unusable. Use with care.
- configure-any:
- Configure also any unpacked but unconfigured packages on which the current package depends.
- hold:
- Allow automatic installs, upgrades or removals of packages even when marked to be on “hold”. Note: When these actions are requested explicitly, the “hold” package selection state always gets ignored.
- remove-reinstreq:
- Remove a package, even if it's broken and marked to require reinstallation. This may, for example, cause parts of the package to remain on the system, which will then be forgotten by dpkg.
- remove-protected:
- Remove, even if the package is considered protected (since dpkg 1.20.1). Protected packages contain mostly important system boot infrastructure or are used for custom system-local meta-packages. Removing them might cause the whole system to be unable to boot or lose required functionality to operate, so use with caution.
- remove-essential:
- Remove, even if the package is considered essential. Essential packages contain mostly very basic Unix commands, required for the packaging system, for the operation of the system in general or during boot (although the latter should be converted to protected packages instead). Removing them might cause the whole system to stop working, so use with caution.
- depends:
- Turn all dependency problems into warnings. This affects the Pre-Depends and Depends fields.
- depends-version:
- Don't care about versions when checking dependencies. This affects the Pre-Depends and Depends fields.
- breaks:
- Install, even if this would break another package (since dpkg 1.14.6). This affects the Breaks field.
- conflicts:
- Install, even if it conflicts with another package. This is dangerous, for it will usually cause overwriting of some files. This affects the Conflicts field.
- confmiss:
- Always install the missing conffile without prompting. This is dangerous, since it means not preserving a change (removing) made to the file.
- confnew:
- If a conffile has been modified and the version in the package did change, always install the new version without prompting, unless the --force-confdef is also specified, in which case the default action is preferred.
- confold:
- If a conffile has been modified and the version in the package did change, always keep the old version without prompting, unless the --force-confdef is also specified, in which case the default action is preferred.
- 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 been given, in which case it will use that to decide the final action.
- confask:
- If a conffile has been modified always offer to replace it with the version in the package, even if the version in the package did not change (since dpkg 1.15.8). If any of --force-confnew, --force-confold, or --force-confdef is also given, it will be used to decide the final action.
- overwrite:
- Overwrite one package's file with another's file.
- overwrite-dir:
- Overwrite one package's directory with another's file.
- overwrite-diverted:
- Overwrite a diverted file with an undiverted version.
- statoverride-add:
- Overwrite an existing stat override when adding it (since dpkg 1.19.5).
- statoverride-remove:
- Ignore a missing stat override when removing it (since dpkg 1.19.5).
- security-mac(*):
- Use platform-specific Mandatory Access Controls (MAC) based security when installing files into the filesystem (since dpkg 1.19.5). On Linux systems the implementation uses SELinux.
- unsafe-io:
- Do not perform safe I/O operations when unpacking (since dpkg 1.15.8.6).
Currently this implies not performing file system syncs before file
renames, which is known to cause substantial performance degradation on
some file systems, unfortunately the ones that require the safe I/O on the
first place due to their unreliable behaviour causing zero-length files on
abrupt system crashes.
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.
Warning: Using this option might improve performance at the cost of losing data, use with care.
- 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).
Warning: This can destroy your host system, use with extreme care.
- architecture:
- Process even packages with wrong or no architecture.
- bad-version:
- Process even packages with wrong versions (since dpkg 1.16.1).
- bad-path:
- PATH is missing important programs, so problems are likely.
- not-root:
- Try to (de)install things even when not root.
- bad-verify:
- Install a package even if it fails authenticity check.
- --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.
Note: Front-ends might call dpkg several times per invocation, which might run the hooks more times than expected.
- --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).
Warning: Take into account that depending on the excluded paths you might completely break your system, use with caution.
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.
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.
Hint: make sure the globs are not expanded by your 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] pathnameOs 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’
- The digest check failed, which means the file contents have changed. This is only an integrity check and should not be considered as any kind of security verification.
- 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/lib/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
- 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).
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
- 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).
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/lib/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/lib/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).
SECURITY¶
Any operation that needs write access to the database or the filesystem is considered a privileged operation that might allow root escalation. These operations must never be delegated to an untrusted user or be done on untrusted packages, as that might allow root access to the system.
Some operations (such as package verification) might need root privileges to be able to access files on the filesystem that would otherwise be inaccessible due to restricted permissions, but should otherwise work normally and produce appropriate messages in those cases.
Query operations should never require root, and delegating their execution to unprivileged users via some gain-root command can have security implications (such as privilege escalation), for example when a pager is automatically invoked by the tool.
See also the SECURITY section of the dpkg-deb(1) and dpkg-split(1) manual pages.
BUGS¶
--no-act geralmente dá menos informação do que poderia ser útil.
EXEMPLOS¶
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.
FUNCIONALIDADES ADICIONAIS¶
Podem ser ganhas funcionalidades adicionais ao instalar qualquer um dos seguintes pacotes: apt, aptitude e debsums.
VEJA TAMBÉM¶
aptitude(8), apt(8), dselect(1), dpkg-deb(1), dpkg-query(1), deb(5), deb-control(5), dpkg.cfg(5), e dpkg-reconfigure(8).
AUTORES¶
Veja /usr/share/doc/packages/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@gmx.com>.
2023-08-30 | 1.22.0 |