无法完成 pdftools 安装 Ubuntu 18.04 for R 支持 readtext

无法完成 pdftools 安装 Ubuntu 18.04 for R 支持 readtext

我读过这篇文章如何安装poppler并对自己的困难充满希望,但没有成功。

我在 Ubuntu 18.04 Precision 笔记本电脑的 Anaconda 下运行 R。我想安装 readtext(R 包)来支持一些语料库语言学研究,并尝试从 R 终端窗口进行安装。我已经安装了 quanteda,没有任何问题,所以当 readtext 因 pdftools 要求而跳闸时,我感到很惊讶,而 pdftools 要求又跳闸了

cannot find -lpoppler-cpp

我已经使用以下方法多次安装和卸载了 libpoppler-cpp-dev

sudo apt-get install -y libpoppler-cpp-dev

安装成功

libpoppler-cpp-dev is already the newest version (0.74.0-bionic0)

当我尝试从 R 安装 readtext 时(再次在 Anaconda 下运行,这可能是个问题),它到达 pdftools 安装并找到本地 pkg-config 信息

  • 安装来源软件包“pdftools”...** 软件包“pdftools”已成功解压,MD5 和已检查 ** 使用分阶段安装 找到 pkg-config cflags 和 libs!使用 PKG_CFLAGS=-I/usr/include/poppler/cpp -I/usr/include/poppler 使用 PKG_LIBS=-lpoppler-cpp

但后来却找不到它:

/home/dalton/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld:找不到 -lpoppler-cpp collect2:错误:ld 返回 1 退出状态 make:*** [/home/dalton/anaconda3/lib/R/share/make/shlib.mk:6: pdftools.so] 错误 1 ​​错误:包“pdftools”编译失败

  • 删除'/home/dalton/anaconda3/lib/R/library/pdftools'

当我自己检查 pkg-config 时:

pkg-config --cflags --libs poppler-cpp

-I / usr /包括/波普勒/ cpp -I / usr /包括/波普勒-lpoppler-cpp

我确实找到了与 R 中的安装程序相同的信息。当我使用系统 grep 追踪 poppler 时:

ls --recursive | grep -E "poppler"

我没有找到 poppler-cpp,但我找到了 libpoppler-cpp-dev 和其他 libpoppler-cpp 文件/文件夹。但是,如果我查询 pkg-config:

pkg-config --cflags --libs libpoppler-cpp-dev

它告诉我

在 pkg-config 搜索路径中未找到软件包 libpoppler-cpp-dev。也许您应该将包含“libpoppler-cpp-dev.pc”的目录添加到 PKG_CONFIG_PATH 环境变量中。未找到软件包“libpoppler-cpp-dev”。

我使用了 @jeroen 在上面引用的 SE 帖子中推荐的适用于 Ubuntu 18.04 (Bionic) 的 Poppler 0.74.0 反向移植版 PPA,但似乎 Ubuntu 本身和 Anaconda R 之间存在一些混淆,因为 R 安装正在寻找 poppler-cpp,但 libpoppler-cpp-dev 似乎是合适的目标。因为我在 Anaconda 下运行 R,所以我的系统似乎不知道 R:

apt-cache policy r-base-core

返回

r-base-core:已安装:(无)候选版本:3.4.4-1ubuntu1 版本表:3.4.4-1ubuntu1 500 500http://us.archive.ubuntu.com/ubuntubionic/universe amd64 软件包

我意识到这一切都有些混乱,但我希望有人能认识到一个明显的问题并告诉我该如何解决,例如修改 poppler-cpp.pc 以指向新的库或类似的东西。

答案1

解决方案是留在 Anaconda/conda 环境中,因为 R 在那里运行,这有点像周围 Ubuntu 海中的一座岛屿(如果这个比喻没有让你晕船的话)。只需这样做

conda install -c conda-forge poppler

这花了相当长一段时间才完成,因为最初两次“解决环境”的尝试都失败了,但 conda 最终尝试了另一个 repodata 源并成功了:

package                    |            build
---------------------------|-----------------
certifi-2019.9.11          |           py37_0         147 KB  conda-forge
conda-4.10.1               |   py37h89c1867_0         3.1 MB  conda-forge
openjpeg-2.3.1             |       h21c5421_1         469 KB  conda-forge
poppler-0.65.0             |       h581218d_1         1.3 MB
poppler-data-0.4.10        |                0         3.8 MB  conda-forge
python_abi-3.7             |          1_cp37m           4 KB  conda-forge
------------------------------------------------------------
                                       Total:         8.7 MB

等等,以祝福结束

正在执行交易:完成

然后我打开一个终端窗口并启动 R:

dalton@dalton-Precision-3541:$ R

R 版本 3.6.1(2019-07-05)——“脚趾的动作”版权所有 (C) 2019 R 统计计算基金会平台:x86_64-conda_cos6-linux-gnu(64 位)

并安装pdftools:

> install.packages("pdftools")
  • 安装来源软件包“pdftools”...** 软件包“pdftools”已成功解压,MD5 和已检查 ** 使用分阶段安装 找到 pkg-config cflags 和 libs!使用 PKG_CFLAGS=-I/usr/include/poppler/cpp -I/usr/include/poppler 使用 PKG_LIBS=-lpoppler-cpp

等等。对于那些感兴趣的人,Anaconda 库文件位于以下区域:

-lpoppler-cpp -L / home / dalton / anaconda3 / lib / R / lib -lR

换句话说,在 conda 安装 poppler 之后,我的 R 安装 pdftools 可以找到 poppler-cpp。pdftools 完成:

** 测试已安装的包是否保留临时安装路径的记录

  • 完成(pdftools)

然后我就能完成我原来的安装 readtext 的任务了,这需要 poppler 和 pdftools:

install.packages("readtext")

** 测试已安装的包是否保留临时安装路径的记录

  • 完成 (阅读文本)

下载的源包位于 '/tmp/Rtmpxksozx/downloaded_pa​​ckages' 中,正在更新 '.Library' 中包的 HTML 索引,正在制作 'packages.html' ... 完成

图书馆(阅读文本)

Ubuntu 中 Anaconda/conda 的复杂世界一切都好。一旦你搞清楚了如何沟通,它就是一个非常适合科学和学术计算的环境。

相关内容