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

smdnsysy  于 2023-03-15  发布在  其他
关注(0)|答案(3)|浏览(140)

我尝试在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可以做到这一点?到目前为止,使用其他软件包是很直接的,但我对这个一无所知...
先谢了!

ev7lccsx

ev7lccsx1#

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

46qrfjad

46qrfjad2#

对我来说,这是什么做的把戏:
将jpeg-turbo安装在非标准位置,例如$HOME/local,从:
https://github.com/libjpeg-turbo/libjpeg-turbo/releases

cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/local
make
make install

然后将这些全局变量指向.bashrc中的安装位置:

export LIBRARY_PATH=$HOME/local/lib64:$HOME/local/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=$HOME/local/lib64:$HOME/local/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=$HOME/local/include:$C_INCLUDE_PATH

然后再次尝试R包

dnph8jn4

dnph8jn43#

我在R中的install.packages()命令中遇到了同样的问题--由于某种原因--with-libjpeg-include没有将编译器指向我指定的非标准位置。
首先,我将libjpeglink)安装在非标准位置。

# in bash: 
cd 
mkdir /home/tpytsui/libjpeg
cd /home/tpytsui/libjpeg
# download libjpeg.zip into cd
unzip libjpeg.zip
cd /home/tpytsui/libjpeg/libjpeg-master
./configure --prefix=/home/tpytsui/libjpeg/local
make
# make test # run make test to ensure no complaints
make install

然后,我将libjpeg的路径添加到LD_LIBRARY_PATH。

# in bash
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/tpytsui/libjpeg/local/lib

然后,在R中,我告诉c编译器(在我的例子中是gcc)在编译文件时去哪里查找,通常我们不应该这样做,但我们这样做只是因为configure.args不起作用。

# in R
Sys.setenv(C_INCLUDE_PATH = "/home/tpytsui/libjpeg/local/include")
Sys.setenv(LIBRARY_PATH = "/home/tpytsui/libjpeg/local/lib")

最后,我安装了r包jpeg,没有必要添加config.args,因为它们根本不起作用。

# in R
install.packages('jpeg', type='source', repos = "http://cran.rstudio.com")

相关问题