Quero entender como o pacote APT é gerenciado em geral, considerando a seguinte situação em que me deparei hoje:
Eu estava tentando adicionar o MongoDB à minha máquina Debian. apt search mongodb
mostrou resultados de boa aparência e, antes de tentar instalar, li a documentação do MondoDB que dizia:
Siga estas etapas para executar o MongoDB Community Edition em seu sistema. Estas instruções assumem que você está usando o pacote mongodb-org oficial -- não o pacote mongodb não oficial fornecido pelo Debian -- e está usando as configurações padrão.
A partir disso, entendi e fiquei surpreso que o que recebo do Debian não apt install
é oficial pelos desenvolvedores do aplicativo. Isso soa pior do que "não recomendado".
Eu entendo que o repositório de pacotes Debian APT tende a mostrar versões antigas e nunca se destina a acompanhar as últimas atualizações de ponta. Há tantas maneiras de lidar com isso, mas agora estou preocupado com as palavras não oficiais . Isso significa que os pacotes relacionados ao MongoDB (ou qualquer outro aplicativo) no repositório APT não são oficialmente aprovados pelos desenvolvedores do aplicativo? Ou foi lançado oficialmente pelos desenvolvedores, mas "evite porque não é a versão mais recente"? Ou alguém (alguma entidade?) copiou do pacote de instalação oficial e colou no APT?
Não estou tentando entender apenas esse caso específico com o MongoDB. Em vez disso, quero entender a "política" geral sobre aplicativos e APT. Como funciona, como deveria funcionar?
Se esta é uma pergunta noob, desculpe, mas não consegui encontrar uma boa explicação online. Quaisquer links ou referência seriam apreciados.
Os pacotes em todas as distribuições (não apenas no Debian) geralmente não são empacotados pelos desenvolvedores do aplicativo, mas pelos membros da comunidade da distribuição, geralmente chamados de empacotadores ou mantenedores de pacotes . Às vezes, o desenvolvedor de aplicativos pode ser também o empacotador em algumas distribuições, mas não é uma regra e os desenvolvedores definitivamente não podem manter seus aplicativos em todas as distribuições (por exemplo, eu mantenho meu software no Fedora, mas ele é empacotado por outra pessoa no Debian).
Quando se trata de "aprovação" e ser "oficial" ou "não oficial". Estamos falando de software livre aqui, as licenças permitem distribuir o software para que você não precise da aprovação de ninguém para empacotar o software para uma distribuição. Os desenvolvedores podem discordar da forma como seu software está sendo empacotado e enviado, mas isso é tudo o que eles podem fazer.
Não tenho certeza do que torna o pacote (não) oficial. Eu acho que todos os pacotes são, em teoria, não oficiais porque são feitos por terceiros. Provavelmente depende da sua definição de ser (não) oficial.
Uma coisa que pode causar tensão entre empacotadores e desenvolvedores é o ciclo de lançamento. Distribuição (especialmente distribuições "estáveis" como Debian Stable ou RHEL/CentOS) têm seu próprio ciclo de lançamento e suas próprias promessas sobre estabilidade de software e API, que geralmente é diferente do upstreamciclo de lançamento. Esta é a razão pela qual você vê versões mais antigas em suas distribuições, geralmente com alguns backports de correções de bugs. E às vezes os desenvolvedores upstream não gostam disso, porque eles recebem relatórios de bugs para coisas que já foram corrigidas, mas não portadas etc. E às vezes os empacotadores tomam suas próprias decisões sobre opções de tempo de compilação e outras coisas que alteram (padrão) a funcionalidade do software, o que também pode incomodar. Assim, os desenvolvedores dizem algo como "Use nossos pacotes 'oficiais' em vez de seus pacotes de distribuição" e cabe ao usuário decidir o que é melhor para eles.
A questão principal é: "oficial" de acordo com quem ? Se algo é ou não "oficial" depende muito de qual "escritório" você está perguntando!
Os pacotes distribuídos pelos desenvolvedores do MongoDB são os pacotes "oficiais" de acordo com os desenvolvedores do MongoDB. Os pacotes distribuídos pelos desenvolvedores do Debian são os pacotes "oficiais" de acordo com os desenvolvedores do Debian.
Nenhum dos dois é mais "oficial" do que o outro em algum sentido global .
Existem muitas razões possíveis pelas quais os pacotes de distribuição podem diferir dos pacotes do fornecedor:
Isso significa, por exemplo, que o Debian 8 ainda tem suporte a ELTS, mas não há pacotes do MongoDB para ele.
Agora, neste caso em particular , o Debian parou de fornecer seus próprios pacotes porque o MongoDB mudou para uma licença diferente . A versão mais recente do
mongodb
pacote está no Debian 9. O próprio Debian não fornece mais pacotes para MongoDB no Debian 10, Debian 11 ou o Debian 12 em desenvolvimento. No entanto, o pacote que está no Debian 9 está disponível para AMD64, ARM64, x86 e PowerPC 64 bits little-endian, enquanto o pacote dos desenvolvedores do MongoDB está disponível para Debian 9 e 10, mas apenas para AMD64.Em geral , a principal razão pela qual os distribuidores fornecem seus próprios pacotes é porque os distribuidores têm um conjunto diferente de preocupações e restrições do que os fornecedores de software e, portanto, os pacotes fornecidos pelos fornecedores de software geralmente não atendem a essas preocupações e restrições.
Lembre-se, a maioria dos pacotes de distribuição são criados por voluntários não remunerados, e a maioria das distribuições gostaria de fornecer mais pacotes, mas não tem mão de obra para isso. Se houvesse uma maneira de pegar os pacotes dos fornecedores de software sem modificações e colocá-los na distribuição, eles geralmente fariam isso e, em vez disso, concentrariam seus esforços em outro lugar.
Os mantenedores de distro podem aplicar seu próprio conjunto de patches que o upstream pode não endossar. Isso pode levar a uma situação como esta.
As distribuições também podem ter certas políticas em relação às versões de software que fornecem, que podem não concordar com o que os criadores originais tinham em mente.
O Debian teve muitos incidentes relacionados:
Open Source não é tão róseo quando você o conhece melhor.
Como regra geral, a resposta a esta pergunta é "não" e não é apenas o Debian, também se aplica a outras distros.
Por exemplo, verifique https://bugzilla.kernel.org
Por favor, use as ferramentas de rastreamento de bugs da sua distribuição Este bugzilla é para reportar bugs contra kernels Linux upstream.
De fato. "Software livre" (no sentido GPL da palavra) significa que qualquer pessoa pode pegar seu código-fonte, modificá-lo e redistribuí-lo sem sua aprovação ou até mesmo sem informá-lo.
Os desenvolvedores de praticamente qualquer projeto de código aberto pedem aos usuários que experimentem a versão mais recente disponível antes de relatar um bug. Nesse sentido, quaisquer pacotes de terceiros não são oficiais: se funcionarem, bom para você, se não funcionarem, você deve relatar isso ao mantenedor do pacote, não aos desenvolvedores.