Вопрос

На нашем сервере установлена версия R 2.12.1, следующая инструкциям на http://cran.r-project.org/bin/linux/debian/ , используя apt-get install и т.д. и т.п.

В силу обстоятельств старая машина lenny не была обновлена до нового стабильного debian, и, похоже, это произойдет не скоро.Поскольку некоторые исследования здесь зависят от последней версии VGAM, нам нужен R 2.14.0, установленный в debian.Но для того, чтобы сохранить старый код запущенным, мы не можем просто удалить R 2.12.1 (установка VGAM 0.8.4 в этой версии приводит к ошибкам).

Итак, нам нужно установить 2 R-версии.Из того немногого, что я понял, если мы просто используем apt-get upgrade старая версия будет заменена новой.Я просмотрел кучу документации, но не могу найти оптимальный способ сделать это.

Единственное, что я мог себе сейчас представить, это попытаться собрать последнюю версию R из исходных текстов, но мои коллеги были не очень в восторге от этой идеи и побудили меня сначала поискать другое решение.Есть какая-нибудь информация, которую я пропустил, или кто-нибудь хочет показать мне маленький трюк, чтобы это сделать?Если создание из исходного кода является решением, я хотел бы услышать о любых подводных камнях или возможных проблемах.

Это было полезно?

Решение

Как я упоминал в комментариях, это теоретически возможно точно так же, как некоторые семейства пакетов (Emacs, PostgreSQL, ...) допускают несколько одновременных версий.

Я не могу предложить это прямо сейчас, поскольку мы используем /usr/{share,lib}/R которые противоречат друг другу.Если бы я должен был это сделать /usr/{share,lib}/R-$version а затем используйте dpkg-alternatives чтобы переключиться на предпочтительный вариант по умолчанию, мы, возможно, могли бы это сделать.Проблема заключается в переходе.Эта функция используется меньшинством пользователей, доступ к ней может привести к ошибкам для большинства, пока она не станет стабильной.Кроме того, у меня нет свободного времени (но если кто-то еще хочет это сделать, пожалуйста, сделайте это).

В то же время, вы можете

  1. возможно, использовать расширенную функцию dpkg и распакуйте в локальный каталог, а не в каталог по умолчанию, приведенный ниже / -- итак /opt/R/oldversions/2.12.1 это должно быть возможно.R мог бы даже запуститься, вам нужно переопределить $RHOME соответственно.

  2. просто встроите локальные варианты в /usr/local если вы в самом деле должен

  3. если конкретный пакет CRAN / не-CRAN утверждает, что ему нужна определенная версия R, исправьте этот чертов пакет уже сейчас!;-)

Наконец, это тема для r-sig-debian например, сопровождающие CRAN Майкл и Йоханнес не будут читать эту тему здесь.

Другие советы

Вы можете устанавливать различные версии ЛЮБОГО программного обеспечения, используя соответствующие флаги компиляции.Когда вы запустите сценарий настройки с помощью --help, вы должны увидеть опцию для просмотра программы установки root.

Взгляните на

./configure --help
...
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]

таким образом, вы могли бы установить R-2.14 для:

/usr/local/R/2.14

и вы могли бы установить R-2.12 для:

/usr/local/R/2.12

когда вы запустите сценарий настройки, выполните:

./configure --prefix=/usr/local/R/2.14

и так далее.

Я думаю, что если нет репозитория debian, предоставляющего несколько версий, трудно поддерживать бесперебойную работу двух версий R без компиляции R из исходного кода.

Что я часто делаю, так это устанавливаю R в моем домашнем каталоге, поскольку наш институт не дает нам привилегий root.Чтобы установить исходную версию R по всей системе, вы могли бы установить ее в отдельный каталог (например/opt/R2.14) и использовать:

./configure --prefix=/opt/R2.14/

Последним шагом является создание символической ссылки на двоичный файл R:

ln -s /opt/R2.14/bin/R /usr/bin/R2.14

Затем пользователи могут запустить две версии R (R и R2.14).Надеюсь, это поможет!

Это правда, что создать R из исходного кода очень-очень просто (даже я могу это сделать!), если вы знаете следующую команду для запуска первой :

apt-get build-dep r-base

в противном случае вы можете получить ошибки отсутствующего типа библиотеки из make.Спасибо Дирку, который опубликовал этот драгоценный камень в прошлом.Я не видел этого в руководстве, README или FAQ.

Тогда это просто :

./configure
make

Я полагаю, тогда это могло бы послужить вам поводом для размышлений:использует ли R статические или динамические системные библиотеки?Может ли самодельный R ссылаться на библиотеки, отличные от предварительно упакованного двоичного R?(Я не знаю).Насколько вы углубитесь в это, зависит от того, насколько важно ваше приложение R, я полагаю, и какие системные библиотеки важны для вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top