Para que serve o dpkg?


21

Minha pergunta é simples - quero saber mais sobre o dpkg - o que ele faz?


Isso foi editado pelo menos duas vezes para melhorar a clareza - do jeito que está, pode valer a pena mantê-lo aberto (desde que não seja uma duplicata), porque gerou pelo menos uma boa resposta.
Belacqua

1
você deve visitar primeiro: en.wikipedia.org/wiki/Dpkg
Pandya

Respostas:


17

Como já foi dito, dpkgé uma ferramenta de sistema de baixo nível para extrair, analisar, descompactar e instalar ou remover arquivos .deb. No entanto, é melhor usar Software Centreou Gdebiinstalar ou remover arquivos .deb que foram obtidos de outras fontes, porque esses dois programas têm resolução de dependência.

No entanto, o que não foi explicado é a anatomia de uma atualização usando dpkge apt-get. Se, por exemplo, chamamos apt-geta instalação cheese, a árvore de dependência é analisada e os arquivos necessários são buscados apt-get, os quais os transmitem dpkgpara extrair, analisar e instalar nos locais corretos e configurá-los de acordo com os scripts dentro deles.

Os scripts lidos dpkgdentro de cada arquivo .deb são importantes, pois fornecem informações ao programa sobre a instalação, remoção e configuração dos pacotes. Portanto, quando você olha para dentro, /var/log/dpkg.loghá muitos detalhes detalhados sobre 'gatilhos' e pacotes passando por vários estágios de descompactação e configuração. Em seu blog, Raphael Hertzog (que é o principal desenvolvedor e mantenedor do dpkgpacote Debian ) explica mais sobre os gatilhos do dpkg e sobre como dpkginspeciona e configura os pacotes.

Agora estamos chegando ao cerne do que dpkgfaz; ele habilmente lida com pacotes Debian, ao invés de suas dependências. Com dpkg-deb, por exemplo, você pode executar várias ações na análise e extração manual de arquivos dos arquivos .deb; veja man dpkg-debpara mais informações.

O status de cada pacote está listado /var/lib/dpkg/status, o qual pode ser usado greppara verificar um pacote específico. DpkgTambém pode ser chamado para reconfigurar pacotes específicos que foram configurados (consulte man dpkg-reconfigure):

sudo dpkg-reconfigure <package>

Ou faça uma configuração de todos os pacotes não configurados se houver um problema com uma atualização e a configuração de alguns pacotes ainda estiver pendente:

sudo dpkg --configure -a

Para um ótimo tutorial focado dpkge apt-get, consulte os capítulos 5 e 6 do Debian Handbook , que é a melhor discussão disponível. Entre man dpkgno seu terminal ou veja as páginas de manual do Ubuntu on-line para ver todas as opções disponíveis, como usar dpkg -lpara listar os pacotes atualmente instalados.


4

O dpkg é uma forma de linha de comando para instalar a partir de um .deb ou remover os pacotes já instalados. Por exemplo, se você tivesse um arquivo .deb em seu diretório pessoal, a execução dpkg -i yourpackage.debinstalará esse pacote para você. Acho isso útil para mim, porque às vezes, ao clicar em um arquivo .deb, ele carrega o Ubuntu Software Center, mas nunca o instala ou apresenta problemas.


4

Como sempre, o mancomando é um ótimo lugar para começar.
man dpkgpode fornecer todas as opções, no entanto:

O dpkg é um gerenciador de pacotes para sistemas baseados no Debian. Ele pode instalar, remover e criar pacotes, mas, diferentemente de outros sistemas de gerenciamento de pacotes, não pode baixar e instalar automaticamente pacotes e suas dependências.

Então, basicamente, é o apt-get sem resolução de dependência e é usado para instalar arquivos .deb.

No entanto, aviso: Desinstalar pacotes usando o dpkg, na maioria dos casos, NÃO é recomendado. É melhor usar um gerenciador de pacotes que lide com dependências, para garantir que o sistema esteja em um estado consistente.

Por exemplo, usando dpkg -r zipvocê pode remover o pacote zip, mas todos os pacotes que dependem dele ainda serão instalados e podem não funcionar mais corretamente.

Você pode ler um pouco mais sobre isso no guia do servidor e em outros lugares .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.