Também conhecido como tarball, um arquivo tar.gz é uma coleção de documentos acoplados em um só arquivo (tar), compressados (gz) por meio do gzip, similar ao zip, mas com ganhos de compatibilidade com Linux e preservação de atributos de arquivo.
Os processos de compactação e descompactação, e todos os outros possíveis, são feitos no terminal do Linux. Aliás, nós temos um guia completo para trabalhar com arquivos usando o comando tar.
Além de tarefas mais básicas, é possível instalar programas no Linux que vêm compressados em formato tar.gz. Isso porque a extensão é muito utilizada para armazenar código fonte devido à eficiência e à compatibilidade.
Você chegou até aqui porque não sabe como fazer isso? Sem problemas: está no lugar certo! Neste post, ensinamos a proceder com a instalação de pacotes tar.gz em poucos passos. Vamos começar?
Um pouco da origem do formato tar
O surgimento do tar aconteceu em janeiro de 1979, época em que o Linux estava longe de ser até mesmo um projeto, e foi projetado como utilitário para escrever vários arquivos em fitas (tapes), isto é, tape (t) archives (ar).
Longe de cair em obsolescência com o fim das fitas na tecnologia contemporânea, os arquivos tar — e este artigo não deixa de comprovar isso — continuam populares, ainda mais por parte da comunidade developer.
Por que os desenvolvedores costumam usar tarball? De acordo com os próprios especialistas anônimos que se propuseram a explicar o “fenômeno”, os motivos são:
- performance: é possível obter resultados bem satisfatórios de compressão de dados;
- funcionalidades: tar armazena permissões dentro do metadata do arquivo, assegurando a preservação dos atributos do arquivo; e
- compatibilidade: mencionada mais de uma vez até aqui, tar é compatível com Linux, devido à sua natureza no Unix, e com outros sistemas populares, como Android, e distribuições mais antigas.
Portanto é certo que você, se desejar trabalhar com programação um dia, provavelmente vai se deparar com processos envolvendo tarball — pesquise por tutoriais de linguagem R e Python e veja por si próprio.
Inclusive, é o formato indicado para distribuição de source code no livro LPI Linux Certification in a Nutshell: A Desktop Quick Reference, de Jeffrey Dean, ótima referência para quem busca pela certificação LPI (Linux Professional Institute).
Diferença entre tar.gzip e zip
O conceito entre gzip e zip é basicamente o mesmo; não por acaso ambos são frequentemente comparados. Já falamos que a extensão tar, apesar de seus mais de 40 anos, se destaca pela eficiência e performance em relação a muitas outras, incluindo o zip.
A questão da compatibilidade pesa ainda mais quando tar e zip são colocados sobre a mesa. Zip é nativo do MS-DOS e não é software livre (foi desenvolvido comercialmente pela PKWARE), o que trouxe muitos problemas ligados à patente.
Na época, o gzip foi a solução de software livre lançada sem uso da patente zip e com funcionamento mais eficaz, norteado pelo princípio de “fazer algo e fazê-lo bem”; e, logo de início, viabilizou incontáveis projetos — e continua viabilizando até hoje.
Veja também esse guia completo para instalar esse tipo de arquivo.
Como instalar tar.gz no Linux
Você deseja instalar algum programa no GitHub, por exemplo, mas o arquivo não é distribuído em formatos mais convencionais, como .deb e .rpm, e sim em tar.gz, e é a sua única opção. O que fazer?
Até aqui, procuramos entender o que leva a isso; agora, vamos deixar de encarar o tar.gz como problema, pois aprenderemos a instalar pacotes em qualquer distribuição baseada em Linux.
Como você já deve ter notado, existe uma série de variantes do tar, como tar.xz e tar.bz2. Não explicaremos a diferença entre elas aqui, porém, quanto da instalação e de outros procedimentos próprios das variantes, digite o comando man tar no seu terminal.
Extração de tar.gz
Voltando ao “suposto” programa que você baixou do GitHub, chamado software.ver_7.0.tar.gz, e que se encontra no diretório Downloads.
Abra o terminal e acesse o diretório em questão e descompacte o arquivo tar.gz usando o comando tar com a flag -zxvf. Só elucidando:
- z = filtra o arquivo por meio do gzip;
- x = extrai itens do arquivo;
- v = verbose;
- f = cria arquivo com o nome especificado.
Exemplo de uso do comando:
cd Downloads tar -zxvf software.ver_7.0.tar.gz
Agora há uma pasta no diretório Downloads com o mesmo nome do arquivo tar.gz, correto? Você pode movê-la usando o comando sudo mv software.ver_7.0/ /opt/ (recomenda-se o diretório opt porque ele é acessível a todos os usuários) ou continuar a partir do diretório atual, mesmo.
Instalando do arquivo tar.gz descompactado
Explorando o novo diretório, busque por um arquivo que cujo nome é INSTALL, INSTALL.txt ou README (ou algo similar). No terminal, basta usar o comando ls e uma lista de objetos será exibida. Supondo-se que encontre o arquivo INSTALL, abra-o com o xdg-open:
xdg-open INSTALL
O arquivo em si tem as instruções para prosseguir com o processo de instalação, que normalmente são três:
./configure make sudo make install
Quando há dependências necessárias, a primeira etapa, configure, retorna uma lista com as dependências que estão faltando. No caso, temos como alternativa substituir “make install” por “checkinstall”.
O procedimento não funcionou?
Como em qualquer outros procedimento de instalação, o processo acima é suscetível a falhas e elas são bem comuns. Por isso, a leitura do arquivo INSTALL (ou README) é importante, pois é bem provável que alguma instrução alternativa a ser usada mediante falhas.
Não encontrou nenhuma solução no arquivo? Verificou todas as dependências e o problema persiste? É possível que se trate de um erro comum e já solucionado na comunidade, então a sugestão é pesquisar em fóruns (procure não se limitar às páginas em português); só copiar o erro no Google.
Guardou as dicas? Esperamos que a partir de agora instalar tar.gz não seja um obstáculo, e sim mais um método simples de instalação disponível no Linux. Quer compartilhar alguma experiência para complementar o artigo? Fique à vontade para deixar comentários.
No mais, saiba que temos outras diversas dicas (inclusive de nível avançado) no curso Profissionais Linux. Assista à aula gratuita para ver como o aprendizado em Linux não precisa ser complexo!