jpeg R软件包安装在非标准位置找不到jpeglib.h

时间:2019-05-10 14:52:59

标签: r linux installation libjpeg

我正在尝试在Linux服务器(其中没有sudo访问权限)的R服务器中安装jpeg软件包,并且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")

我得到了这个错误:

  

rjcommon.h: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可以解决问题?到目前为止,对于其他软件包,使用--with-package_name-lib是很直接的,但是我对这个软件包一无所知...

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试安装 libjpeg-turbo-devel 软件包。这就是我在 RHEL 7 上所做的。根据 this page,在 CentOS 7 上,包名称是相同的。