6R版本
6.1概述
英格兰vs伊朗让球RStudio Server使用户和管理员能够非常细粒度地控制在各种上下文中使用R的哪个版本。功能包括:
管理员可以安装多个版本的R,并指定一个全局默认版本以及每个用户或每个组的默认版本。
用户可以根据自己的喜好在R的任何可用版本之间切换。
用户可以指定单个R项目记住它们的上一个版本的R,并始终使用该版本,直到显式迁移到新版本为止。
对R版本的灵活控制使得为需要它们的用户(或单个项目)提供R的升级版本更加容易;同时不会中断需要继续使用旧版本的工作。
6.2安装R
我们建议安装多个版本的R,因为具有多个版本的R的环境有助于为您的R开发人员提供稳定的、可复制的环境。
使用说明安装Rhttps://docs.英格兰vs伊朗让球rstudio.com/resources/install-r/.
6.2.1推荐安装目录
英格兰vs伊朗让球RStudio服务器在以下位置自动扫描R版本:
/usr/lib/R/usr/lib64/R/usr/local/lib/R/usr/local/lib64/R/ opt /地方/ lib / R/ opt /地方/ lib64 / R
此外,RStudio Se英格兰vs伊朗让球rver扫描以下目录中的所有子目录/ opt
:
/ opt / R/ opt /地方/ R
例如,RStudio Server会自动检测到下列安装的R版本:英格兰vs伊朗让球
/ opt / R / 3.1.0/ opt / R / 3.2.0/ opt /地方/ R / 3.1.0/ opt /地方/ R / 3.2.0
如果在文件系统的其他位置有R的版本,RStudio Server仍然可以利用它们。英格兰vs伊朗让球但是,您需要显式地在配置文件中指定它们的位置(这将在[使用多个版本]一节中详细介绍)。
6.3配置R的默认版本
当安装了多个版本的R时,您需要为新的R会话指定默认版本。这可以通过系统PATH自动完成。然而,当需要更大的灵活性时,还提供了其他几种机制。
6.3.1R的单一默认版本
英格兰vs伊朗让球RStudio服务器使用以下命令的输出所指向的R版本:
$哪一个R
的哪一个
命令使用系统PATH搜索R可执行文件。英格兰vs伊朗让球因此,在默认情况下,RStudio将绑定到从终端执行R时运行的相同版本。
对于由系统包管理器安装的R版本,这将是/usr/lib/R
.对于从源代码安装的R版本,这通常(但不总是)是这样的/usr/local/lib/R
.
如果您想覆盖使用的R的哪个版本,那么您可以使用rsession-which-r
设置。例如:
/etc/英格兰vs伊朗让球rstudio/rserver.conf
rsession-which-r=/usr/local/lib/R
注意:在服务器重新启动之前,此更改不会生效。
再每个用户或组的默认版本
您可以使用用户和组配置文件特性为不同的用户和组指定不同的R默认版本。例如,下面的概要配置使用R 3.1.0作为系统默认值,使用R 3.2.0作为那些潮
组,R 3.0.2为用户又该
:
(*)r-version=/ opt / R /3..1.0(@powerusers)r-version=/ opt / R /3..2.0(又)r-version=/ opt / R /3..0.2
请注意,r-version
指定R安装目录的完整路径。
6.4同时使用多个版本的R
6.4.1确定可用版本
英格兰vs伊朗让球RStudio Server在以下位置扫描并自动发现R的版本:
/usr/lib/R/usr/lib64/R/usr/local/lib/R/usr/local/lib64/R/ opt /地方/ lib / R/ opt /地方/ lib64 / R/ opt / R / */ opt /地方/ R / *
更详细的描述在推荐安装目录部分。如果在其他位置安装了R的版本,则可以在/etc/英格兰vs伊朗让球rstudio/r-versions
配置文件。例如:
/etc/英格兰vs伊朗让球rstudio/r-versions
/ opt / R-3.2.13.3 / opt / r -重击
此外,在类中引用的任何版本的Rr-version
指令中用户和组配置文件也是公认的。
为了可用,R主路径必须能被RStudio服务器帐户(通常英格兰vs伊朗让球英格兰vs伊朗让球rstudio-server
;看到访问和安全详情)。
6.4.1.1扩展R版本定义
的/etc/英格兰vs伊朗让球rstudio/r-versions
文件允许您指定特定R版本的扩展信息,提供:
- 指定要设置的其他环境变量的能力
- 要运行的可选预加载脚本
- 要加载的可选环境模块(更多信息在这里)
- 用户界面中显示的版本标签名
若要指定扩展格式信息,请修改/etc/英格兰vs伊朗让球rstudio/r-versions
文件由多个由空行分隔的R项组成。下表列出了文件中每个R条目可用的字段。
路径 | (如果没有指定Module,请参见模块R安装位置的根目录。 |
标签 | (可选)R版本的用户友好名称,在用户界面中显示给用户。 |
模块 | (可选)要为R版本加载的环境模块的名称。这是通过运行该命令加载的模块负载[模块] 在查找用户的.bashrc文件之后。 |
脚本 | (可选)在加载环境后但在启动会话进程之前运行的脚本。 |
回购 | (可选)表示CRAN储存库URL的字符串,或者列出多个包储存库的Repository .conf文件的路径。看到凹口库更多信息。 |
图书馆 | (可选): 存放特定R版本所需R包的分离目录列表。覆盖了R_LIBS_SITE 环境变量。这将与R_LIBS_USER 当形成R库路径时。大多数R安装使用位于的默认站点库$ R_HOME / site-library ,因此在设置该字段时可能需要包括默认的站点库路径目录。 |
一个例子/etc/英格兰vs伊朗让球rstudio/r-versions
如下所示。
/etc/英格兰vs伊朗让球rstudio/r-versions
路径:/ opt / R / R-2.15.3标签:我的特殊R版本模块:testmodule脚本:~ / rload.sh回购:https://cran.ms.unimelb.edu.au/图书馆:/ /包/ R-2.15.3分享路径:/ opt / R / R-2.15.3-alternate标签:我的特殊R版本2模块:r /最新标签:R的最新版本/ opt / misc / R / SpecialR1/ opt / misc / R / SpecialR2/ opt /麦克风/ R / AltnerateR
每个条目都由上面指定的字段组成,这一点很重要。每个字段必须在自己的一行上。字段定义之间不应该有空行。
每个R条目必须用一个全空行(两个换行)隔开\ n
字符)。如果只指定了路径,而没有指定标签、脚本或模块,则可以简单地列出安装的路径(与以前的版本一样)。路径没有用空行分隔,但必须用空行将它们与扩展定义分隔开(如上例所示)。
6.4.1.1.1模块
通过在环境定义中设置模块的名称,该版本的R将完全按模块加载。当定义了模块,并且路径
不指定时,默认R
一旦模块被加载,将使用路径上的二进制文件。否则,如果路径
时,将使用特定的二进制文件。
如果不指定路径
到R安装,您必须确保RStudio Server可以通过指定模块外壳初始化脚本的位置来加英格兰vs伊朗让球载模块上海
.例如:
/etc/英格兰vs伊朗让球rstudio/rserver.conf
modules-bin-path=/usr/local/Modules/3..2.9/ init / sh
如果做不到这一点,将导致RStudio Server无法验证版本英格兰vs伊朗让球,从而导致它无法使用。
6.4.1.2重新加载配置
为了改变/etc/英格兰vs伊朗让球rstudio/r-versions
文件,你必须重新启动RStudio服务器(通过英格兰vs伊朗让球Sudo 英格兰vs伊朗让球rstudio-服务器重启
)或发送SIGHUP
致本会的致辞rserver
的过程。
例如,发送SIGHUP
向rserver
修改配置文件后的流程:
pidof rserver | sudo xargs kill -s SIGHUP
6.4.1.3不包括版本
如果您的系统上有R的版本,这些版本通常由自动扫描获取,但您希望排除这些版本,那么最直接的方法是完全禁用R版本扫描,并显式指定您希望使用的所有版本/etc/英格兰vs伊朗让球rstudio/r-versions
.例如:
/etc/英格兰vs伊朗让球rstudio/rserver.conf
r-versions-scan=0
6.4.2版本切换
要在R版本之间切换,可以使用IDE右上方的版本菜单:
切换后,指定的版本将在当前会话的持续时间内使用(参见关于多R会话有关会话生命周期的详细信息)。新创建的R会话将继续使用为用户配置的任何默认R版本。
6.4.2.1为项目保存版本
不管用户当前的默认R版本是什么,保留R项目中使用的版本通常是有用的。这实际上是RStudio项目的默认行为,但是可以从英格兰vs伊朗让球一般方格全局选项对话框。
该配置允许用户在确认所有代码在新版本下按预期继续工作后,轻松地将项目逐个迁移到R的新版本。
6.4.3禁止使用多个版本
如果您希望阻止用户完全更改R版本,则可以使用r-versions-multiple
选择:
/etc/英格兰vs伊朗让球rstudio/rserver.conf
r-versions-multiple=0
属性,还可以在每个用户或每个组的基础上对此进行配置r-versions-multiple
选择在用户和组配置文件.
6.5R的升级管理
有多种方法可以处理对R新版本的升级,从允许每个用户完全控制他们升级的确切时间到强制所有人同时升级。
通过结合上面描述的各种选项,您可以创建一个高度自定义的升级策略,该策略反映了您的内部策略和用户的首选项。
6.5.1用户控制迁移
最保守的方法是从R的默认版本开始,并在服务器的生命周期内保持该默认版本。在这种配置下,你可以继续安装R的新版本,但用户永远不会运行这些新版本,除非他们明确表示要这样做。看到用户可配置的默认版本而且版本切换有关用户如何显式切换版本的详细信息。
6.5.2部分迁移
如果您对新R版本的态度是希望用户在方便的情况下尽可能快地迁移到新版本,那么您可以在引入它们的方式上更加积极。在这种情况下,您可以使用每个用户或组的默认版本特性可以立即迁移一部分新用户,但保留旧版本供那些请求它的用户使用。
注意,在这种情况下,R项目仍然保留它们以前的R版本,只要用户启用了中描述的选项为项目保存版本.
6.6会话初始化
在前面的小节中,我们描述了如何允许服务器发现用户使用的多个R版本。R环境是在会话开始执行之前加载的,并且在执行过程中会执行几个文件,如果任何变量设置不正确,这些文件可能会导致R环境出现问题。
当一个会话启动时,会发生以下步骤:
- 如果文件
/etc/英格兰vs伊朗让球rstudio/rsession-profile
存在,它是来源。 - 如果要加载的R版本指定要加载的模块,则用户的
~ / . bashrc
文件的来源和模块的加载使用模块加载
命令。 - 如果正在加载的R版本指定了要运行的预启动脚本,则它是源脚本。
- 将创建一个bash登录shell,它将来源
~ / . bash_profile
,~ / . bash_login
或者是~ / . profile
脚本,以最先发现的为准(按此顺序)。 - 会话与步骤1-4中构建的环境一起启动。
如您所见,有许多不同的脚本会影响在启动新会话时初始化的R环境,因此请密切关注这些脚本是如何影响您的特定环境的。