如何指定 R CMD 执行目录?

19

之前我能够通过命令行启动Rserve:

R CMD Rserve

在Ubuntu升级到3.0.2后,我遇到了以下问题:

/usr/lib/R/bin/Rcmd: 62: exec: Rserve: not found

我已经尝试重新安装,并手动启动

R
> install.packages('rserve')
> ...compiles successfully...
> RServe()
Starting Rserve:
 /usr/lib/R/bin/R CMD /home/user1/R/x86_64-pc-linux-gnu-library/3.0/Rserve/libs//Rserve

...这很好地完成了任务。

R CMD Rserve仍然以与上述相同的错误失败。我已尝试通过指定路径来解决:

export RHOME="/home/jwiley/R/x86_64-pc-linux-gnu-library/3.0/Rserve/libs/"
export R_LIBS="/home/jwiley/R/x86_64-pc-linux-gnu-library/3.0/Rserve/libs/"

我该如何说服 R CMD 使用正确的目录?


为了更好地理解您的问题,请在bash中尝试以下命令:which R和wich Rserve。 - Mirko Ebert
你的R启动时可能没有加载你的库,这种情况是否可能发生?如果你在.Rprofile中添加library("Rserve"),它是否能够正常工作? - Prolix
3个回答

8
在我的情况下,这是修复方法(在安装Rserve之后):
cd /usr/lib/R/bin
ln -s /usr/lib/R/site-library/Rserve/libs/Rserve Rserve

这解决了Ubuntu 14.04(LTS)上的问题。

R库的位置可能会有所不同,可以从R中检查Rserve的实际路径:

system.file("libs", "Rserve", package="Rserve")

3

在Ubuntu 16.04终端中以守护进程方式启动Rserve时,我遇到了相同的问题。

修复命令如下。

apt-cache policy r-cran-rserve
sudo apt-get install r-cran-rserve

2

解决方法:

cd /usr/lib/R/bin/
ln -sf ../site-library/Rserve/libs/Rserv
ln -sf ../site-library/Rserve/libs/Rserve.db

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接