Ao instalar programas no Linux temos diversas maneiras. Mas hoje é cada vez mais forte o uso de pacotes. Antigamente a compilação era muito usada. Mas com a necessidade de se instalar, administrar, remover e atualizar rapidamente fica difícil administrar o sistema e manter fontes em disco, já que para remover é necessário ter os arquivos para o famoso make uninstall.
Com esse cenário o gerenciamento de pacotes tornou cada vez mais utilizado e hoje está presente nas distribuições Linux.
Porém não há um padrão único e padrão adotado pelas distribuições. O RPM já foi bem grande, porém com o crescimento do uso do Debian, o padrão DEB juntamente com "salvador da pátria" APT-GET explodiu se tornando muito utilizado. Ainda há um terceiro padrão utilizado, o TGZ do Slackware. Esses são os 3 mais utilizados hoje.
Mas quais as vantagens e desvantagens de cada um? Porque o DEB está se tornando cada vez mais forte e utilizado? Porque RPM e DEB Não se tornam apenas um? Essa é a pergunta que a comunidade Linux faz todos dias.
RPM
O Red Hat Package Manager foi o padrão criado pela Red Hat e inclusive foi portado para outros sistemas como Netware e AIX. Ele consiste em um banco de dados com todas as informações dos pacotes instalados no sistema como versão, tamanho, dependências, pacotes providos, etc.
Como o Red Hat originou várias distribuições derivadas, como Mandriva, Fedora e outras, o seu uso é muito grande entre as distribuições Linux. Porém possui um problema grave: uma ferramenta avançada e, principalmente padronizada para gerenciar o banco de dados e resolver dependências.
Cada distribuição adota seu padrão. Algumas usam o YUM, outras URPMI, o Suse o YAST, outras APT-RPM... Nada de padrão. O funcionamento é bem parecido entre elas, mas o padrão poderia ajudar mais a desenvolver a ferramenta do que apenas formas paralelas de uso. O YUM trabalha muito bem, porém tem um problema grave de lentidão. Ao menos é o que se nota com o Fedora 8 e o Pirut (uma ferramenta um pouco carente de opções, diga-se de passagem), onde a verificação de dependências é um pouco lenta e o serviço Yum Update pode causar alguns travamentos do banco de dados. O URPMI da Mandriva funciona muito bem e rápido. Poderia ser adotado pelas distribuições RPM. Seu funcionamento com o Centro de Controle do Mandriva também é muito bom.
O Suse com o YAST também faz muita coisa boa e o gerenciamento parece um pouco o Synaptic. O APT-RPM está caindo cada vez mais em esquecimento depois da fusão Conectiva com a Mandrake.
Mas ambos não tem o potencial do APT-GET em conjunto com o Synaptic utilizado pelo Debian e derivados.
DEB
Similar ao RPM, também trabalha com o gerenciamento através de um banco de dados de todos os pacotes disponíveis. Porém possui um diferencial que está fazendo crescer cada vez mais e ser um forte adversário ao RPM: APT-GET + Synaptic. Essa dupla vem conquistando cada vez mais fãs e uma coisa é unânime: é padrão para as distribuições baseadas em Debian. Há aquelas que utilizam o Adept que também trabalha muito bem. Mas no fundo é o APT-GET trabalhando. Com isso, hoje é muito mais comum ver sites disponibilizar pacotes DEB e até mesmo repositórios para distribuições Debian. Com esse padrão, o formato está ganhando cada vez mais força.
Atualizações fáceis, remoção de pacotes desnecessários, resolução de pacotes quebrados, opção de forçar determinada versão do pacote quando há várias disponíveis, prender uma versão dos pacotes para evitar que sejas atualizados quando há risco de incompatibilidade com alguns programas, salvar a lista dos pacotes selecionados em um arquivo para depois serem instalados sem a necessidade de ter que marcar tudo novamente, ver o histórico de todos os pacotes instalados, removidos, atualizados desde a instalação do Linux... Essas e muitas outras opões estão disponíveis para o administrador Linux através do DEB, APT-GET e Synaptic, gerando uma ferramenta extremamente poderosa.
TGZ
O TGZ é o padrão utilizado pelo Slackware, porém possui alguns problemas: um pacote pode ser instalado sem suas dependências, o que proporciona programas que não abrem. Falta uma ferramenta boa para gerência dos pacotes através de um sistema similar ao URPMI e APT-GET... Há o slackpkg que trabalha bem, mas é pobre de opões se compararmos ao APT-GET. Por isso é raro ver pacotes nesse formato.
Padrão
Esse é ponto chave para o Linux crescer. Por mais que RPM e DEB sejam fortes, um único sistema para gerenciar os pacotes impulsionaria o crescimento do Linux. Mark Shuttleworth do Ubuntu já apontou isso a pouco tempo e tem toda a razão. As funções estão bem parecidas e já está na hora de um padrão ser feito e adotado pelas distribuições Linux. Enquanto esse dia não chega, alguns fabricantes de software estarão desencorajados de desenvolver e disponibilizar seus programas para Linux
Há ferramentas importantes de serem citadas:
- APTITUDE: evolução do APT-GET e mais "inteligente" que o APT-GET. Porém algumas de suas funções estão sendo integradas ao APT-GET;
- Smart: criado pela antiga Conectiva, o padrão iria ser compatível com vários tipos de gerenciamento de pacotes, porém não se ouve mais falar como antes...
Espero que gostem deste artigo...