我尝试在Linux服务器的R中安装jpeg
包(我没有sudo访问权限),jpeg
安装找不到我本地安装的jpeglib.h
。当configure.args='--with-libjpeg-include=/path
失败时,我如何告诉R在哪里查找它?
服务器操作系统版本为CentOS Linux 7(核心)
在R中,我运行:
>install.packages('jpeg', lib="/shared/mybossusr/R3.5.0/lib", repos="https://mirrors.nic.cz/R/", destdir="/shared/mybossusr/usr/tmp")
我得到了这个错误:
常见时间:11:21:致命错误:jpeglib.h:没有此类文件或目录#include
所以我装了jpeg-turbo
wget https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-2.0.2.tar.gz
mkdir libjpeg-turbo-2
cd libjpeg-turbo-2
cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/shared/mybossusr/bin/libjpeg-turbo-2 /shared/mybossusr/download/libjpeg-turbo-2.0.2
make
make install
我查过了,jpeglib.h
在/shared/mybossusr/bin/libjpeg-turbo-2/include
我在~/.bashrc
的末尾添加了以下内容:
export CFLAGS="-I/usr/include -I=/shared/mybossusr/bin/libjpeg-turbo-2"
我退出并登录,当我尝试在R中安装jpeg
时,我得到了同样的错误。我还将库的位置添加到~/.barsh
的路径中:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/shared/mybossusr/bin/libjpeg-turbo-2/include
export PATH=$PATH:/shared/mybossusr/bin/libjpeg-turbo-2/include
以防万一,因为我不完全明白软件什么时候看哪里。做了source ~/.bashrc
,注销和登录,但什么都没有改变。
所以,我后来在R中尝试了我提出的一些论点:
install.packages('jpeg', lib="/shared/mybossusr/R3.5.0/lib", repos="https://mirrors.nic.cz/R/", destdir="/shared/mybossusr/R3.5.0/tmp", configure.args='--with-libjpeg-include=/shared/mybossuser/bin/jpeg/include')
以及:
install.packages('jpeg', lib="/shared/mybossusr/R3.5.0/lib", repos="https://mirrors.nic.cz/R/", destdir="/shared/mybossusr/R3.5.0/tmp", configure.args='--with-libjpeg=/shared/mybossuser/bin/jpeg')
或:
install.packages('jpeg', lib="/shared/mybossusr/R3.5.0/lib", repos="https://mirrors.nic.cz/R/", destdir="/shared/mybossusr/R3.5.0/tmp", configure.args='--with-libjpeg-lib=/shared/mybossuser/bin/jpeg/include')
尝试告诉R libjpeg
的安装位置,但没有任何效果。
有没有configure.args
可以做到这一点?到目前为止,使用其他软件包是很直接的,但我对这个一无所知...
先谢了!
3条答案
按热度按时间ev7lccsx1#
尝试安装
libjpeg-turbo-devel
软件包。这就是我在RHEL 7上所做的。根据this page,在CentOS 7上的软件包名称是相同的。46qrfjad2#
对我来说,这是什么做的把戏:
将jpeg-turbo安装在非标准位置,例如
$HOME/local
,从:https://github.com/libjpeg-turbo/libjpeg-turbo/releases
然后将这些全局变量指向
.bashrc
中的安装位置:然后再次尝试R包
dnph8jn43#
我在R中的
install.packages()
命令中遇到了同样的问题--由于某种原因--with-libjpeg-include
没有将编译器指向我指定的非标准位置。首先,我将
libjpeg
(link)安装在非标准位置。然后,我将libjpeg的路径添加到LD_LIBRARY_PATH。
然后,在R中,我告诉c编译器(在我的例子中是gcc)在编译文件时去哪里查找,通常我们不应该这样做,但我们这样做只是因为configure.args不起作用。
最后,我安装了r包
jpeg
,没有必要添加config.args,因为它们根本不起作用。