在 jupyter R docker 中安装 systemfonts 时出现致命错误

fatal error installing systemfonts in jupyter R docker

我是 运行 docker 上的 jupyterlabs,想安装 rvg 包。其中一个依赖项是 systemfonts,当我尝试使用 install.packages("systemfonts") 安装它时,我得到:

Warning: unable to access index for repository https://cran.yu.ac.kr/src/contrib:
  cannot open URL 'https://cran.yu.ac.kr/src/contrib/PACKAGES'
Warning message:
package ‘systemfonts’ is not available for this version of R

A version of this package for your version of R might be available elsewhere,
see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages

所以我从 CRAN 下载了 tar.gz 文件并从文件安装,但是我得到一个致命错误:

    > install.packages("systemfonts_1.0.2.tar.gz", repo = NULL, type = "source")
* installing *source* package ‘systemfonts’ ...
** package ‘systemfonts’ successfully unpacked and MD5 sums checked
** using staged installation
Using PKG_CFLAGS=
Using PKG_LIBS=-lfontconfig -lfreetype
** libs
rm -f systemfonts.so caches.o cpp11.o dev_metrics.o font_matching.o font_registry.o ft_cache.o string_shape.o font_metrics.o font_fallback.o string_metrics.o emoji.o cache_store.o init.o unix/FontManagerLinux.o
x86_64-conda-linux-gnu-c++ -std=gnu++11 -I"/opt/conda/lib/R/include" -DNDEBUG  -I'/opt/conda/lib/R/library/cpp11/include' -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include -Wl,-rpath-link,/opt/conda/lib   -fpic  -fvisibility-inlines-hidden  -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/r-base-split_1607284869564/work=/usr/local/src/conda/r-base-4.0.3 -fdebug-prefix-map=/opt/conda=/usr/local/src/conda-prefix  -c caches.cpp -o caches.o
In file included from caches.h:7,
                 from caches.cpp:1:
ft_cache.h:9:10: fatal error: ft2build.h: No such file or directory
    9 | #include <ft2build.h>
      |          ^~~~~~~~~~~~
compilation terminated.
make: *** [/opt/conda/lib/R/etc/Makeconf:181: caches.o] Error 1
ERROR: compilation failed for package ‘systemfonts’
* removing ‘/opt/conda/lib/R/library/systemfonts’
Warning message:
In install.packages("work/corehead_data/systemfonts_1.0.2.tar.gz",  :
  installation of package ‘work/corehead_data/systemfonts_1.0.2.tar.gz’ had non-zero exit status

我试着按照这个 SO Post,输入 sudo apt-get install -y libfreetype6 得到 freetype,但它已经是最新版本了。我不确定还能尝试什么,希望有人可以提供一些专业知识。谢谢。

搜索“ft2build.h: No such file or directory Ubuntu”会导致 this issue on systemfonts library GitHub,其中显示了 Ubuntu 20.04 编译错误的解决方法:

sudo apt-get update
sudo apt-get install libfontconfig1-dev

这应该可以帮助您从 tar.gz 源代码编译库。