Manuais para a linha de comandos

Man » Manual dpkg online - documentação online detalhada para a página de manual dpkg

🌍
dpkg - gerenciador de pacotes para Debian

SINTAXE

dpkg [opção...] comando

AVISO

Este manual é destinado a usuários que desejam entender as opções de linha de comando e os estados de pacote de dpkg em mais detalhes do que o fornecido por dpkg --help.

Não deve ser usado por mantenedores de pacotes que desejam entender como dpkg instalará seus pacotes. As descrições do que dpkg faz ao instalar e remover pacotes são particularmente inadequadas.

DESCRIÇÃO

dpkg é uma ferramenta de nível intermediário para instalar, construir, remover e gerenciar pacotes Debian. A interface principal
e mais amigável para dpkg como uma CLI (interface de linha de comando) é [apt]({filename}../../apt)(8) e como uma
TUI (interface de usuário de terminal) é aptitude(8). O próprio dpkg é controlado inteiramente por meio de parâmetros de linha de comando, que consistem em exatamente um comando e zero ou mais opções. O parâmetro de comando diz a dpkg o que fazer e as opções controlam o comportamento do comando de alguma forma.

dpkg também pode ser usado como uma interface para dpkg-deb(1) e dpkg-query(1). A lista de comandos suportados pode ser encontrada posteriormente na seção COMANDOS. Se algum desses comandos for encontrado, dpkg simplesmente executa dpkg-deb ou dpkg-query com os parâmetros fornecidos, mas nenhuma opção específica é passada para eles; para usar qualquer opção, os back-ends devem ser chamados diretamente.

INFORMAÇÕES SOBRE PACOTES

dpkg mantém algumas informações úteis sobre os pacotes disponíveis. As informações são divididas em
três classes: estados, estados de seleção e flags. Esses valores devem ser alterados
principalmente com o dselect.

Estados de pacotes

não instalado

O pacote não está instalado em seu sistema.

arquivos-de-configuração

Apenas os arquivos de configuração ou o script postrm e os dados necessários para removê-los do pacote existem no sistema.

meio-instalado

A instalação do pacote foi iniciada, mas não foi concluída por algum motivo.

descompactado

O pacote está descompactado, mas não configurado.

meio-configurado

O pacote está descompactado e a configuração foi iniciada, mas ainda não foi concluída por algum motivo.

esperando-gatilhos

O pacote aguarda o processamento do gatilho por outro pacote.

gatilhos-pendentes

O pacote foi acionado.

instalado

O pacote está devidamente descompactado e configurado.

Estados de seleção de pacotes

instalar

O pacote está selecionado para instalação.

manter
Um pacote marcado para ser mantido é mantido na mesma versão, ou seja, nenhuma nova
instalação, atualização ou remoção automática será executada neles, a menos que essas ações sejam solicitadas
explicitamente, ou seja, permitido que sejam feitas automaticamente com a opção --force-hold.

deinstall

O pacote é selecionado para desinstalação (ou seja, desejamos remover todos os arquivos, exceto os arquivos de configuração).

purge

O pacote é selecionado para ser removido por completo (ou seja, desejamos remover tudo dos diretórios do sistema, inclusive os arquivos de configuração).

unknown

O estado de seleção do pacote é desconhecido. Um pacote que também está em um estado não instalado e com uma flag "ok" será ignorado na próxima vez que o banco de dados for atualizado.

Flags do pacote

ok

Um pacote marcado como "ok" está em um estado conhecido, mas pode precisar de processamento adicional.

reinstreq

Um pacote marcado como "reinstreq" está corrompido e requer reinstalação. Esses pacotes não podem ser removidos, a menos que seja forçado com a opção --force-remove-reinstreq.

COMANDOS

-i, --install arquivo-do-pacote...

Instala o pacote. Se a opção --recursive ou -R for especificada, arquivo-do-pacote deve se referir a um diretório.

A instalação consiste nas seguintes etapas:

     Extrai os arquivos de controle do novo pacote.

     Se outra versão do mesmo pacote foi instalada antes da nova instalação, executa o script "prerm" do pacote antigo.

     Executa o script "preinst", se fornecido pelo pacote.

     Descompacta os novos arquivos e, ao mesmo tempo, faz backup dos arquivos antigos, para que, se algo der errado, eles possam ser restaurados.

     Se outra versão do mesmo pacote foi instalada antes da nova instalação, executa o script "postrm" do pacote antigo. Observe que este script é executado após o script "preinst" do novo pacote, porque os novos arquivos são gravados ao mesmo tempo em que os arquivos antigos são removidos.

     Configura o pacote. Veja --configure para obter informações detalhadas sobre como isso é feito.

--unpack arquivo-do-pacote...

Descompacta o pacote, mas não o configura. Se a opção --recursive ou -R for especificada, arquivo-do-pacote deve se referir a um diretório.

Processará os triggers de Pré-Dependências, a menos que --no-triggers tenha sido especificado.

--configure pacote...|-a|--pending

Configura um pacote que foi descompactado, mas ainda não configurado. Se -a ou --pending for fornecido em vez de pacote, todos os pacotes descompactados, mas não configurados, serão configurados.

Para reconfigurar um pacote que já foi configurado, tente o comando dpkg-reconfigure(8) (que faz parte do projeto debconf).

A configuração consiste nas seguintes etapas:

     Descompacta os arquivos de configuração ("conffiles") e, ao mesmo tempo, faz backup dos arquivos de configuração antigos, para que eles possam ser restaurados se algo der errado.

     Executa o script "postinst", se fornecido pelo pacote.

Processará os triggers, a menos que --no-triggers tenha sido especificado.

--triggers-only pacote...|-a|--pending

Processa apenas os triggers (a partir do dpkg 1.14.17). Todos os triggers pendentes serão processados. Se nomes de pacotes forem fornecidos, apenas os triggers desses pacotes serão processados, exatamente uma vez, quando necessário. O uso desta opção pode deixar os pacotes nos estados incorretos de "triggers-awaited" e "triggers-pending". Isso pode ser corrigido posteriormente executando: dpkg --configure --pending.


-r, --remove package...|-a|--pending

Remove um pacote instalado. Isso remove tudo, exceto os arquivos de configuração e outros dados que são limpos pelo script postrm, o que pode evitar a necessidade de reconfigurar o pacote se ele for reinstalado posteriormente (os arquivos de configuração são arquivos de configuração listados no arquivo de controle DEBIAN/conffiles). Se não houver um arquivo de controle DEBIAN/conffiles nem um script DEBIAN/postrm, este comando é equivalente a chamar --purge. Se -a ou --pending for fornecido em vez de um nome de pacote, então todos os pacotes descompactados, mas marcados para serem removidos no arquivo /var/lib/dpkg/status, são removidos.

A remoção de um pacote consiste nas seguintes etapas:

     Executar o script `prerm`.

     Remover os arquivos instalados.

     Executar o script `postrm`.

Processará os acionadores, a menos que --no-triggers tenha sido especificado.

-P, --purge package...|-a|--pending

Limpa um pacote instalado ou já removido. Isso remove tudo, incluindo os arquivos de configuração e qualquer outra coisa limpa pelo script postrm. Se -a ou --pending for fornecido em vez de um nome de pacote, então todos os pacotes descompactados ou removidos, mas marcados para serem limpos no arquivo /var/lib/dpkg/status, são limpos.

Observação: alguns arquivos de configuração podem ser desconhecidos para o `dpkg` porque são criados e gerenciados separadamente por meio dos scripts de configuração. Nesse caso, o `dpkg` não os removerá
por conta própria, mas o script `postrm` do pacote (que é chamado pelo `dpkg`) deve cuidar da remoção deles durante a limpeza. É claro que isso se aplica apenas a arquivos em diretórios do sistema, não a arquivos de configuração gravados nos diretórios pessoais dos usuários.

A limpeza de um pacote consiste nas seguintes etapas:

     Remover o pacote, se já não estiver removido. Consulte --remove para obter informações detalhadas sobre como isso é feito.

     Executar o script `postrm`.

Processará os acionadores, a menos que --no-triggers tenha sido especificado.

-V, --verify [package-name...]

Verifica a integridade de package-name ou de todos os pacotes, se omitido, comparando as informações dos arquivos instalados por um pacote com as informações de metadados dos arquivos armazenadas no banco de dados dpkg (desde o dpkg 1.17.2). A origem das informações de metadados dos arquivos no banco de dados são os próprios pacotes binários. Esses metadados são coletados no momento da descompactação do pacote durante o processo de instalação.

Atualmente, o único teste funcional realizado é uma verificação de md5sum do conteúdo do arquivo em relação ao valor armazenado no banco de dados de arquivos. Ele só será verificado se o banco de dados contiver o md5sum do arquivo. Para verificar se há algum metadado ausente no banco de dados, o comando --audit pode ser usado. Este é apenas um teste de integridade e não deve ser considerado como qualquer tipo de verificação de segurança.

O formato de saída é selecionável com a opção --verify-format, que, por padrão, usa o formato rpm, mas isso pode mudar no futuro, e, portanto, os programas que analisam a saída deste comando devem ser explícitos sobre o formato que esperam.


-C, --audit [nome-do-pacote...]
Realiza verificações de sanidade e consistência do banco de dados para o nome-do-pacote ou para todos os pacotes, caso omitido (verificações por pacote desde o dpkg 1.17.10). Por exemplo, procura por pacotes que foram instalados apenas parcialmente no seu sistema ou que possuem dados de controle ou arquivos ausentes, incorretos ou obsoletos. O dpkg irá sugerir o que fazer para corrigir esses problemas.

--update-avail [arquivo-Packages]
--merge-avail [arquivo-Packages]
Atualiza a informação do dpkg e do dselect sobre quais pacotes estão disponíveis. Com o comando --merge-avail, a informação antiga é combinada com a informação do arquivo-Packages. Com o comando --update-avail, a informação antiga é substituída pela informação do arquivo-Packages. O arquivo-Packages distribuído com o Debian é simplesmente nomeado como «Packages». Se o argumento arquivo-Packages estiver faltando ou for nomeado como «-», ele será lido da entrada padrão (desde o dpkg 1.17.7). O dpkg mantém seu registro de pacotes disponíveis em /var/lib/dpkg/available.

Um comando mais simples para recuperar e atualizar o arquivo disponível é dselect update. Observe que este arquivo é em grande parte inútil se você não usar o dselect, mas um frontend baseado em APT: o APT tem seu próprio sistema para rastrear os pacotes disponíveis.

-A, --record-avail arquivo-pacote...
Atualiza a informação do dpkg e do dselect sobre quais pacotes estão disponíveis com a informação do pacote arquivo-pacote. Se a opção --recursive ou -R for especificada, arquivo-pacote deve se referir a um diretório.

--forget-old-unavail
Atualmente obsoleto e sem efeito, pois o dpkg esquecerá automaticamente os pacotes não instalados e indisponíveis (desde o dpkg 1.15.4), mas apenas aqueles que não contêm informações do usuário, como seleções de pacotes.

--clear-avail
Apaga a informação existente sobre quais pacotes estão disponíveis.

--get-selections [padrão-nome-do-pacote...]
Obtém a lista de seleções de pacotes e a escreve no stdout. Sem um padrão, os pacotes não instalados (ou seja, aqueles que foram previamente removidos) não serão exibidos.

--set-selections
Define as seleções de pacotes usando um arquivo lido da entrada padrão. Este arquivo deve estar no formato «pacote estado», onde estado é um de install, hold, deinstall ou purge. Linhas em branco e linhas de comentário que começam com ‘#’ também são permitidas.

O arquivo disponível precisa estar atualizado 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ções.

--clear-selections
Define o estado solicitado de cada pacote não essencial para deinstall (desde o dpkg 1.13.18). Isso tem como objetivo ser usado imediatamente antes de --set-selections, para desinstalar quaisquer pacotes que não estejam na lista fornecida a --set-selections.

--yet-to-unpack
Procura por pacotes selecionados para instalação, mas que, por algum motivo, ainda não foram instalados.

Observação: este comando utiliza tanto o arquivo disponível quanto as seleções de pacotes.

--predep-package
Imprime um único pacote que é o alvo de uma ou mais dependências prévias relevantes e que
não possui dependências prévias não satisfeitas.

Se um pacote desse tipo estiver presente, ele será impresso como uma entrada de arquivo Packages, que pode ser ajustada conforme necessário.

Observação: este comando utiliza tanto o arquivo disponível quanto as seleções de pacotes.

Retorna 0 quando um pacote é impresso, 1 quando nenhum pacote adequado está disponível e 2 em caso de erro.

--add-architecture architecture
Adiciona a arquitetura à lista de arquiteturas para as quais os pacotes podem ser instalados sem
usar --force-architecture (desde o dpkg 1.16.2). A arquitetura para a qual o dpkg foi compilado (ou seja, a
saída de --print-architecture) sempre faz parte dessa lista.

--remove-architecture architecture
Remove a arquitetura da lista de arquiteturas para as quais os pacotes podem ser instalados sem
usar --force-architecture (desde o dpkg 1.16.2). Se a arquitetura estiver sendo usada atualmente no banco de dados, a operação será recusada, exceto se --force-architecture
for especificado. A arquitetura para a qual o dpkg foi compilado (ou seja, a saída de --print-architecture) nunca pode ser removida dessa lista.

--print-architecture
Imprime a arquitetura dos pacotes que o dpkg instala (por exemplo, "i386").

--print-foreign-architectures
Imprime uma lista separada por novas linhas das arquiteturas extras para as quais o dpkg está configurado para permitir
a instalação de pacotes (desde o dpkg 1.16.2).

--assert-help
Fornece ajuda sobre as opções --assert-feature (desde o dpkg 1.21.0).

--assert-feature
Afirma que o dpkg oferece suporte ao recurso solicitado. Retorna 0 se o recurso for totalmente
suportado, 1 se o recurso for conhecido, mas o dpkg não puder fornecer suporte para ele ainda, e 2 se o
recurso for desconhecido. A lista atual de recursos que podem ser verificados é:

support-predepends
Suporta o campo Pre-Depends (desde o dpkg 1.1.0).

working-epoch
Suporta épocas em strings de versão (desde o dpkg 1.4.0.7).

long-filenames
Suporta nomes de arquivo longos em arquivos deb(5) (desde o dpkg 1.4.1.17).

multi-conrep
Suporta múltiplos campos Conflicts e Replaces (desde o dpkg 1.4.1.19).

multi-arch
Suporta campos e semântica multi-arch (desde o dpkg 1.16.2).

versioned-provides
Suporta Provides com versão (desde o dpkg 1.17.11).

protected-field
Suporta o campo Protected (desde o dpkg 1.20.1).

--validate-thing string
Valida se a string "thing" tem uma sintaxe correta (desde o dpkg 1.18.16). Retorna 0 se a
string for válida, 1 se a string for inválida, mas puder ser aceita em contextos flexíveis, e 2 se a
string for inválida. A lista atual de coisas que podem ser validadas é:

pkgname
Valida o nome do pacote fornecido (desde o dpkg 1.18.16).

trigname
Valida o nome do gatilho fornecido (desde o dpkg 1.18.16).

archname
Valida o nome da arquitetura fornecido (desde o dpkg 1.18.16).

version
Valida a versão fornecida (desde o dpkg 1.18.16).

--compare-versions ver1 op ver2
Compara números de versão, onde op é um operador binário. O dpkg retorna verdadeiro (0) se a condição especificada for satisfeita e falso (1) caso contrário. Existem dois grupos de operadores, que diferem na forma como tratam uma versão vazia (ver1 ou ver2). Estes tratam uma versão vazia como anterior a qualquer versão: lt le eq ne ge gt. Estes tratam uma versão vazia como posterior a qualquer versão: lt-nl le-nl ge-nl gt-nl. Estes são fornecidos apenas para compatibilidade com a sintaxe do arquivo de controle: < << <= = >= >> >. Os operadores < e > são obsoletos e não devem ser usados, devido à semântica confusa. Para ilustrar: 0.1 < 0.1 avalia para verdadeiro.

-?, --help
Exibe uma breve mensagem de ajuda.

--force-help
Fornece ajuda sobre as opções --force-thing.

-Dh, --debug=help
Fornece ajuda sobre as opções de depuração.

--version
Exibe informações sobre a versão do dpkg.

Quando usado com --robot, a saída será o número da versão do programa em formato numérico pontilhado, sem nova linha.

dpkg-deb commands
Consulte dpkg-deb(1) para obter mais informações sobre os seguintes comandos e outros comandos e opções não expostos pelo front-end do dpkg.

-b, --build directory [archive|directory]
Cria um pacote deb.

-c, --contents archive
Lista o conteúdo de um pacote deb.

-e, --control archive [directory]
Extrai informações de controle de um pacote.

-x, --extract archive directory
Extrai os arquivos contidos no pacote.

-X, --vextract archive directory
Extrai e exibe os nomes dos arquivos contidos em um pacote.

-f, --field archive [control-field...]
Exibe o(s) campo(s) de controle de um pacote.

--ctrl-tarfile archive
Emite o arquivo tar de controle contido em um pacote Debian.

--fsys-tarfile archive
Emite o arquivo tar do sistema de arquivos contido em um pacote Debian.

-I, --info archive [control-file...]
Mostra informações sobre um pacote.

dpkg-query commands
Consulte dpkg-query(1) para obter mais informações sobre os seguintes comandos e outros comandos e opções não expostos pelo front-end do dpkg.

-l, --list package-name-pattern...
Lista os pacotes que correspondem ao padrão fornecido.

-s, --status package-name...
Relata o status do pacote especificado.

-L, --listfiles package-name...
Lista os arquivos instalados no seu sistema a partir do nome do pacote.

-S, --search filename-search-pattern...
Pesquisa um nome de arquivo nos pacotes instalados.

-p, --print-avail package-name...
Exibe detalhes sobre o nome do pacote, conforme encontrado em /var/lib/dpkg/available. Os usuários de front-ends baseados em APT devem usar apt show package-name em vez disso.

OPTIONS

Todas as opções podem ser especificadas tanto na linha de comando quanto no arquivo de configuração do dpkg /etc/dpkg/dpkg.cfg ou em arquivos de fragmento (com nomes que correspondam a este padrão de shell '[0-9a-zA-Z_-]*') no diretório de configuração /etc/dpkg/dpkg.cfg.d/. Cada linha no arquivo de configuração é um opção (exatamente a mesma da opção da linha de comando, mas sem hífens iniciais) ou um comentário (se começar com '#').

--abort-after=number
Altera após quantos erros o dpkg irá abortar. O valor padrão é 50.

-B, --auto-deconfigure

Quando um pacote é removido, existe a possibilidade de que outro pacote instalado dependa do pacote removido. Especificar esta opção fará com que a reconfiguração automática do pacote que dependia do pacote removido seja realizada.

-Doctal, --debug=octal

Ativa a depuração. octal é formado pela combinação bit a bit dos valores desejados a partir da lista abaixo (observe que esses valores podem mudar em versões futuras). -Dh ou --debug=help exibe esses valores de depuração.

Número Descrição 1 Informações de progresso geralmente úteis 2 Invocação e status dos scripts de manutenção 10 Saída para cada arquivo processado 100 Muita saída para cada arquivo processado 20 Saída para cada arquivo de configuração 200 Muita saída para cada arquivo de configuração 40 Dependências e conflitos 400 Muita saída de dependências/conflitos 10000 Ativação e processamento de gatilhos 20000 Muita saída sobre gatilhos 40000 Quantidade ridícula de saída sobre gatilhos 1000 Muita informação inútil sobre, por exemplo, o diretório dpkg/info 2000 Quantidade absurda de informação inútil

--force-things
--no-force-things, --refuse-things

Força ou recusa (no-force e refuse significam a mesma coisa) a realizar algumas coisas. things é uma lista separada por vírgulas de coisas especificadas abaixo. --force-help exibe uma mensagem descrevendo elas. As coisas marcadas com (*) são forçadas por padrão.

Aviso: Estas opções são destinadas principalmente a serem usadas por especialistas. Usá-las sem
entender completamente seus efeitos pode danificar todo o seu sistema.

all:

Ativa (ou desativa) todas as opções de força.

downgrade(*):

Instala um pacote, mesmo que uma versão mais recente já esteja instalada.

Aviso: Atualmente, o dpkg não realiza nenhuma verificação de dependência em downgrades e, portanto,
não avisará se o downgrade quebrar a dependência de outro pacote. Isso pode
ter sérias consequências, o downgrade de componentes essenciais do sistema pode até tornar todo o seu
sistema inutilizável. Use com cuidado.

configure-any:

Configura também quaisquer pacotes descompactados, mas não configurados, dos quais o pacote atual depende.

hold:

Permite instalações, atualizações ou remoções automáticas de pacotes, mesmo quando marcados para estarem em “espera”. Observe: quando essas ações são solicitadas explicitamente, o estado de seleção do pacote “em espera” é sempre ignorado.

remove-reinstreq:

Remove um pacote, mesmo que esteja com problemas e marcado para exigir reinstalação. Isso pode, por exemplo, fazer com que partes do pacote permaneçam no sistema, que então serão esquecidas pelo dpkg.

remove-protected:

Remove, mesmo que o pacote seja considerado protegido (a partir do dpkg 1.20.1). Pacotes protegidos contêm principalmente infraestrutura essencial do sistema ou são usados para metapacotes personalizados. A remoção deles pode fazer com que todo o sistema fique incapaz de inicializar ou perder a funcionalidade necessária para operar, portanto, use com cautela.

remove-essential:

Remove, mesmo que o pacote seja considerado essencial. Pacotes essenciais contêm principalmente comandos Unix muito básicos, necessários para o sistema de empacotamento, para a operação do sistema em geral ou durante a inicialização (embora este último deva ser convertido em pacotes protegidos em vez disso). A remoção deles pode fazer com que todo o sistema pare de funcionar, portanto, use com cautela.


depends:
    Transforma todos os problemas de dependência em avisos. Isso afeta os campos Pre-Depends e Depends.

depends-version:
    Não se preocupa com as versões ao verificar as dependências. Isso afeta os campos Pre-Depends e Depends.

breaks:
    Instala, mesmo que isso cause problemas com outro pacote (a partir do dpkg 1.14.6). Isso afeta o campo Breaks.

conflicts:
    Instala, mesmo que haja conflito com outro pacote. Isso é perigoso, pois geralmente causará a sobrescrita de alguns arquivos. Isso afeta o campo Conflicts.

confmiss:
    Sempre instala o arquivo de configuração ausente sem solicitar confirmação. Isso é perigoso, pois significa não preservar uma alteração (remoção) feita no arquivo.

confnew:
    Se um arquivo de configuração foi modificado e a versão no pacote mudou, sempre instala a nova versão sem solicitar confirmação, a menos que `--force-confdef` também seja especificado, caso em que a ação padrão é preferida.

confold:
    Se um arquivo de configuração foi modificado e a versão no pacote mudou, sempre mantém a versão antiga sem solicitar confirmação, a menos que `--force-confdef` também seja especificado, caso em que a ação padrão é preferida.

confdef:
    Se um arquivo de configuração foi modificado e a versão no pacote mudou, sempre escolhe a ação padrão sem solicitar confirmação. Se não houver uma ação padrão, ele para de solicitar ao usuário, a menos que `--force-confnew` ou `--force-confold` também sejam fornecidos, caso em que ele usará isso para decidir a ação final.

confask:
    Se um arquivo de configuração foi modificado, sempre oferece a opção de substituí-lo pela versão no pacote, mesmo que a versão no pacote não tenha mudado (a partir do dpkg 1.15.8). Se alguma das opções `--force-confnew`, `--force-confold` ou `--force-confdef` também for fornecida, ela será usada para decidir a ação final.

overwrite:
    Substitui um arquivo de um pacote por outro.

overwrite-dir:
    Substitui um diretório de um pacote por um arquivo.

overwrite-diverted:
    Substitui um arquivo desviado por uma versão não desviada.

statoverride-add:
    Substitui uma substituição de estatística existente ao adicioná-la (a partir do dpkg 1.19.5).

statoverride-remove:
    Ignora uma substituição de estatística ausente ao removê-la (a partir do dpkg 1.19.5).

security-mac(*):
    Usa controles de segurança de acesso obrigatório (MAC) específicos da plataforma ao instalar arquivos no sistema de arquivos (a partir do dpkg 1.19.5). Em sistemas Linux, a implementação usa o SELinux.

unsafe-io:
    Não executa operações de E/S seguras ao descompactar (a partir do dpkg 1.15.8.6). Atualmente, isso implica não executar sincronizações do sistema de arquivos antes das renomeações de arquivos, o que comprovadamente causa uma degradação significativa do desempenho em alguns sistemas de arquivos, infelizmente aqueles que exigem a E/S segura em primeiro lugar devido ao seu comportamento não confiável, causando arquivos de comprimento zero em falhas abruptas do sistema.

Observação: Para o ext4, o principal responsável, considere usar, em vez disso, a opção de montagem nodelalloc,
que corrigirá tanto a degradação do desempenho quanto os problemas de segurança dos dados, este último,
ao impedir que o sistema de arquivos produza arquivos de comprimento zero em caso de falhas abruptas do sistema
com qualquer software que não execute sincronizações antes de renomeações atômicas.

Aviso: Usar esta opção pode melhorar o desempenho à custa da perda de dados, use com cuidado.

script-chrootless:
Executa scripts de manutenção sem usar chroot(2) no diretório de instalação, mesmo que o pacote não suporte
esse modo de operação (desde o dpkg 1.18.5).

Aviso: Isso pode destruir seu sistema host, use com extremo cuidado.

architecture:
Processa até mesmo pacotes com arquitetura incorreta ou sem arquitetura.

bad-version:
Processa até mesmo pacotes com versões incorretas (desde o dpkg 1.16.1).

bad-path:
O PATH está faltando programas importantes, então é provável que ocorram problemas.

not-root:
Tenta (des)instalar coisas mesmo quando não é executado como root.

bad-verify:
Instala um pacote mesmo que a verificação de autenticidade falhe.

--ignore-depends=package,...
Ignora a verificação de dependências para os pacotes especificados (na verdade, a verificação é realizada, mas apenas
são fornecidos avisos sobre conflitos, nada mais). Isso afeta os campos Pre-Depends, Depends e Breaks.

--no-act, --dry-run, --simulate
Faz tudo o que deve ser feito, mas não grava nenhuma alteração. Isso é usado para ver o que aconteceria com o
comando especificado, sem realmente modificar nada.

Certifique-se de fornecer --no-act antes do parâmetro do comando, caso contrário, você pode acabar com resultados indesejados
(por exemplo, dpkg --purge foo --no-act primeiro desinstalará o pacote "foo" e, em seguida, tentará desinstalar o pacote
"--no-act", embora você provavelmente esperasse que ele realmente não fizesse nada).

-R, --recursive
Lida recursivamente com todos os arquivos regulares correspondentes ao padrão \*.deb encontrados nos diretórios
especificados e em todos os seus subdiretórios. Isso pode ser usado com os comandos -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. Este é um alias de --refuse-downgrade.

--admindir=directory
Define o diretório administrativo como directory. Este diretório contém muitos arquivos que fornecem informações
sobre o status de pacotes instalados ou desinstalados, etc. O padrão é «/var/lib/dpkg» se a variável de ambiente
DPKG_ADMINDIR não estiver definida.

--instdir=directory
Define o diretório de instalação, que se refere ao diretório onde os pacotes serão instalados. instdir também é o
diretório passado para chroot(2) antes de executar os scripts de instalação do pacote, o que significa que os scripts
veem instdir como um diretório raiz. O padrão é «/» se a variável de ambiente DPKG_ROOT não estiver definida
(desde o dpkg 1.21.10).

--root=directory
Define o diretório raiz como directory, o que define o diretório de instalação como «directory» e o diretório
administrativo como «directory/var/lib/dpkg» se a variável de ambiente DPKG_ROOT não estiver definida (desde o
dpkg 1.21.10).

-O, --selected-only
Processa apenas os pacotes que estão selecionados para instalação. A marcação real é feita
com o dselect ou pelo dpkg, quando este lida com os pacotes. Por exemplo, quando um pacote é
removido, ele será marcado como selecionado para desinstalação.

-E, --skip-same-version
Não instale o pacote se a mesma versão e arquitetura do pacote já estiverem instaladas.

Desde o dpkg 1.21.10, a arquitetura também é levada em consideração, o que torna possível
realizar a atualização cruzada de pacotes ou instalar instâncias adicionais que podem ser
instaladas em conjunto com a mesma versão, mas arquiteturas diferentes.

--pre-invoke=comando
--post-invoke=comando
Define um comando de "hook" de invocação para ser executado via “sh -c” antes ou depois da
execução do dpkg para as ações de descompactar, configurar, instalar, acionar, remover e
limpar (desde o dpkg 1.15.4), e para as ações de adicionar arquitetura e remover arquitetura
(desde o dpkg 1.17.19). Esta opção pode ser especificada várias vezes. A ordem em que as
opções são especificadas é preservada, com as opções dos arquivos de configuração tendo
precedência. A variável de ambiente DPKG_HOOK_ACTION é definida para os "hooks" com a ação
atual do dpkg.

Os "hooks" de invocação não são executados quando --no-act é especificado, ou quando executado
como não-root sem --force-not-root.

Observação: As interfaces podem chamar o dpkg várias vezes por invocação, o que pode fazer com
que os "hooks" sejam executados mais vezes do que o esperado.

--path-exclude=padrão-glob
--path-include=padrão-glob
Define um padrão-glob como um filtro de caminho, seja excluindo ou re-incluindo caminhos
excluídos anteriormente que correspondam aos padrões especificados durante a instalação (desde
o dpkg 1.15.8).

Aviso: Tenha em mente que, dependendo dos caminhos excluídos, você pode danificar
completamente o seu sistema; use com cautela.

Os padrões-glob usam os mesmos curingas usados no 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 de costume, '?' corresponde a qualquer
caractere único (novamente, incluindo '/'). E '[' inicia uma classe de caracteres, que pode
conter uma lista de caracteres, intervalos e complementações. Consulte glob(7) para obter
informações detalhadas sobre "globbing". Observação: A implementação atual pode re-incluir
mais diretórios e links simbólicos do que o necessário, em particular quando há uma re-inclusão
mais específica, para garantir a segurança e evitar possíveis falhas de descompactação; o
trabalho futuro poderá corrigir isso.

Isso pode ser usado para remover todos os caminhos, exceto alguns caminhos específicos; um caso
típico é:

--path-exclude=/usr/share/doc/*
--path-include=/usr/share/doc/*/copyright

para remover todos os arquivos de documentação, exceto os arquivos de direitos autorais.

Essas duas opções podem ser especificadas várias vezes e intercaladas entre si. Ambas são
processadas na ordem fornecida, com a última regra que corresponder a um nome de arquivo tomando
a decisão.

Os filtros são aplicados ao descompactar os pacotes binários e, como tal, têm apenas conhecimento do tipo de objeto que está sendo filtrado (por exemplo, um arquivo normal ou um diretório) e não têm visibilidade do que objetos virão a seguir. Como esses filtros têm efeitos colaterais (em contraste com os filtros de find(1)), excluir um caminho exato que por acaso seja um objeto de diretório, como /usr/share/doc, não terá o resultado desejado, e apenas esse caminho será excluído (o que pode ser automaticamente reincluído se o código considerar necessário). Quaisquer arquivos subsequentes contidos nesse diretório não serão descompactados.

Dica: certifique-se de que os padrões curinga não sejam expandidos pelo seu shell.

--verify-format format-name

Define o formato de saída para o comando --verify (a partir do dpkg 1.17.2).

O único formato de saída suportado atualmente é rpm, que consiste em uma linha para cada caminho que falhou em algum teste. Essas linhas têm o seguinte formato:

missing [c] pathname [(error-message)]
?M5?????? [c] pathname

Os primeiros 9 caracteres são usados para relatar o resultado dos testes, seja um literal missing quando o arquivo não está presente ou seus metadados não podem ser obtidos, ou um dos seguintes caracteres especiais que relatam o resultado para cada teste:

‘?’ Implica que o teste não pôde ser realizado (falta de suporte, permissões de arquivo, etc.).

‘.’ Implica que o teste foi aprovado.

‘A-Za-z0-9’

Implica que um teste específico falhou. As seguintes posições e caracteres alfanuméricos são atualmente suportados:

1‘?’

Esses testes não são suportados atualmente e sempre serão ‘?’.

2‘M’

O teste de modo de arquivo falhou (a partir do dpkg 1.21.0). Como os metadados do caminho não são rastreados atualmente, este teste só pode ser emulado parcialmente por meio de uma heurística muito simples para caminhos que têm um hash conhecido, o que implica que devem ser arquivos regulares, onde o teste falhará se o caminho não for um arquivo regular no sistema de arquivos. Este teste nunca terá sucesso atualmente, pois não tem informações suficientes disponíveis.

3‘5’

O teste de hash falhou, o que significa que o conteúdo do arquivo foi alterado. Este é apenas um teste de integridade e não deve ser considerado como qualquer tipo de verificação de segurança.

49 ‘?’

Esses testes não são suportados atualmente e sempre serão ‘?’.

A linha é seguida por um espaço e um caractere de atributo. O seguinte caractere de atributo é suportado:

‘c’ O caminho é um arquivo de configuração.

Finalmente, seguido por outro espaço e o caminho.

No caso em que a entrada era do tipo "ausente" e o arquivo não estava realmente presente no sistema de arquivos, então a linha é seguida por um espaço e a mensagem de erro entre parênteses.

--status-fd n

Enviar informações de status e progresso do pacote legíveis por máquina para o descritor de arquivo n. Esta opção pode ser especificada várias vezes. As informações são geralmente um registro por linha, em um dos seguintes formatos:


status: package: status

Status do pacote alterado; o status é conforme o arquivo de status.

status: package : error : extended-error-message

Ocorreu um erro. Quaisquer novas linhas possíveis em extended-error-message serão convertidas em espaços antes da saída.

status: file : conffile-prompt : 'real-old' 'real-new' useredited distedited

O usuário está sendo solicitado a responder uma pergunta sobre um arquivo de configuração.

processing: stage: package

Enviado imediatamente antes que uma etapa de processamento seja iniciada. stage é um dos upgrade, install (ambos enviados antes da extração), configure, trigproc, disappear, remove, purge.

--status-logger=command

Envia informações de status e progresso do pacote legíveis por máquina para a entrada padrão do comando shell, para serem executadas via “sh -c” (a partir do dpkg 1.16.0). Esta opção pode ser especificada várias vezes. O formato de saída usado é o mesmo de --status-fd.

Os registradores de status não são executados quando --no-act é especificado, ou quando executado como não-root sem --force-not-root.

--log=filename

Registra as atualizações de status e ações em filename, em vez do /var/log/dpkg.log padrão. Se esta opção for fornecida várias vezes, o último nome de arquivo será usado. As mensagens de log são do formato:

AAAA-MM-DD HH:MM:SS startup type command

Para cada invocação do dpkg onde type é archives (com um comando de unpack ou install) ou packages (com um comando de configure, triggers-only, remove ou purge).

AAAA-MM-DD HH:MM:SS status state pkg installed-version

Para atualizações de status.

AAAA-MM-DD HH:MM:SS action pkg installed-version available-version

Para ações onde action é um dos install, upgrade, configure, trigproc, disappear, remove ou purge.

AAAA-MM-DD HH:MM:SS conffile filename decision

Para alterações de arquivos de configuração, onde decision é install ou keep.

--robot

Usa um formato de saída legível por máquina. Isso fornece uma interface para programas que precisam analisar a saída de alguns dos comandos que não emitem um formato de saída legível por máquina. Nenhuma localização será usada e a saída será modificada para facilitar a análise.

O único comando atualmente suportado é --version.

--no-pager

Desativa o uso de qualquer paginador ao exibir informações (a partir do dpkg 1.19.2).

--no-debsig

Não tente verificar as assinaturas dos pacotes.

--no-triggers

Não execute nenhum trigger nesta execução (a partir do dpkg 1.14.17), mas as ativações ainda serão registradas. Se usado com --configure package ou --triggers-only package, o postinst do pacote nomeado ainda será executado, mesmo que apenas uma execução de trigger seja necessária. O uso desta opção pode deixar os pacotes nos estados incorretos de triggers-awaited e triggers-pending. Isso pode ser corrigido posteriormente executando: dpkg --configure --pending.

--triggers

Cancela um --no-triggers anterior (a partir do dpkg 1.14.17).

STATUS DE SAÍDA

0 O comando solicitado foi executado com sucesso. Ou um comando de verificação ou asserção retornou
verdadeiro.

1 Uma verificação ou comando de asserção retornou falso.

2 Erro fatal ou irrecuperável devido ao uso inválido da linha de comando ou interações com o
sistema, como acessos ao banco de dados, alocações de memória, etc.

AMBIENTE

Ambiente externo

PATH

Esta variável deve estar definida no ambiente e apontar para os caminhos do sistema onde vários programas necessários podem ser encontrados. Se não estiver definida ou os programas não forem encontrados, o dpkg será abortado.

HOME

Se definida, o dpkg usará como o diretório a partir do qual lerá o arquivo de configuração específico do usuário.

TMPDIR

Se definida, o dpkg usará como o diretório no qual criar arquivos e diretórios temporários.

SHELL

O programa dpkg será executado ao iniciar um novo shell interativo ou ao gerar um comando por meio de um shell.

PAGER
DPKG_PAGER

O programa que o dpkg executará ao executar um paginador, que será executado com «$SHELL -c», por exemplo, ao exibir as diferenças do arquivo de configuração. Se o SHELL não estiver definido, «sh» será usado em vez disso.

O DPKG_PAGER substitui a variável de ambiente PAGER (a partir do dpkg 1.19.2). Se nenhum dos
programas apontados pelo DPKG_PAGER ou PAGER estiver presente, os seguintes programas serão tentados em
ordem (a partir do dpkg 1.22.12): o paginador padrão, [less]({filename}../../less)(1), more(1) e, finalmente,
[cat]({filename}../../cat)(1).

DPKG_COLORS

Define o modo de cor (a partir do dpkg 1.18.5). Os valores aceitos atualmente são: auto (padrão), sempre e nunca.

DPKG_NLS

Se definida, será usada para decidir se deve ativar o suporte de idioma nativo, também conhecido como suporte à internacionalização (ou i18n) (a partir do dpkg 1.22.7). Os valores aceitos são: 0 e 1 (padrão).

DPKG_DEBUG

Define a máscara de depuração (a partir do dpkg 1.21.10) a partir de um valor octal. As sinalizações atualmente aceitas são descritas na opção --debug.

DPKG_FORCE

Define as sinalizações de força (a partir do dpkg 1.19.5). Quando esta variável estiver presente, nenhum padrão de força interno será aplicado. Se a variável estiver presente, mas vazia, todas as sinalizações de força serão desativadas.

DPKG_ROOT

Se definida e as opções --instdir ou --root não forem especificadas, será usada como o diretório raiz do sistema de arquivos (a partir do dpkg 1.21.10).

DPKG_ADMINDIR

Se definida e as opções --admindir ou --root não forem especificadas, será usada como o diretório administrativo do dpkg (a partir do dpkg 1.20.0).

DPKG_FRONTEND_LOCKED

Definida por um gerenciador de pacotes para notificar o dpkg de que ele não deve adquirir o bloqueio da interface (a partir do dpkg 1.19.1).

DPKG_PATH_PASSWD

Define o caminho para o arquivo passwd do sistema. Este caminho é relativo ao diretório --root. O padrão é /etc/passwd.

A partir do dpkg 1.22.16.

DPKG_PATH_GROUP

Define o caminho para o arquivo de grupo do sistema. Este caminho é relativo ao diretório --root. O padrão é /etc/group.

A partir do dpkg 1.22.16.

Ambiente interno

LESS

Definida pelo dpkg como “-FRSXMQ”, se ainda não estiver definida, ao gerar um paginador (a partir do dpkg 1.19.2). Para alterar o comportamento padrão, esta variável pode ser predefinida para algum outro valor, incluindo uma string vazia, ou as variáveis PAGER ou DPKG_PAGER podem ser definidas para desativar opções específicas com «-+», por exemplo, DPKG_PAGER="less -+F".


DPKG_ROOT

Definido por dpkg no ambiente do script de manutenção para indicar em qual instalação atuar (desde dpkg 1.18.5). O valor deve ser prefixado a qualquer caminho em que os scripts de manutenção operem. Durante a operação normal, esta variável está vazia. Ao instalar pacotes em um diretório de instalação diferente, dpkg normalmente invoca os scripts de manutenção usando chroot(2) e deixa esta variável vazia, mas se --force-script-chrootless for especificado, a chamada chroot(2) será ignorada e esta variável será definida para instdir (que não estará vazia).

DPKG_ADMINDIR

Definido por dpkg no ambiente do subprocesso para indicar o diretório administrativo dpkg a ser usado (desde dpkg 1.16.0). Esta variável está sempre definida para o valor atual de --admindir.

DPKG_FORCE

Definido por dpkg no ambiente do subprocesso para todas as opções de força atualmente habilitadas, separadas por vírgulas (desde dpkg 1.19.5).

DPKG_SHELL_REASON

Definido por dpkg no shell gerado no prompt do arquivo de configuração para examinar a situação (desde dpkg 1.15.6). Valor válido atual: conffile-prompt.

DPKG_CONFFILE_OLD

Definido por dpkg no shell gerado no prompt do arquivo de configuração para examinar a situação (desde dpkg 1.15.6). Contém o caminho para o arquivo de configuração antigo.

DPKG_CONFFILE_NEW

Definido por dpkg no shell gerado no prompt do arquivo de configuração para examinar a situação (desde dpkg 1.15.6). Contém o caminho para o novo arquivo de configuração.

DPKG_HOOK_ACTION

Definido por dpkg no shell gerado ao executar uma ação de hook (desde dpkg 1.15.4). Contém a ação dpkg atual.

DPKG_RUNNING_VERSION

Definido por dpkg no ambiente do script de manutenção para a versão da instância dpkg em execução (desde dpkg 1.14.17).

DPKG_MAINTSCRIPT_PACKAGE

Definido por dpkg no ambiente do script de manutenção para o nome do pacote (não qualificado pela arquitetura) que está sendo processado (desde dpkg 1.14.17).

DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT

Definido por dpkg no ambiente do script de manutenção para a contagem de referências do pacote, ou seja, o número de instâncias de pacote com um estado maior que não instalado (desde dpkg 1.17.2).

DPKG_MAINTSCRIPT_ARCH

Definido por dpkg no ambiente do script de manutenção para a arquitetura para a qual o pacote foi compilado (desde dpkg 1.15.4).

DPKG_MAINTSCRIPT_NAME

Definido por dpkg no ambiente do script de manutenção para o nome do script em execução, um de preinst, postinst, prerm ou postrm (desde dpkg 1.15.7).

DPKG_MAINTSCRIPT_DEBUG

Definido por dpkg no ambiente do script de manutenção para um valor ('0' ou '1') indicando se a depuração foi solicitada (com a opção --debug) para os scripts de manutenção (desde dpkg 1.4).

ARQUIVOS

/etc/dpkg/dpkg.cfg.d/[0-9a-zA-Z_-]*

Arquivos de fragmento de configuração (desde dpkg 1.15.4).


/etc/dpkg/dpkg.cfg

Arquivo de configuração com opções padrão.

/var/log/dpkg.log

Arquivo de log padrão (veja /etc/dpkg/dpkg.cfg e a opção --log).

Os outros arquivos listados abaixo estão em seus diretórios padrão; veja a opção --admindir para saber como alterar os locais desses arquivos.

/var/lib/dpkg/available

Lista de pacotes disponíveis.

/var/lib/dpkg/status

Status dos pacotes disponíveis. Este arquivo contém informações sobre se um pacote está marcado para remoção ou não, se está instalado ou não, etc. Veja a seção "INFORMAÇÕES SOBRE PACOTES" para mais informações.

O arquivo de status é feito backup diariamente em /var/backups. Pode ser útil se for perdido ou corrompido devido a problemas de sistema de arquivos.

O formato e o conteúdo de um pacote binário são descritos em deb(5).

Nomes de arquivos do sistema de arquivos

Durante a extração e configuração, o dpkg usa vários nomes de arquivos para fins de backup e reversão. O seguinte é uma explicação simplificada de como esses nomes de arquivos são usados durante a instalação de um pacote.

*.dpkg-new

Durante a extração, o dpkg extrai novos objetos do sistema de arquivos para o caminho pathname.dpkg-new (exceto para diretórios existentes ou links simbólicos para diretórios, que são ignorados). Após isso, e depois de fazer backups dos objetos antigos, os objetos são renomeados para pathname.

*.dpkg-tmp

Durante a extração, o dpkg faz backups dos objetos antigos do sistema de arquivos em pathname.dpkg-tmp, após extrair os novos objetos. Esses backups são feitos como uma renomeação para diretórios (mas apenas se o tipo de arquivo for alterado), uma cópia de link simbólico para links simbólicos ou um link físico para qualquer outro objeto do sistema de arquivos, exceto para arquivos de configuração, que não são armazenados em backup porque são processados em um estágio posterior.

Em caso de necessidade de reverter, esses backups são usados para restaurar o conteúdo anterior dos objetos. Eles são removidos automaticamente após a conclusão da instalação.

*.dpkg-old

Durante a configuração, ao instalar uma nova versão, o dpkg pode fazer um backup do arquivo de configuração modificado anterior em pathname.dpkg-old.

*.dpkg-dist

Durante a configuração, ao manter a versão antiga, o dpkg pode fazer um backup do novo arquivo de configuração não modificado em pathname.dpkg-dist.

SEGURANÇA

Qualquer operação que precise de acesso de gravação ao banco de dados ou ao sistema de arquivos é considerada uma operação privilegiada que pode permitir a escalada de privilégios de root. Essas operações nunca devem ser delegadas a um usuário não confiável ou realizadas em pacotes não confiáveis, pois isso pode permitir que um usuário obtenha acesso de root ao sistema.

Algumas operações (como a verificação de pacotes) podem precisar de privilégios de root para poder acessar arquivos no sistema de arquivos que, de outra forma, seriam inacessíveis devido a permissões restritas, mas, caso contrário, devem funcionar normalmente e produzir mensagens apropriadas nesses casos.

Operações de consulta nunca devem exigir root, e delegar sua execução a usuários não privilegiados por meio de algum comando "gain-root" pode ter implicações de segurança (como escalada de privilégios), por exemplo, quando um visualizador de página é invocado automaticamente pela ferramenta.


Consulte também a seção SEGURANÇA das páginas de manual dpkg-deb(1) e dpkg-split(1).

BUGS

--no-act geralmente fornece menos informações do que poderiam ser úteis.

EXEMPLOS

Para listar os pacotes instalados relacionados ao editor vi(1) (observe que dpkg-query não carrega mais o arquivo disponível por padrão, e a opção dpkg-query --load-avail deve ser usada em vez disso para isso):

dpkg -l '*vi*'

Para ver as entradas em /var/lib/dpkg/available de dois pacotes:

dpkg --print-avail vim neovim | less

Para pesquisar a listagem de pacotes por conta própria:

dpkg --print-avail | less

Para remover um pacote neovim instalado:

dpkg -r neovim

Para instalar um pacote, você primeiro precisa encontrá-lo em um arquivo ou mídia. Ao usar um arquivo baseado em uma estrutura de pool, saber a área do arquivo e o nome do pacote é suficiente para inferir o caminho:

dpkg -i /media/bdrom/pool/main/v/vim/vim_9.0.2018-1_amd64.deb

Para fazer uma cópia local dos estados de seleção de pacotes:

dpkg --get-selections >myselections

Você pode transferir este arquivo para outro computador e, depois de atualizar o arquivo disponível lá com o front-end de gerenciador de pacotes de sua preferência (veja [https://wiki.debian.org/Teams/Dpkg/FAQ#set-selections] para obter mais detalhes), por exemplo:

apt-cache dumpavail | dpkg --merge-avail

você pode instalá-lo com:

dpkg --clear-selections
dpkg --set-selections <myselections

Observe que isso não instalará ou removerá nada, mas apenas definirá o estado de seleção dos pacotes solicitados. Você precisará de outro aplicativo para realmente baixar e instalar os pacotes solicitados. Por exemplo, execute apt-get dselect-upgrade.

Normalmente, você descobrirá que dselect(1) fornece uma maneira mais conveniente de modificar os estados de seleção de pacotes.

FUNCIONALIDADE ADICIONAL

Funcionalidades adicionais podem ser obtidas instalando qualquer um dos seguintes pacotes: apt, aptitude e 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) e dpkg-reconfigure(8).

AUTORES

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