问题
在服务器的R中安装ggpubr包失败,查看报错日志发现,依赖的nloptr包安装失败。但单独安装nloptr仍然失败。
解决过程
1. 在服务器上安装nlopt(注意不是nloptr,而是单独的一个程序),参考nlopt的官网https://nlopt.readthedocs.io/en/latest/NLopt_Installation/,下载v2.7.1.tar.gz,按照说明安装
cmake . && make && sudo make install
然而发现系统的cmake版本过低,nlopt需要3版本的cmake,而服务器上的cmake是/usr/bin/cmake,版本是2.8.12.2. 所以又下载了cmake,使用cmake的绝对路径进行nlopt的编译,即
~/software/install/cmake-3.24.2-linux-x86_64/bin/cmake .
使用sudo权限,成功将nlopt安装到系统目录,在/usr/local/lib64中可以看到libnlopt.so libnlopt.so.0 libnlopt.so.0.11.1 这些文件。然而,重新安装nloptr包还是失败。
(中间根据其他人的帖子,尝试安装libnlopt-dev,我们服务器的unix是redhat版本,没有apt。使用yum install也找不到libnlopt-dev,虽然在centos的rpm包官网上能找到libnlopt-dev,将其下载到本地,用yum localinstall命令安装这些包,但仍然失败。)
2. nloptr的安装信息中提示cmake出错。于是猜想,可能是nplotr在编译过程中用的还是系统中2版本的cmake,所以我在.bashrc文件中将3版本的cmake添加到PATH中。然后使用“which cmake”查看cmake的路径是否3版本的cmake。然后再次安装nplotr,成功。继而安装ggbubr,成功。
export PATH= ~/software/install/cmake-3.24.2-linux-x86_64/bin/:$PATH
小结
安装3版本的cmake,并将其添加至环境变量,可成功安装nloptr包,进而可成功安装ggpubr包。
网友评论