фатальная ошибка при установке системных шрифтов в докере jupyter R

Я запускаю 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

Итак, я скачал файл tar.gz из CRAN и установил из файла, но получаю фатальную ошибку:

    > 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 Опубликовать, введя sudo apt-get install -y libfreetype6, чтобы получить freetype, но это уже самая новая версия. Я не уверен, что еще попробовать, надеюсь, кто-то может поделиться опытом. Спасибо.


person Spencer Trinh    schedule 23.06.2021    source источник


Ответы (1)


Поиск ft2build.h: No such file or directory Ubuntu приводит к этой проблеме в библиотеке системных шрифтов GitHub, где найден обходной путь для показана ошибка компиляции для Ubuntu 20.04:

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

Это должно помочь вам скомпилировать библиотеку из исходного кода tar.gz.

person krassowski    schedule 23.06.2021
comment
привет @krassowski, я попробовал, но получил это сообщение: Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package libfontconfig1-dev; потом попробовал без -dev: Building dependency tree Reading state information... Done libfontconfig1 is already the newest version (2.13.1-2ubuntu3). libfontconfig1 set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. - person Spencer Trinh; 23.06.2021
comment
в этом сообщении на github упоминается переустановка freetype через Brew, я пытался установить бесплатный тип, но это уже самая новая версия. - person Spencer Trinh; 23.06.2021
comment
Какую версию Ubuntu вы используете? - person krassowski; 23.06.2021
comment
Я имею в виду, что я сбит с толку, потому что вы говорите, что использовали sudo apt-get, который очень похож на то, что вы используете Ubuntu, но вы упоминаете Brew, который звучит как Mac, поэтому я не уверен, что именно находится в вашем образе докера (и какая версия R является вы используете). - person krassowski; 23.06.2021
comment
да, образ докера основан на Ubuntu, VERSION="20.04.1 LTS (Focal Fossa). В сообщении SO, на которое вы ссылались, упоминалось использование Brew для установки freetype. Я просто указал на этот факт из поста. - person Spencer Trinh; 24.06.2021
comment
Если вы используете Ubuntu 20.04, доступен этот пакет: launchpad.net/ubuntu/focal /+пакет/libfontconfig1-dev. Может быть, вам нужно сначала запустить sudo apt update? Извините, но на данный момент эта проблема больше не связана с JupyterLab, IRkernel или даже R, это просто проблема с конфигурацией Ubuntu, и это не входит в мою компетенцию. - person krassowski; 24.06.2021
comment
ваше предложение обновить сработало. Затем я смог установить libfontconfig1-dev. Большое спасибо! - person Spencer Trinh; 24.06.2021