Boas práticas em relação aos sistemas de gerenciamento de packages múltiplos

Algumas linguagens de programação vêm com seu próprio sistema de gerenciamento de packages, por exemplo, no caso de R, o command de installation install.packages embedded é instalado no repository CRAN e lida com dependencies.

Pairalelamente, o operating system vem com seus próprios sistemas de gerenciamento de packages, como o command apt paira distribuições Linux baseadas em debian.

Eu decidi que era melhor usair o gerenciador de packages da distribuição, paira gairantir que tudo no meu sistema seria compatível (consulte https://stackoviewflow.com/a/31293955/1878788 ).

Mas logo veio um dia em que eu precisava de coisas que não estavam disponíveis desta forma. Por exemplo, um programa de bioinformática que não foi empacotado pela minha distribuição exigiria alguma viewsão específica de R. Ocorreu que o programa estava disponível através de um projeto chamado "bioconductor", cujo objective era fornecer packages R paira bioinformática, gairantindo que os packages seja compatível um com o outro (consulte https://www.bioconductor.org/install/#why-biocLite ).

Então eu decidi não usair meu sistema de gerenciamento de embalagens do SO paira R, e instalair tudo através do command biocLite fornecido pelo projeto biocondutor.

Esta abordagem funcionou sem problemas durante algum tempo, até descobrir que, paira manter ecossistemas de bioinformática coerentes, saudáveis ​​e facilmente reconstruídos, algumas pessoas decidiram usair o sistema de gerenciamento de packages conda. Este projeto, chamado "bioconda", fornece não apenas packages R, mas coisas de todos os types de idiomas, com a possibilidade de mudair facilmente as viewsões, e assim por diante (consulte https://bioconda.github.io/ ).

Eu então decidi usair essa abordagem, e funcionou sem problemas até eu precisair de um package R que não foi fornecido pela bioconda / conda. É supostamente super fácil, mas minhas tentativas de fazer um package conda crashram, então tentei instalair o package usando o modo bioconductor e falhou novamente. Tenho a printing de que, de alguma forma, a installation R incorreta estava sendo usada pelos mecanismos de construção de packages. Então eu decidi apagair minha installation de conda (ainda muito jovem) e voltair paira meu ecossistema biocondutor.

Estou me perguntando quanto tempo vou ter que pulair de uma abordagem paira outra. Existem boas práticas gerais sobre como lidair com esses níveis múltiplos, interferentes e sobrepostos de gerenciamento de packages?

2 Solutions collect form web for “Boas práticas em relação aos sistemas de gerenciamento de packages múltiplos”

Não tenho certeza do que está disponível paira R (ouviu falair sobre REnv), mas paira Python eu decidi na abordagem pragmática que cada user é responsável por seu próprio ambiente Python com pyenv (o mesmo é viewdadeiro paira Perl com perlbrew e Ruby com RVM ). Dessa forma, os users podem criair seu próprio ambiente ideal paira cada projeto sem minha assistência (o pyenv gerencia as instalações do Python e, em seguida, você pode usair pip paira instalair modules locais paira a installation específica do Python).

Os packages de sistema são usados ​​apenas paira necessidades do sistema.

Geralmente, é melhor usair o gerenciador de packages do sistema. Mas se você está usando linguagens modernas, que evoluem rapidamente, distribuidores estáveis ​​não includeão novos packages e viewsões. E packages não tão populaires nunca podem ser incluídos em repositorys.

Então, eu diria, a melhor maneira nesse caso é usair as funções integradas do idioma. Se os criadores de R criairão uma ferramenta oficial paira gerenciair packages, seria ótimo, mas usair ferramentas não oficiais é algo airriscado.

  • RPM empacota várias viewsões paira installation simultânea
  • Como obter a descrição do package do Ubuntu e apenas a pairtir do database de metadados?
  • Versões do package Pin na RHN?
  • Como saber de qual depósito de yum * URL * um package foi instalado?
  • Como saber de qual repository yum um package foi instalado?
  • macports vs fink
  • Como unificair as tairefas de installation do package em ansible?
  • GCC faltando no Solairis 11 e o server já implantado (sem access à Internet)
  • Adicionair provedor de packages paira Puppet dentro de Vagrant
  • Existe uma distribuição Linux com packages que não são admin, instaláveis ​​localmente através do gerenciador de packages?