You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian 9 (Stretch) 安装poppler 0.73.0与R pdftools包报错求助

问题描述

我一直在Debian 9.13 (stretch)设备上尝试安装更高版本的poppler,编译过程一切正常,但安装R的pdftools包时一直报错,求解决方法。

我之前参照相关指南执行了如下操作:

sudo apt purge libpoppler-cpp-dev
sudo apt-get install libopenjp2-7-dev libgdk-pixbuf2.0-dev cmake checkinstall
sudo apt-get build-dep libpoppler-cpp-dev
cd 
wget https://poppler.freedesktop.org/poppler-0.73.0.tar.xz
tar -xf poppler-0.73.0.tar.xz
cd poppler-0.73.0
mkdir build
cd build
cmake ..
sudo checkinstall make install

上述操作执行完成后返回如下结果:

Done. The new package has been installed and saved to

 /home/admonda/poppler-0.73.0/build/poppler_0.73.0-1_amd64.deb

 You can remove it from your system anytime using: 

      dpkg -r poppler

随后我执行了以下命令,执行后无返回内容:
echo "export R_LD_LIBRARY_PATH=\$R_LD_LIBRARY_PATH:/usr/local/lib" >> .bashrc

之后我打开R控制台执行pdftools包安装命令,安装过程报错,报错日志如下:

> install.packages("pdftools")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
probando la URL 'https://cloud.r-project.org/src/contrib/pdftools_3.0.1.tar.gz'
Content type 'application/x-gzip' length 935692 bytes (913 KB)
==================================================
downloaded 913 KB

* installing *source* package ‘pdftools’ ...
** package ‘pdftools’ successfully unpacked and MD5 sums checked
** using staged installation
Found pkg-config cflags and libs!
Using PKG_CFLAGS=-I/usr/local/include/poppler/cpp -I/usr/local/include/poppler
Using PKG_LIBS=-L/usr/local/lib -lpoppler-cpp
** libs
g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -I/usr/local/include/poppler/cpp -I/usr/local/include/poppler -I"/usr/local/lib/R/site-library/Rcpp/include"  -fvisibility=hidden -fpic  -g -O2 -fdebug-prefix-map=/home/jranke/git/r-backports/stretch/r-base-3.6.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c RcppExports.cpp -o RcppExports.o
g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -I/usr/local/include/poppler/cpp -I/usr/local/include/poppler -I"/usr/local/lib/R/site-library/Rcpp/include"  -fvisibility=hidden -fpic  -g -O2 -fdebug-prefix-map=/home/jranke/git/r-backports/stretch/r-base-3.6.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c bindings.cpp -o bindings.o
g++ -std=gnu++11 -shared -L/usr/lib/R/lib -Wl,-z,relro -o pdftools.so RcppExports.o bindings.o -L/usr/local/lib -lpoppler-cpp -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/00LOCK-pdftools/00new/pdftools/libs
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘pdftools’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/usr/local/lib/R/site-library/00LOCK-pdftools/00new/pdftools/libs/pdftools.so':
  libpoppler-cpp.so.0: cannot open shared object file: No such file or directory
Error: loading failed
Ejecución interrumpida
ERROR: loading failed
* removing ‘/usr/local/lib/R/site-library/pdftools’

The downloaded source packages are in
        ‘/tmp/RtmpAXvNGB/downloaded_packages’
Warning message:
In install.packages("pdftools") :
  installation of package ‘pdftools’ had non-zero exit status
解决方案

报错核心是系统动态链接库没有识别到你编译安装到/usr/local/lib路径下的poppler库文件,你之前的操作漏了更新缓存和生效环境变量的步骤,按以下顺序执行即可:

  • 第一步:更新系统动态链接库缓存,让系统识别新安装的so文件
    sudo ldconfig
  • 第二步:验证库文件确实存在,执行以下命令如果有输出则为正常
    ls /usr/local/lib | grep libpoppler-cpp.so.0
  • 第三步:生效你之前写入.bashrc的环境变量,避免R读不到路径配置
    source ~/.bashrc
  • 第四步:在当前终端直接打开R,重新安装pdftools即可
    install.packages("pdftools")

如果以上操作还是报错,可以用强制指定库路径的方式启动R后再安装:
LD_LIBRARY_PATH=/usr/local/lib R

内容的提问来源于stack exchange,提问作者Andres Mora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:27:02