Algumas linguagens de programação vêm com seu próprio sistema de gerenciamento de pacotes, por exemplo, no caso do R, o install.packages
comando interno é instalado a partir do repositório CRAN e lida com dependências.
Paralelamente, o SO vem com seus próprios sistemas de gerenciamento de pacotes, como o apt
comando para distribuições Linux baseadas em debian.
Decidi que era melhor usar o gerenciador de pacotes da distribuição, para garantir que tudo no meu sistema fosse compatível (consulte /programming//a/31293955/1878788 ).
Mas logo chegou o dia em que eu precisava de coisas que não estavam disponíveis dessa maneira. Por exemplo, um programa de bioinformática que não foi empacotado pela minha distribuição exigiria uma versão específica de R. Aconteceu que o programa estava disponível através de um projeto chamado "biocondutor", cujo objetivo era fornecer pacotes R para bioinformática, garantindo que os pacotes ser compatíveis entre si (consulte https://www.bioconductor.org/install/#why-biocLite ).
Decidi não usar o sistema de gerenciamento de pacotes do SO para R e instalar tudo através do biocLite
comando fornecido pelo projeto do biocondutor.
Essa abordagem funcionou sem problemas por algum tempo, até que eu descobri que, para manter ecossistemas de bioinformática coerentes, saudáveis e de fácil reconstrução, algumas pessoas decidiram usar o sistema de gerenciamento de pacotes conda. Este projeto, chamado "bioconda" fornece não apenas pacotes R, mas coisas de todos os tipos de idiomas, com a possibilidade de alternar facilmente versões e assim por diante (consulte https://bioconda.github.io/ ).
Decidi então usar essa abordagem e ela funcionou sem problemas até precisar de um pacote R que não fosse fornecido pelo bioconda / conda. É supostamente super fácil, mas minhas tentativas de criar um pacote conda falharam; tentei instalar o pacote usando o caminho do biocondutor e falhou novamente. Tenho a impressão de que, de alguma forma, a instalação incorreta do R estava sendo usada pelos mecanismos de criação de pacotes. Por isso, decidi apagar minha instalação de condomínio (ainda muito jovem) e voltar ao meu ecossistema de biocondutores.
Gostaria de saber quanto tempo terei que pular de uma abordagem para outra. Existem boas práticas gerais sobre como lidar com esses níveis múltiplos, interferentes e sobrepostos de gerenciamento de pacotes?
Editar (14/09/2017) : Outra opção que considerei é usar gerenciadores de pacotes alternativos no nível do SO, como Guix ou Nix .