Деякі мови програмування поставляються із власною системою управління пакетами, наприклад, у випадку R, вбудована install.packages
команда встановлюється із сховища CRAN та займається залежностями.
Паралельно ОС надходить із власною системою управління пакетами, як apt
команда для Linux-дистрибутивів на основі debian.
Я вирішив, що краще використовувати диспетчер пакунків дистрибутива, щоб гарантувати, що все в моїй системі буде сумісним (див. Https://stackoverflow.com/a/31293955/1878788 ).
Але незабаром настав день, коли мені потрібні речі, недоступні таким чином. Наприклад, програма біоінформатики, яка не була упакована моїм розповсюдженням, потребувала б певної версії Р. Сталося, що програма була доступна через проект під назвою "біокондуктор", метою якого було надати R-пакети для біоінформатики, гарантуючи, що пакети будуть бути сумісними один з одним (див. https://www.bioconductor.org/install/#why-biocLite ).
Тому я вирішив не використовувати свою систему управління упаковкою ОС для R, а встановити все за допомогою biocLite
команди, передбаченої проектом біокондуктора.
Цей підхід деякий час проходив безперебійно, поки я не виявив, що для підтримки цілісних, здорових та легко відновлюваних екосистем біоінформатики деякі люди вирішили використовувати систему управління пакетами conda. Цей проект, який називається "bioconda", пропонує не лише пакети R, але й речі різного роду мов, з можливістю легко перемикати версії тощо. (Див. Https://bioconda.github.io/ ).
Тоді я вирішив замість цього застосувати цей підхід, і він пройшов гладко, поки мені не знадобився пакет R, який не був забезпечений біокондою / кондою. Нібито це дуже просто, але мої спроби зробити конда-пакет не вдалися, тоді я спробував встановити пакет за допомогою біопровідника, і він знову не вдався. У мене складається враження, що механізми побудови пакетів якось використовували неправильну установку R. Тому я вирішив стерти мою (ще дуже молоду) установку конди і повернутися до моєї екосистеми біопровідників.
Мені цікаво, як довго мені доведеться переходити з одного підходу до іншого. Чи є загальна хороша практика щодо того, як боротися з цими численними рівнями, що перешкоджають і перекриваються, управління пакетами?
Редагувати (14.09.2017) : Ще один варіант, який я вважав, - це використання альтернативних менеджерів пакетів на рівні ОС, таких як Guix або Nix .