tlaloc
(usa Gentoo)
Enviado em 02/10/2010 - 16:41h
Boa galera.
Mas vamos discutir então.
Primeiro, vocês sabem o que são e para que servem as dependências?
As dependências de um programa são coisas de que ele depende (óbvio, mas nem tanto) para executar suas funções.
Vejam por exemplo o Firefox. Como é que o Firefox vai funcionar sem o XulRunner, renderizador de páginas do aplicativo?
Daí que veio a necessidade das dependências de software.
O Linux, por ser extremamente configurável ao seu gosto, tem esse "problema" das dependências por ser um "mal necessário".
Vejam, por exemplo, se vocês quiserem TIRAR o suporte de alguma coisa em um programa.
Se vocês querem tirar o suporte a Java do OpenOffice, já que o Java é pesado e o micro que vai rodar é um terminal burro destes que a Secretaria do Desenvolvimento Regional da para as escolas.
Como é que vocês fariam isso se não houvessem dependências? Vocês teriam de "abrir" o pacote do OpenOffice (com todas as dependências), retirar o pacote do Java de lá, compilar o OpenOffice sem suporte a Java, colocar o pacote do OpenOffice sem Java no lugar do original, fechar o pacote de novo e aí sim, instalar o OpenOffice.
Viu que trabalheira que daria?
E quem disser que no Windows não existem dependências de software, recomendo que volte a estudar o sistema. Já tentaram instalar o Windows Live Messenger sem o Windows Installer 4.5 instalado? Com o 3.1, ele da uma mensagem de erro e diz que falta uma dependência!
E instalar o Windows Live Mail sem o .Net Framework instalado? Impossível.
E ao instalar o Office, se você for procurar atualizações do Windows, ele vai carregar mais ou menos 40 atualizações referentes ao Office. ISSO SÃO DEPENDÊNCIAS!
Dependências existem tanto em um quanto em outro sistema.
Ah, mas no Windows acontece com menos frequência... concordo plenamente.
No Windows você não precisa instalar 10, 15 pacotes se quiser instalar o MSN. Só que isto acontece porque todas as dependências dos programas já vem instalados no sistema. Como assim?
Vamos esmiuçar o assunto.
No Linux, se usamos Gnome, usamos a biblioteca gráfica GTK como padrão. Se quisermos instalar algum aplicativo QT, como por exemplo o Amarok, teremos de instalar o QT e algumas dependências.
Neste ponto o Windows consegue ser mais simples, pois não há vários motores gráficos no Windows, apenas um. Assim, não existem softwares para esta ou aquela interface gráfica.
Outra coisa, as distros são muito diferentes de uma para outra, em questão de configuração, softwares que já venham pré-instalados e uma diversidade de aplicativos que são escolhidos diferentemente.
Veja por exemplo que no Gentoo nós temos o rc-update e no Ubuntu temos o update.rc-d.
O fato do Windows ter menos casos de dependências necessárias não se deve a completude dos pacotes e sim a falta de opção que os usuários têm ao escolher seus aplicativos.
O Linux, doutro lado, permite uma gama enorme de escolhas e estas escolhas requerem dependências.
Como no final das contas nem todo mundo usa um aplicativo da mesma maneira que outro, acabam as dependências sendo necessárias e uma virtude, não um problema, do sistema.
Agora, quanto ao seu problema em específico, o próprio site do Debian Packages informa as dependências necessárias e opcionais de cada pacote que se deseja instalar.
O negócio seria baixar por ele seguindo o índice de dependências.
Mas ainda assim, você quer instalar um único pacote, né?
Então deveríamos pensar num "Baixador de Dependências", um aplicativo multiplataforma que pudesse usar uma "source.list" fornecida pelo usuário e um repositório fornecido pelo usuário.
O usuário escolheria, por exemplo, o pacote do Google Chrome e o "Baixador" buscaria nos dados fornecidos pelo usuário pelos pacotes, inclusive dependências, e geraria um pacote "completo" para que o usuário pudesse salvar num pendrive e aí sim levar para seu micro sem internet.
Seria uma solução mais útil que exigir dos mantenedores de software que agrupassem pacotes como por exemplo OOffice.Org-Java e OOffice.Org-noJava, para quem quer o suporte a Java ou não.
Se isso fosse um pedido atendido, nem imagino o tamanho de um repositório Debian... quanto é a fatorial de 25 mil mesmo? :P