Em 8 de maio deste ano, o Patrick anunciou a mudança nas extensões dos pacotes do Slackware, de tgz para txz. Mais do que uma mutança na extensão, foi mudado o compactador dos pacotes no Slackware, removendo o tradicional gzip para o uso do xz.

A mudança é transparente para os usuários do Slackware, mas para a distribuição, esta atitude permitirá que o Slackware continue a ser distribuído em um DVD de 4.7GB, ainda por muito tempo. Para se ter uma ideia, a última versão do Slackware (12.2) ocupa 3.9GB em tgz. Se compactada pelo xz, espera-se que ocupe algo entre 2,8GB a 3,1GB.

No momento, a versão current, com todas as atualizações e novos pacotes, ocupa não mais que 3,6GB, ou seja, 400MB menos que a versão anterior. A diferença somente não é maior pois 2,0GB destes pacotes são de fontes, as quais geralmente são distribuídas em bzip2.

O xz utiliza o algoritmo de compactação lzma, que é utilizado por padrão pelo utilitário 7-zip. Em suma, ele permite a compactação de arquivos em até três vezes menos tamanho que o gzip, além de uma descompactação relativamente rápida.

No Changelog da distribuição, o Patrick apresenta uma comparação na compactação com o gzip e o xz do pacote de fonte do kernel Linux, que descompactado ocupa 339.722.240 bytes. Fiz mais alguns testes para ter uma ideia melhor da questão. Segue abaixo a tabela de com as comparações:

Compact.

Tempo de

compact.

em segundos

Tempo de

descompac.

em segundos

Comparação

no tempo de

descompressão

Tamanho

Compactado

em bytes

Compact./

relação ao

original

Compact./

relação ao

gzip

gzip

24,148s

3,716s

100%

74.479.700

21,9%

100%

bzip2

1m48,430s

23,528s

633%

57.805.912

17,0%

77,6%

xz

5m49.511s

6,510s

175%

49.150.104

14,5%

66,0%


Como observado na tabela acima, o xv é muito lento na compressão, se comparado ao bzip2 e ao gzip. Isto não irá interferir no usuário do Slackware, a menos que este esteja fazendo seus próprios pacotes. Na descompactação, o xz é quase tão rápido quanto o gzip, enquanto que o bzip2, levou até seis vezes mais tempo neste aquivo de teste. Na taxa de compressão, o xz superou a todos os compactadores, sendo 9% superior ao bzip2 e 34%
superior ao gzip.

Quanto ao consumo de memória na descompactação, o gzip chegou a requisitar 4MB, em minha máquina, enquanto que o bzip2 algo em torno de 9MB, aproximadamente o dobro do gzip. Já o xz, consumiu quatro vezes mais memória que o gzip, aproximadamente 16MB, mas ainda assim é um consumo modesto se comparada às memórias das máquinas atuais e o benefício do gando no desempenho da Taxa de Compactação.

Esta combinação de baixo tempo de descompactação, alta taxa de compressão e baixo consumo de memória, é que faz do xz um ótimo candidato a compressor de pacotes para o Slackware.

Uma outra questão levantada na ocasião, foi quanto a possibilidade do Slackware criar uma extensão própria, como a exemplo da Debian (.deb) e da Red Hat (.rpm), mas esta sugestão já foi descartada pelo Patrick, pois acredita que é mais transparente manter o nome da extensão, como uma abreviação do processo de empacotamento do pacote (tar + xz = tgz, em cordo com o princípio KISS).