解决conda报错: `x86_64-conda_cos6-linux-gnu-cc: command not found`

如何解决conda - rstudio-server的这个报错?

背景:

我在Windows subsystem for Linux下面安装了anaconda,并使用这个anaconda安装了R(顺便配置了一个conda env,叫做r420)。为了更方便的使用这个R,我又安装了R studio server,通过浏览器调用这个Linux版本的R。

最近在使用中,发现了一个问题:安装 R 包时,出现错误:/bin/sh: x86_64-conda_cos6-linux-gnu-cc: command not found ,这导致我没法安装新的软件包

解决方法:

经过检查,如果我在shell中调用R安装R包,则不会出错。因此不是R自带的编译工具链的问题。

经过上网搜索,猜测可能是Rstudio server环境变量中没有包含R自带的编译工具链。

我的Rtools编译工具链的路径为:

1
/home/cyclin/wsl/anaconda3/envs/r420/bin

在Rstudio的控制台中查询Rstudio server的环境变量

1
2
> system('echo $PATH')
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/rstudio-server/bin/postback

可见,并没有包含Rtools编译工具链的路径。

这个环境变量应该是可以配置的。经过查询资料,发现Rstudio server有一个配置文件叫做/etc/rstudio/env-vars,这个配置文件应该是和环境变量有关的。因此我们修改一下这个文件

1
2
# set virtual environment for Rstudio server.
PATH=/home/cyclin/.local/bin:/home/cyclin/wsl/anaconda3/envs/r420/bin:/home/cyclin/wsl/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

之后,重启Rstudio server的服务进程,在浏览器中重新打开Rstudio sever,在控制台中查询环境变量

1
2
> system('echo $PATH')
/home/cyclin/.local/bin:/home/cyclin/wsl/anaconda3/envs/r420/bin:/home/cyclin/wsl/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/rstudio-server/bin/postback

现在已经有了Rtools编译工具链的路径。

经过测试,现在可以在Rstudio中成功编译安装软件包。问题解决。