raserafim escreveu:
o termo "ódio" talvez não seja o melhor a se utilizar...
- Quanto ao SystemD:
vai contra a dois dos princípios mais caros ao slackware: a filosofia KISS e a filosofia UNIX.
enquanto que o sistema de inicialização do slackware (sysvinit) é todo ele composto por simples scripts em modo texto, no entanto, o systemd se tornou um sistema de inicialização grande, complexo, expansivo, que se utiliza de binários e que extrapola, em muito, as funções entendidas típicas e essenciais de um init.
se tornou tão expansivo a ponto de interfaces gráficas e, às vezes, até mesmo aplicativos, lhe terem como dependência.
dois exemplos ilustrativos:
- os logs em toda a história dos sistemas GNU/Linux sempre foram armazenados em arquivos texto puro: de modo a ser possível analisá-los em qualquer situação. no systemd os logs são armazenados em arquivos binários, em que é preciso aplicativos próprios e específicos para lê-los.
- os daemons e comandos executados na inicialização, e o seu ordenamento, no slackware é tudo configurado em um arquivo de texto puro: podendo assim ser alterado em qualquer editor de texto; enquanto que no systemd essas informações, fundamentalmente, encontram-se em binários, que apenas é possível configurá-las por meio de um sistema de comandos próprios.
- Quanto às Dependências:
um dos principais fundamentos para a não utilização de um gerenciador de dependências é que este tipo de gerenciador coloca uma complexidade a mais no sistema: de certa forma, acrescenta uma camada intermediária.
no caso do slackware, por princípio, a adição de camadas intermediárias devem ser evitadas o máximo possível: a ideia geral é procurar sempre colocar o usuário no acesso direto às configurações fundamentais do sistema.
uma outra razão importante é que as dependências indispensáveis ao funcionamento de uma aplicação, por vezes, podem ser relativas.
é importante observar que não se trata aqui da distinção comum em muitas distribuições entre "dependências obrigatórias" e "dependências recomendadas". trata-se apenas do que se entende por "dependências obrigatórias".
por exemplo, um determinado pacote pode ter a dependência do pulseaudio porque foi compilado habilitando a flag que faz esse aplicativo utilizar seus recursos. no entanto, essa flag poderia ser desabilitada, fazendo com que o aplicativo se adeque aos recursos simples do alsa e, assim, dispense a dependência do pulseaudio.
vide o caso recente do slackware: para possibilitar que seus usuários possam escolher entre pulseaudio e alsa, esta distribuiçao mantém alguns arquivos que possuem duas versões (uma para pulseaudio e outra para alsa)
essa mesma lógica de definir as reais dependências em tempo de compilação, logo, existe em várias outras situações. um caso ilustrativo é o do libreoffice: muitas bibliotecas são definidas em tempo de compilação se serão incorporadas em forma de recursos ou não. (veja:
https://slackbuilds.org/repository/14.2/office/LibreOffice/)
ou seja, em síntese, apenas com o usuário tendo contato direto com processo de compilação é que se torna possível definir quais dependências esse usuário quer realmente utilizar ou não.
utilizar um gerenciador de pacotes é entregar essas decisões para a equipe que compilou ou que preparou os scripts de compilação.
uma vez que o slackware preza pelo controle do usuário e os aplicativos que não estão no repositório oficial tem a recomendação de serem instalados a partir do código-fonte (valendo-se de slackbuilds), então, faz algum sentido essa distribuição não fornecer suporte a um gerenciador de dependências.
no entanto, não utilizar um gerenciador de pacotes traz uma série de trabalho, dificuldades e, talvez, até de limitações.
uma das principais limitações é a extrema dificuldade para se manter um sistema mínimo e enxuto -- uma vez que cada instalação de pacotes demandará a instalação de várias dependências.
para contornar de alguma maneira essas dificuldades, o slackware fornece um sistema mínimo de outro tipo: não é um mínimo super enxuto; mas é um mínimo para subsidiar as principais bibliotecas que costumam ser demandadas. (observe que bibliotecas não significa aplicativos -- só para dar um exemplo, no slackware não há qualquer suíte de escritório: como o libreoffice).
interessante observar o caso do Salix: para viabilizar um sistema realmente mínimo e enxuto esta distribuição implementou o gerenciador de dependências -- o que faz com que seja frequentemente referenciada como um "slackware para leigos" (embora realmente essa distribuição possua um instalador mais fácil e algumas telas de configuração que não existem no slackware, entretanto, em minha avaliação, entendo que a sua particularidade mesmo é possibilitar um slackware realmente mínimo)
no slackware, embora não haja gerenciador de dependências, não significa que se tenha muito trabalho manual resolvendo-as.;
em seis anos que utilizo o slackware, não lembro de alguma vez eu ter tido algum problema que minimamente me fizesse gastar tempo significativo para resolver as dependências.
são duas as razões para nesta distribuição não fazer muita falta um gerenciamento automático de dependências:
- o sistema mínimo de outro tipo (já mencionado na minha resposta anterior): esse sistema já abrange boa parte das bibliotecas que comumente são utilizadas como dependências;
- o slackbuilds.org: tudo que preciso encontro nos repositórios deste site. cada pacote contém uma lista das dependências (todas as dependências existem no próprio site).
caso se queira automatizar o trabalho braçal quanto aos slackbuilds.org, basta utilizar o "sqg" para baixar uma lista de dependências do pacote que se quer instalar e, então, passar o arquivo como parâmetro para o "sbopkg". pronto!