Некоторые языки программирования поставляются с собственной системой управления пакетами, например, в случае R встроенная install.packages
команда устанавливается из репозитория CRAN и обрабатывает зависимости.
Параллельно ОС поставляются с собственными системами управления пакетами, такими как apt
команда для дистрибутивов Linux на основе Debian.
Я решил , что лучше использовать менеджер пакетов дистрибутива для того, чтобы гарантировать , что все в моей системе будет совместимо (см /programming//a/31293955/1878788 ).
Но вскоре наступил день, когда мне понадобились вещи, которые были недоступны таким образом. Например, программе биоинформатики, которая не была упакована моим дистрибутивом, потребовалась бы какая-то конкретная версия R. Случилось так, что программа была доступна через проект под названием «bioconductor», целью которого было предоставить пакеты R для биоинформатики, гарантируя, что пакеты будут быть совместимыми друг с другом (см. https://www.bioconductor.org/install/#why-biocLite ).
Поэтому я решил не использовать мою систему управления упаковками ОС для R и установить все через biocLite
команду, предоставленную проектом bioconductor.
Некоторое время этот подход работал гладко, пока я не обнаружил, что для поддержания согласованных, здоровых и легко восстанавливаемых биоинформатических экосистем некоторые люди решили использовать систему управления пакетами conda. Этот проект, называемый «биоконда», предоставляет не только пакеты R, но и вещи из разных языков с возможностью простого переключения версий и т. Д. (См. Https://bioconda.github.io/ ).
Затем я решил использовать этот подход, и он работал гладко, пока мне не понадобился пакет R, который не был предоставлен bioconda / conda. Якобы это очень просто, но мои попытки создать пакет conda не увенчались успехом, затем я попытался установить пакет, используя способ bioconductor, и он снова не удался. У меня сложилось впечатление, что каким-то образом неправильная установка R использовалась механизмами сборки пакетов. Поэтому я решил стереть свою (еще очень молодую) установку conda и вернуться к моей биокондукторной экосистеме.
Мне интересно, как долго мне придется переходить с одного подхода на другой. Существуют ли общие рекомендации относительно того, как бороться с этими множественными, мешающими и перекрывающимися уровнями управления пакетами?
Редактирование (14/09/2017) : Еще один вариант, который я рассмотрел, - это использовать альтернативные менеджеры пакетов на уровне ОС, такие как Guix или Nix .