Как я могу установить новую версию 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
).