2016-12-08 6 views
0

На нашем сервере коллеге необходимо настроить среду разработки, сцены и производства, и он спрашивает, что это значит для запуска наших R-кодов. Честно говоря, я не знаю. Мое интуитивное решение состояло бы в том, чтобы иметь три разных сервера, поэтому установленные пакеты R не конфликтуют. Но на данный момент среды должны находиться на одном сервере. Я не уверен, как это достичь. Как мы можем запускать несколько версий пакета бок о бок? Например, используя разные .libPaths, чтобы иметь возможность размещать разные пакеты бок о бок?Как настроить/настроить R для разработки, стадии и производственной среды на одном сервере?

Каков правильный способ установить это?

PS. Надеюсь, я достаточно ясно высказался, поскольку у меня нет опыта в этом.

+2

Тип широкого вопроса, но, возможно, создайте отдельную учетную запись пользователя для каждого из разработчиков, промежуточной и производственной деятельности, чтобы пути библиотеки по умолчанию отличались друг от друга. – nrussell

ответ

2

Каждая программа GNU позволяет префикс ее установки (и многое другое, например, суффикс или префикс, добавленный к исполняемому файлу).

Мы используем это в 'how to build R-devel script' Я опубликовал годы и, по-прежнему использую, и, например, в сценариях Dockerfile для Rocker.

Это легко обобщается. Используйте разные конфигурации (с профилированием/без (памяти), UBSAN, ...) и/или версиями для вашего контента, поместите их рядом друг с другом в /opt/R или /usr/local/lib/R или ... и просто используйте их, поскольку каждая установка R имеет его собственное отдельное дерево файлов. Один простой способ получить доступ к ним по-другому происходит через $PATH, другой просто иметь интерфейсные скрипты (или псевдонимы оболочки) R-prod, R-qa, R-dev, и т.д. стр

Вам придется продумывать из вы хотите общую .libPaths() (для, скажем, общих зависимостей) или хотите переустановить все библиотеки для каждого. Последний по умолчанию.