在我自己的目录中安装R


34

如何安装的R在我自己的目录,例如一个新版本,/local/data/project/behi


1
您可能可以通过从源头开始进行操作。但是如果你要问的话,我想你不愿意这样做。请告诉我们您正在运行什么系统,以及为什么对新版本感兴趣。
vonbrand 2014年

使用源代码进行的特定于版本的安装与使用YUM或APT进行的安装有很大不同。它取决于操作系统版本以及成功完成安装所需满足的依赖项数量。我在hashprompt.blogspot.com/2017/06/…中记录了SLES11 SP3上R 3.3.3的安装。希望它可以帮助您在Linux系统上安装。
巴班·盖戈尔

Answers:


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和这样的shell命令Rscript将起作用。

在macOS上,您还有另一种选择:构建R.app并将其安装到用户的专用Applications文件夹中。您需要安装Xcode才能执行此操作。

您可以考虑给予帮助--prefix=$HOME。这会将R安装在您的主目录的顶层,以便RRscript最终以形式存在$HOME/bin,这可能已经在用户的中了PATH。缺点是,这会使以后的卸载更加困难,因为R会与您的其他$HOME内容混合在一起。

(如果这是您首先安装的内容$HOME/bin,则可能必须先注销然后再返回以将其放入您的PATH,因为通常只有$HOME/bin在登录时存在该条件时才有条件地添加它。)

这种一般模式适用于可以从源代码安装的大量Unix软件。如果该软件具有configure脚本,则它可能理解该--prefix选项,否则,通常会有一些效果相同的替代方法。

这些功能很常见,原因有很多。以我的经验,从可能性的降序开始:

  • 安全默认值(/usr/local)并非$prefix在所有情况下都适用。情况可能规定其他东西,例如/usr/opt/$PKGNAME等等。

  • 二进制程序包构建系统(RPMDEBPKGCygport ...)通常将程序包构建并安装到一个特殊的暂存目录中,然后将其打包,以使其扩展到所需的安装位置。

  • 您的情况是无法root将软件安装到典型位置,因此您将其安装到该位置$HOME


1
我建议./configure --prefix=$HOME/R --enable-R-shlib确保您编译R共享库。否则,RStudio会抱怨。
akhmed

没有给我工作。脚本结尾configure: error: --with-readline=yes (default) and headers/libs are not available make: *** No targets specified and no makefile found. Stop.
接近

@ApproachingDarknessFish:与这个问题或我的答案无关。您缺少使用所选选项在系统上构建R的必要先决条件。特别是在这里,您缺少readline开发库。如果您还有其他问题,请发布新问题。
沃伦·杨

8

您还可以使用包装器应用程序Renv

摘抄

简单R版本管理:Renv

Renv使您可以轻松地在R的多个版本之间进行切换。它简单,简洁,并遵循UNIX的一站式工具传统,可以很好地完成一件事。

Renv确实...

  • 让您基于每个用户更改全局R版本。
  • 为每个项目的R版本提供支持。
  • 允许您使用环境变量覆盖R版本。

1

从源构建 ./configure --prefix=/local/data/project/behi ; make ; make install

如果您是从RPM软件包安装的,并且它是可重定位的,则可以使用

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

但是并非所有软件包都使用可重定位的二进制文件构建,我不认为debian软件包具有此选项(尽管您可能会成功使用dpkg --instdir)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.