Как я могу обеспечить согласованную среду R среди разных пользователей на одном сервере?
Я пишу протокол для воспроизводимого анализа с использованием собственного пакета "мойпакет», Каждый пользователь будет предоставлять свои собственные входные файлы; кроме входных данных, анализы должны проводиться в тех же условиях. (например, чтобы мы могли сделать вывод, что разные результаты обусловлены разными входными файлами).
MyPKG находится в стадии разработки, поэтомуlibrary(MyPKG)
загрузит ту, которая была последней версией, которую пользователь скомпилировал в своей локальной библиотеке. Он также загрузит любые зависимости, найденные в их локальных библиотеках.
Но я хочу, чтобы все использовали конкретную версию (MyPKG_3.14) для этого анализа, но при этом позволяли разрабатывать более свежие версии. Если я правильно понимаю,R --vanilla " загрузит одинаковые зависимости для всех.
Как только мы закончим, мы сохраним рабочую среду как виртуальную машину, чтобы поддерживать стабильную воспроизводимую среду. Так что временного (6 месяцев) решения будет достаточно.
Я предложил два возможных решения, но не уверен, что одного из них достаточно.
попросите администратора сервера установить MyPKG_3.14 в путь R по умолчанию, а затем укажите следующий код в протоколе:
R --vanilla
library(MyPKG)
....
или же
скомпилировать MyPKG_3.14 в определенной библиотеке, например lib.loc = "/home/share/lib/R/MyPKG_3.14", а затем предоставить
R --vanilla
library(MyPKG)
Достаточно ли обоих этих подходов, чтобы гарантировать, что все используют одну и ту же версию?Один предпочтительнее другого?Существуют ли другие непредвиденные проблемы, которые могут возникнуть?Есть ли предпочтительный вариант для стандартизации нескольких анализов?Должен ли я включить тест вывода?SessionInfo()
Было бы лучше создать единую учетную запись на сервере для всех желающих?