无法安装R ggmap包:安装‘jpeg’软件包时编译失败。

8

当我尝试在我的R服务器(安装在Redhat linux上)安装“ggmap”包时,遇到错误消息。请帮忙解决,对我来说安装“ggmap”非常重要,否则请建议替代方案。

`> install.packages("ggmap", dependencies = T)
Installing package into ‘/home/rk/R/x86_64-redhat-linux-gnu-library/3.1’
(as ‘lib’ is unspecified)
also installing the dependency ‘jpeg’

trying URL 'http://cran.rstudio.com/src/contrib/jpeg_0.1-8.tar.gz'
Content type 'application/x-gzip' length 18046 bytes (17 KB)
opened URL
==================================================
downloaded 17 KB

trying URL 'http://cran.rstudio.com/src/contrib/ggmap_2.5.2.tar.gz'
Content type 'application/x-gzip' length 2948233 bytes (2.8 MB)
opened URL
==================================================
downloaded 2.8 MB

* installing *source* package ‘jpeg’ ...
** package ‘jpeg’ successfully unpacked and MD5 sums checked
** libs
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG  -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic  -c read.c -o read.o
In file included from read.c:1:
rjcommon.h:11:21: error: jpeglib.h: No such file or directory
rjcommon.h:29:2: error: #error "Sorry, only 8-bit libjpeg is supported"
In file included from read.c:1:
rjcommon.h:33: warning: return type defaults to ‘int’
rjcommon.h: In function ‘METHODDEF’:
rjcommon.h:33: error: expected declaration specifiers before ‘Rjpeg_error_exit’
rjcommon.h:41: error: expected declaration specifiers before ‘METHODDEF’
rjcommon.h:51: error: field ‘api’ has incomplete type
rjcommon.h:50: warning: empty declaration
rjcommon.h:59: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
rjcommon.h:75: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
In file included from read.c:3:
jcompat.h:7:20: error: jerror.h: No such file or directory
In file included from read.c:3:
jcompat.h:13: error: expected declaration specifiers before ‘METHODDEF’
jcompat.h:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘eoi_buf’
jcompat.h:15: error: expected declaration specifiers before ‘;’ token
jcompat.h:17: error: expected declaration specifiers before ‘METHODDEF’
jcompat.h:26: error: expected declaration specifiers before ‘METHODDEF’
jcompat.h:53: warning: ‘struct jpeg_decompress_struct’ declared inside parameter list
jcompat.h:53: warning: its scope is only this definition or declaration, which is probably not what you want
jcompat.h:53: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
read.c:7: warning: ‘struct jpeg_decompress_struct’ declared inside parameter list
read.c:7: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
read.c:29: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
rjcommon.h:32: error: old-style parameter declarations in prototyped function definition
read.c:176: error: expected ‘{’ at end of input
make: *** [read.o] Error 1
ERROR: compilation failed for package ‘jpeg’
* removing ‘/home/rk/R/x86_64-redhat-linux-gnu-library/3.1/jpeg’
Warning in install.packages :
  installation of package ‘jpeg’ had non-zero exit status
ERROR: dependency ‘jpeg’ is not available for package ‘ggmap’
* removing ‘/home/rk/R/x86_64-redhat-linux-gnu-library/3.1/ggmap’
Warning in install.packages :
  installation of package ‘ggmap’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpnFyWnM/downloaded_packages’
`

9
错误信息:jpeglib.h: No such file or directory。需要安装JPEG的头文件。在Ubuntu上,可以使用命令 sudo apt-get install libjpeg-dev 进行安装。 - user3710546
我没有Linux的Sudo访问权限。请建议一种可以从R控制台完成的替代方法。 - Ravi Kumar
1
我认为你需要与管理员交谈,要求他或她按照@Pascal的建议安装库并更新R的版本。你正在使用约两年前发布的R v3.1,而大多数最新的软件包都需要更新的R版本。 - RHertel
谢谢帮忙的 Pascal,它有效了。 - Ravi Kumar
一些Linux版本中的libjpeg-turbo-devel库中包含有jpeg.h文件。 - karthikbharadwaj
1个回答

13
< p >好的,在CentOS 7(< code >3.10.0-514.el7.x86_64< /code >)上,< /p > < p >我使用:< /p >
sudo yum install libjpeg-turbo-devel

为了在 RStudio 上使用 ggmap,需要修复其安装。


1
如果您在安装“jpeg” R软件包时遇到困难,这也适用。 - gr1zzly be4r
这对我在 RHEL 7.7 上发布应用程序到 Rstudio-connect 服务器上有所帮助。 - Santosh Garole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接