Usando o apt para instalar o mysql, o “espaço adicional em disco a ser usado” é 10x maior que o tamanho dos arquivos necessários. Como?

0

Eu vi isso antes com outros aplicativos, mas hoje eu notei isso com o mysql:

$ sudo apt install mysql-server
[...]
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 18.7 MB of archives.
After this operation, 161 MB of additional disk space will be used.

A compactação não pode ser responsável por nenhum tipo de diferença, pode?

    
por mblakesley 13.02.2018 / 08:57

2 respostas

2

mariadb-client-10.1 , um dos pacotes que serão instalados por esse comando, é 5,704kiB (em amd64). Ele é instalado em 45.347kB, aproximadamente oito vezes o tamanho, e praticamente em linha com a proporção de 18,7 / 161 que você vê.

Vamos extrair os arquivos e ver de onde vem:

$ ar x mariadb-client-10.1_10.1.26-0+deb9u1_amd64.deb
$ tar xJf data.tar.xz
$ du -shc usr/bin usr/share etc
45M     usr/bin
200K    usr/share
20K     etc
45M     total

Assim, podemos ver que o pacote é extraído muito próximo do tamanho postado. Tudo o que fizemos foi usar ferramentas de extração padrão, então não há nada incomum que apt esteja fazendo.

Podemos olhar um pouco mais de perto:

$ du -s usr/bin/mariabackup
18M     usr/bin/mariabackup
$ xz < usr/bin/mariabackup|wc -c
4542540

Assim, podemos ver que um único arquivo tem três vezes o tamanho do pacote e é compactado em um tamanho menor que o pacote sem nenhum esforço especial. Outros compactam ainda melhor e arquivos tar compactados são capazes de explorar mais redundância em vários arquivos contidos.

Então, sim, a compactação é responsável por todos os lugares perto dessa diferença.

    
por 13.02.2018 / 09:32
2

Isso é tudo até a compactação. Veja, por exemplo, o pacote mariadb-server-10.1 que contém 76.605 kB de arquivos em amd64 , mas compacta até 5,208,2 kB ...

Lembre-se de que a compactação usada aqui é xz em um tarball inteiro, portanto, a redundância entre os arquivos pode ser usada para reduzir o tamanho geral. Muitos dos binários enviados no pacote possuem seções comuns. Como Michael Homer 's answer mostra, até binários individuais compactam muito bem.

As informações usadas para apresentar os tamanhos antes da instalação são, por um lado, o valor dado em o campo" Installed-Size " nos meta-dados do pacote, que é medido quando o pacote é construído, e dá uma boa indicação do tamanho real do conteúdo dos pacotes, e por outro lado, o tamanho do arquivo baixado. O tamanho instalado não faz qualquer tentativa de contabilizar o espaço em disco temporário usado durante a instalação, apenas reflete os tamanhos dos arquivos contidos no pacote.

    
por 13.02.2018 / 09:31

Tags