【发布时间】:2021-07-16 21:20:40
【问题描述】:
当我在我的 Linux 终端中输入 R CMD ... 时,我会收到一个对话框来选择我要运行的 R 版本:
$ R CMD
Available Versions:
------------------------
3.4.0
3.4.1
3.4.2
3.4.4
3.5.0
3.5.1
3.5.2
3.5.3
3.6.0
3.6.1
4.0.2
Enter The R Version You'd Like To Run:
是否可以通过命令行轻松解决此问题?
@MrFlick 发现的问题如下
R 版本的选择来自 R 命令的非标准包装器:
$ which R
alias R='/opt/rVersionSelect.sh'
/opt/rVersionSelect.sh
这是脚本,你可以在其中看到选择机制:
$ head -500 /opt/rVersionSelect.sh
#!/bin/bash
RDIR=/opt/R
echo "Available Versions:"
echo "------------------------"
for rVer in $RDIR/* ; do
echo $(echo $rVer | cut -d- -f2)
done
read -n 5 -p "Enter The R Version You'd Like To Run: " RunThisVersion
if [ -d $RDIR/R-$RunThisVersion/ ] ; then
echo "Loading $RunThisVersion...."
wait 10
clear
$RDIR/R-$RunThisVersion/bin/R --interactive
else
echo "Unrecognized Version: $RunThisVersion"
fi
事实证明,R CMD 中的 R 需要指向已安装的众多 R 版本之一。例如,/opt/R/R-3.5.3/bin/R CMD。
【问题讨论】:
-
这看起来很奇怪。这不是
R CMD的正常行为。which R返回什么?R命令周围有一些非标准的包装器吗? -
我很确定我找到了下面的解决方案。从
which R我得到alias R='/opt/rVersionSelect.sh'。是的,R 命令有一个非标准的包装器。我会将其放在原始问题帖子中。 -
您所描述的不是 R 在大多数系统上的安装方式。您必须进行一些非标准安装。目前尚不清楚您的系统是如何配置的,因此不清楚还有谁会遇到问题。您提供的“解决方案”对大多数人都不起作用。最好明确说明在什么情况下这是必要的。
rVersionSelect.sh是从哪里来的?那是你写的剧本吗? -
真正的问题是包装器写得不好,并且似乎没有考虑到对 R 的非交互式调用,例如
R CMD。目前尚不清楚该包装器来自何处,但问题就在那里,而不是 R 本身。或许咨询您的系统管理员以找到推荐的解决方法。 -
rVersionSelect.sh被管理员放在那里,我没有管理员权限。我同意更好的脚本应该能够容纳异常,例如R CMD。
标签: r linux installation command-line package