У нас есть небольшой кластер Linux-машин (~ 15) до 20 пользователей. За последние несколько лет мы написали несколько базовых сценариев R для выполнения базового статистического анализа. Проблема, с которой я столкнулся как системный администратор-новичок, - это управление пакетами. В настоящее время, если кто-то пишет новый сценарий, для которого требуется новый пакет, этот пакет необходимо установить на всех машинах для всех пользователей. Это похоже на стратегию пещерного человека (мы также делаем это для модулей python и perl). В настоящее время я обновляю наши операционные системы с rhel5 до CentOS6 и буду делать все правильно.
Вот мои первые мысли?
В R на первой машине margay
(на котором работает CentOs6) .libPaths()
указывает на "/ usr / lib64 / R / library" "/ usr / share / R / library"
Я планировал создать по умолчанию .Rprofile
для всех пользователей, которые содержат строку .libPaths("/usr/share/R/library" )
. Я думаю, что это будет по умолчанию устанавливать пакеты программного обеспечения в вышеупомянутый каталог.
В настоящее время разрешения на запись в usr/share/R/library/
является drwxr-xr-x
. Первый вопрос: должны ли все пользователи писать в этот каталог или устанавливать пакеты R от имени пользователя root?
На последующих машинах, на которые я буду устанавливать CentOS6, я тогда думал об использовании nfs для автоматического монтирования / usr / share / R / во всех других системах, чтобы указать на margay: / usr / share / R /. ТАК я обновляю ОС на машине 2 (lynx
) и установить R. Как мне выполнить автоматическое монтирование / usr / share / R / на lynx
указать на эквивалентный каталог на margay
.
Кажется ли это разумным решением? Если я установлю один новый пакет на margay
, смогу ли я автоматически запускать любые сценарии R, использующие этот пакет, на других машинах? Какие подводные камни? Необходимы ли одинаковые версии R на всех машинах?
Должен ли я монтировать / usr / share / R / library на всех других машинах CentOS6, чтобы указать на / usr / share / R / library. Тогда, если я установлю новый пакет с правами root на margay, все остальные машины должны увидеть этот новый пакет? Как мне это сделать, если это разумно