Установите R в моем собственном каталоге

34

Как я могу установить новую версию R в моем собственном каталоге, например, /local/data/project/behi.

user3925736
источник
1
Вы можете сделать это, начав с источника; но если вы спросите, я думаю, вы не готовы это сделать. Пожалуйста, сообщите нам, какую систему вы используете, и почему вы заинтересованы в новой версии.
vonbrand
Установка конкретной версии с использованием исходного кода сильно отличается от установки с использованием YUM или APT. Это зависит от версии ОС и количества зависимостей, которые необходимо соблюдать для успешного завершения установки. Я задокументировал установку R 3.3.3 на SLES11 SP3 в hashprompt.blogspot.com/2017/06/… Надеюсь, что это может помочь вам установить в системах Linux.
Бабан Гайголе

Ответы:

43

Самый простой способ сделать это - установить R из исходного кода :

$ wget http://cran.rstudio.com/src/base/R-3/R-3.4.1.tar.gz
$ tar xvf R-3.4.1.tar.gz
$ cd R-3.4.1
$ ./configure --prefix=$HOME/R
$ make && make install

Второй до последнего шага является критическим. Он настраивает R для установки в подкаталог вашего собственного домашнего каталога.

Чтобы запустить его в Linux, macOS и аналогичных системах, добавьте $HOME/R/binв свой PATH. Тогда команды оболочки вроде Rи Rscriptбудут работать.

В macOS у вас есть другая альтернатива: соберитеR.app и установите ее в личную Applicationsпапку вашего пользователя . Для этого вам нужно установить Xcode.

Вы могли бы рассмотреть возможность дать --prefix=$HOMEвместо. Это устанавливает R на верхнем уровне вашего домашнего каталога, так что в конечном итоге находятся Rи Rscriptдвоичные файлы $HOME/bin, что, вероятно, уже в вашем пользователе PATH. Недостатком является то, что это усложняет последующую деинсталляцию, поскольку R будет смешиваться с вашим другим $HOMEсодержимым.

(Если это первое, что вы установили $HOME/bin, вам, возможно, придется выйти из системы и снова войти в PATHнее, чтобы получить ее , поскольку она часто добавляется условно, только если$HOME/bin существует во время входа в систему.)

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

Эти функции являются общими по ряду причин. В порядке убывания вероятности, по моему опыту:

  • Безопасный default ( /usr/local) не подходит $prefixво всех ситуациях. Обстоятельства могут диктовать что - то другое , например , как /usr, /opt/$PKGNAMEи т.д.

  • Бинарные системы сборки пакетов ( RPM , DEB , PKG , Cygport ...) обычно собирают и устанавливают пакет в специальный промежуточный каталог, а затем упаковывают его таким образом, чтобы он расширялся до желаемого места установки.

  • Ваш случай, когда вы не можете rootустановить программное обеспечение в обычном месте, поэтому вы устанавливаете $HOMEвместо этого.

Уоррен Янг
источник
1
Я бы порекомендовал вам ./configure --prefix=$HOME/R --enable-R-shlibубедиться, что вы скомпилировали R совместно используемую библиотеку. В противном случае RStudio будет жаловаться.
Ахмедом
Не работал у меня Сценарий закончилсяconfigure: error: --with-readline=yes (default) and headers/libs are not available make: *** No targets specified and no makefile found. Stop.
ApproachingDarknessFish
@ApproachingDarknessFish: Это не имеет ничего общего с этим вопросом или моим ответом. Вам не хватает необходимых предпосылок для сборки R в вашей системе с выбранными вами опциями. В частности, здесь вам не хватает библиотек разработки readline. Если у вас есть больше проблем, напишите новый вопрос.
Уоррен Янг
8

Вы также можете использовать приложение-оболочку Renv .

выдержка

Управление версиями Simple R: Renv

Renv позволяет вам легко переключаться между несколькими версиями R. Это просто, ненавязчиво и следует традиции UNIX, состоящей из универсальных инструментов, которые хорошо выполняют одну задачу.

Ренв делает ...

  • Позвольте вам изменить глобальную версию R для каждого пользователя.
  • Обеспечить поддержку для проектов R версии.
  • Позвольте вам переопределить версию R с помощью переменной окружения.
SLM
источник
1

Сборка из источника с ./configure --prefix=/local/data/project/behi ; make ; make install

Если вы устанавливаете из пакета RPM, и он был создан с возможностью перемещения, вы можете использовать

rpm ... --prefix /local/data/project/behi

Но не все пакеты собраны с перемещаемыми двоичными файлами, и я не думаю, что пакеты debian имеют эту опцию (хотя у вас это получится dpkg --instdir).

Dani_l
источник