Como é possível que o dpkg não seja necessário para instalar pacotes deb?

2

As informações abaixo parecem enganosas. Estou confuso com o exemplo que eles dão que se você perder o dpkg (o programa que permite manipular arquivos .deb) você pode usar os outros comandos ar, tar e gzip para baixar o arquivo .deb para o próprio dpkg?

Se isso for verdade, o que há de tão especial sobre o dpkg que não está disponível com os outros comandos?

As a Debian system administrator, you will routinely handle .deb packages, since they contain consistent functional units (applications, documentation, etc.), whose installation and maintenance they facilitate. It is therefore a good idea to know what they are and how to use them. This chapter describes the structure and contents of “binary” and “source” packages. The former are .deb files, directly usable by dpkg, while the latter contain the source code, as well as instructions for building binary packages.

From: http://debian-handbook.info/browse/wheezy/packaging-system.html

5.1. Structure of a Binary Package The Debian package format is designed so that its content may be extracted on any Unix system that has the classic commands ar, tar, and gzip (sometimes xz or bzip2). This seemingly trivial property is important for portability and disaster recovery. Imagine, for example, that you mistakenly deleted the dpkg program, and that you could thus no longer install Debian packages. dpkg being a Debian package itself, it would seem your system would be done for... Fortunately, you know the format of a package and can therefore download the .deb file of the dpkg package and install it manually (see the “TOOLS” sidebar). If by some misfortune one or more of the programs ar, tar or gzip/xz/bzip2 have disappeared, you will only need to copy the missing program from another system (since each of these operates in a completely autonomous manner, without dependencies, a simple copy will suffice).

    
por BluePython 24.07.2014 / 22:31

4 respostas

5

If this is true, what is so special about dpkg that is not available with the other commands?

Os outros comandos não são substitutos do gerenciador de pacotes, é o que torna o dpkg tão especial. Você pode realmente extrair o conteúdo de todo o pacote e soltá-lo em seu diretório raiz, mas isso não significa que eles estarão funcionando corretamente. Você não tem como rastrear dependências, identificar qual pacote instalou quais arquivos, scripts de postagem / pré-instalação e remoção e muitos outros recursos interessantes que os gerenciadores de pacotes fornecem.

O que eles queriam dizer com esse parágrafo é que, no caso de você estragar tudo, você pode baixar os arquivos, extraí-los e recuperar o sistema, como substituto improvisado da ferramenta adequada:

This seemingly trivial property is important for portability and disaster recovery

Assim, a importância do DPKG é ótima, mas eles colocaram o failafes no lugar para que, em caso de desastre, você possa recuperar rapidamente.

    
por 27.07.2014 / 21:19
2

O Manual do Administrador da Debian diz:

Fortunately, you know the format of a package and can therefore download the .deb file of the dpkg package and install it manually...

Isso significa que arquivos deb podem ser baixados manualmente (ou copiados de uma mídia) e então instalados manualmente extraindo os arquivos do arquivo deb com tar, gzip, ... (caso o programa dpkg esteja faltando)

Você está perguntando:

If this is true, what is so special about dpkg that is not available with the other commands?

Do página de manual do dpkg :

dpkg is a tool to install, build, remove and manage Debian packages.

Do página man tar :

Tar stores and extracts files from a tape or disk archive.

Do gzip man page :

Gzip reduces the size of the named files using Lempel-Ziv coding (LZ77).

Então, em suma, o dpkg permite descompactar e extrair, mas também executa scripts de instalação, verifica dependências entre pacotes, remove pacotes, limpa arquivos de configuração, ... e muito mais.

    
por 27.07.2014 / 17:43
0

Isso significa que, se você remover dpkg , poderá fazer download do arquivo .deb de um repositório e extrair e instalar manualmente o arquivo dpkg .deb . Mas você deve usar dpkg para que o banco de dados do gerenciador de pacotes seja mantido. Usando ar e tar e gzip , o banco de dados do gerenciador de pacotes ( apt ) não é atualizado para refletir as alterações.

Para manter um sistema estável, use dpkg , a menos que seja absolutamente necessário.

    
por 27.07.2014 / 23:18
0

Basicamente, é assim que a configuração inicial é feita: todos os pacotes marcados com Essential e suas dependências são extraídos usando ar e tar de fora do sistema recém-instalado, em um novo diretório.

A árvore do sistema de arquivos resultante contém tudo o que é necessário para chroot e executa dpkg . A primeira chamada reinstala todos os pacotes Essential , sobrescrevendo os arquivos com o mesmo conteúdo e registrando os pacotes instalados.

    
por 15.06.2016 / 16:52