Linux系统下R语言writexl包安装失败问题求助
解决Linux环境下R语言writexl包安装失败问题
问题描述
在Linux Mint 21和Fedora 36系统的RStudio中尝试安装R语言的writexl包时失败,核心错误为编译阶段找不到zlib.h头文件,具体错误输出如下:
> install.packages("writexl") Installing package into ‘/home/scott/R/x86_64-pc-linux-gnu-library/4.2’ (as ‘lib’ is unspecified) 尝试获取URL 'https://cloud.r-project.org/src/contrib/writexl_1.4.1.tar.gz' Content type 'application/x-gzip' length 258461 bytes (252 KB) ================================================== 已下载252 KB * 正在安装*源码*包‘writexl’ ... ** 成功解压writexl包并校验MD5和 ** 使用分阶段安装 ** libs gcc -I"/usr/share/R/include" -DNDEBUG -Iinclude -DUSE_R_LANG -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-zYgbYq/r-base-4.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c write_xlsx.c -o write_xlsx.o gcc -I"/usr/share/R/include" -DNDEBUG -Iinclude -DUSE_R_LANG -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-zYgbYq/r-base-4.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c libxlsxwriter/app.c -o libxlsxwriter/app.o gcc -I"/usr/share/R/include" -DNDEBUG -Iinclude -DUSE_R_LANG -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-zYgbYq/r-base-4.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c libxlsxwriter/format.c -o libxlsxwriter/format.o gcc -I"/usr/share/R/include" -DNDEBUG -Iinclude -DUSE_R_LANG -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-zYgbYq/r-base-4.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c libxlsxwriter/theme.c -o libxlsxwriter/theme.o gcc -I"/usr/share/R/include" -DNDEBUG -Iinclude -DUSE_R_LANG -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-zYgbYq/r-base-4.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c libxlsxwriter/chart.c -o libxlsxwriter/chart.o gcc -I"/usr/share/R/include" -DNDEBUG -Iinclude -DUSE_R_LANG -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-zYgbYq/r-base-4.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c libxlsxwriter/hash_table.c -o libxlsxwriter/hash_table.o gcc -I"/usr/share/R/include" -DNDEBUG -Iinclude -DUSE_R_LANG -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-zYgbYq/r-base-4.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c libxlsxwriter/utility.c -o libxlsxwriter/utility.o gcc -I"/usr/share/R/include" -DNDEBUG -Iinclude -DUSE_R_LANG -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-zYgbYq/r-base-4.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c libxlsxwriter/content_types.c -o libxlsxwriter/content_types.o gcc -I"/usr/share/R/include" -DNDEBUG -Iinclude -DUSE_R_LANG -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-zYgbYq/r-base-4.2.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -c libxlsxwriter/packager.c -o libxlsxwriter/packager.o libxlsxwriter/packager.c:10:10: 致命错误:zlib.h:没有那个文件或目录 10 | #include <zlib.h> | ^~~~~~~~ 编译终止。 make: *** [/usr/lib/R/etc/Makeconf:168: libxlsxwriter/packager.o] 错误 1 ERROR: 编译包‘writexl’失败 * 正在移除‘/home/scott/R/x86_64-pc-linux-gnu-library/4.2/writexl’ Warning in install.packages : 安装包‘writexl’时退出状态非零
问题原因
writexl依赖的libxlsxwriter库需要zlib开发包提供的zlib.h头文件进行编译,系统中未安装该依赖包导致编译失败。
解决方案
根据不同Linux发行版,先安装对应的zlib开发包,再重新安装writexl:
1. Linux Mint 21(Debian/Ubuntu系)
打开终端执行以下命令安装zlib开发包:
sudo apt update && sudo apt install zlib1g-dev
2. Fedora 36(RPM系)
打开终端执行以下命令安装zlib开发包:
sudo dnf install zlib-devel
3. 重新安装writexl包
依赖安装完成后,回到RStudio中执行安装命令:
install.packages("writexl")
安装成功后可通过以下命令验证:
library(writexl)
若未报错则说明安装成功。
内容的提问来源于stack exchange,提问作者gaasantana
相关产品推荐
相关产品推荐

