【问题标题】:How to use `ln -s` to change between R Versions on Mac?如何使用 `ln -s` 在 Mac 上的 R 版本之间进行切换?
【发布时间】:2019-06-06 15:59:35
【问题描述】:

RStudio support article 表示,如果您“直接使用 ln -s 更新 R.framework/Versions/Current 目录别名”,则可以在 Mac 上的不同 R 版本之间切换

您究竟如何使用ln -s 在 R 版本之间进行更改?

当我在终端输入 ls -l /Library/Frameworks/R.framework/Versions/ 时,我看到了:

total 0
drwxrwxr-x  6 root  admin  192 Jan 15 09:04 3.3
drwxrwxr-x  6 root  admin  192 Jun  5 16:36 3.5
drwxrwxr-x  3 root  admin   96 Jun  5 16:36 3.6
lrwxr-xr-x  1 root  admin    3 Jun  5 16:36 Current -> 3.5

但我不确定如何使用ln -s 在这些 R 版本之间进行切换。我目前已通过重新下载 3.5 从 3.6“切换”到 3.5。我想避免的一种做法。

在我的终端中,我输入了rm /Library/Frameworks/R.framework/Versions/Current,它确实删除了现有的 Current。然后在单独的尝试中我输入了ln -s 3.6 /Library/Frameworks/R.framework/Versions/Current

这改变了符号链接

ls -l /Library/Frameworks/R.framework/Versions/ 
total 0 
drwxrwxr-x 6 root admin 192 Jan 15 09:04 3.3 
drwxrwxr-x 6 root admin 192 Jun 5 16:36 3.5 
drwxrwxr-x 4 root admin 128 Jun 6 09:09 3.6 
lrwxr-xr-x 1 joepowers admin 3 Jun 6 09:15 Current -> 3.6

但是当我在控制台中输入 R.version 时,我会返回 3.4.3

接下来我尝试了

ln -s /Library/Frameworks/R.framework/Versions/3.6 /Library/Frameworks/R.framework/Versions/Current
ls -l /Library/Frameworks/R.framework/Versions/
total 0
drwxrwxr-x  6 root       admin  192 Jan 15 09:04 3.3
drwxrwxr-x  3 root       admin   96 Jun  6 09:21 3.5
drwxrwxr-x  7 root       admin  224 Jun  6 09:21 3.6
lrwxr-xr-x  1 joepowers  admin   44 Jun  6 09:23 Current -> /Library/Frameworks/R.framework/Versions/3.6

但在控制台中输入R.version 仍然返回 3.4.3,即使重新启动 RStudio。

【问题讨论】:

  • 您是否从源代码安装了其他版本的 R(例如通过自制软件?)。那篇文章的下一部分说,默认情况下,R 在默认为R.framework 中的版本之前(按顺序)在/usr/bin/R/usr/bin/local/R/opt/local/bin/R 中查找R。这些文件夹中是否有 R 版本?
  • 在控制台中输入R.home()会得到什么?

标签: r


【解决方案1】:

ln -s 创建一个符号链接,也称为别名(在 Mac 上)或快捷方式(在 Windows 上)。

当它启动 R 时,RStudio 会在 /Library/Frameworks/R.framework/Versions/Current 中加载 R 的版本。

从您在上面发布的视图中,我们可以看到您安装了 3 个版本的 R(3.33.53.6)。 /Current 实际上是3.5 的符号链接(这就是Current -> 3.5 的意思)。

如果你想改变这个,你需要:

  1. 使用以下命令转到相应的目录:cd /Library/Frameworks/R.framework/Versions/
  2. 删除现有的Current 符号链接:rm Current
    • rm 将删除目录的符号链接,但不会删除目录本身
  3. 使用以下命令创建指向 3.6 版的新符号链接:ln -s 3.6 Current

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2013-08-06
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多