Как я могу установить новую версию R в моем собственном каталоге, например, /local/data/project/behi.
Как я могу установить новую версию R в моем собственном каталоге, например, /local/data/project/behi.
Ответы:
Самый простой способ сделать это - установить 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вместо этого.
./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.
Вы также можете использовать приложение-оболочку Renv .
выдержка
Управление версиями Simple R: Renv
Renv позволяет вам легко переключаться между несколькими версиями R. Это просто, ненавязчиво и следует традиции UNIX, состоящей из универсальных инструментов, которые хорошо выполняют одну задачу.
Ренв делает ...
- Позвольте вам изменить глобальную версию R для каждого пользователя.
- Обеспечить поддержку для проектов R версии.
- Позвольте вам переопределить версию R с помощью переменной окружения.
Сборка из источника с ./configure --prefix=/local/data/project/behi ; make ; make install
Если вы устанавливаете из пакета RPM, и он был создан с возможностью перемещения, вы можете использовать
rpm ... --prefix /local/data/project/behi
Но не все пакеты собраны с перемещаемыми двоичными файлами, и я не думаю, что пакеты debian имеют эту опцию (хотя у вас это получится dpkg --instdir).