I just started using the cluster, trying use R with the standard package tidyverse.
Upon using install.packages(“tidyverse”), there is an error due to the fact that the R-dependency textshaping
has a system dependency.
Configuration failed to find the harfbuzz freetype2 fribidi library. Try installing:
- deb: libharfbuzz-dev libfribidi-dev (Debian, Ubuntu, etc)
- rpm: harfbuzz-devel fribidi-devel (Fedora, EPEL)
- csw: libharfbuzz_dev libfribidi_dev (Solaris)
- brew: harfbuzz fribidi (OSX)
So I tried to load these dependencies with:
module load GCCcore/12.2.0 HarfBuzz/5.3.1
module load GCCcore/13.2.0 FriBidi/1.0.13
But I still get a (slightly different) error:
pkg-config: symbol lookup error: pkg-config: undefined symbol: pkgconf_pkg_dir_list_build
pkg-config: symbol lookup error: pkg-config: undefined symbol: pkgconf_pkg_dir_list_build
Using PKG_CFLAGS=
Using PKG_LIBS=-lfreetype -lharfbuzz -lfribidi -lpng
If harfbuzz freetype2 fribidi is already installed, check that ‘pkg-config’ is in your
PATH and PKG_CONFIG_PATH contains a harfbuzz freetype2 fribidi.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars=‘INCLUDE_DIR=… LIB_DIR=…’
Could you please advise me on what is the pkg-config: symbol lookup error: pkg-config: undefined symbol: pkgconf_pkg_dir_list_build
error, and what should be done to have
install.packages("textshaping")
to run?
Thanks!
Minimal reprex:
module load GCC/11.3.0 OpenMPI/4.1.4 R/4.2.1
module load GCCcore/12.2.0 HarfBuzz/5.3.1
module load GCCcore/13.2.0 FriBidi/1.0.13
R
install.packages("textshaping")
Dear @Matthieu.Stigler
you can’t load the software that are requesting different version of GCC or OpenMPI at the same time: you need to stick the the same common base for all the software you load.
For your case, this should work:
(baobab)-[sagon@login2 ~]$ ml purge
(baobab)-[sagon@login2 ~]$ ml GCC/11.3.0 OpenMPI/4.1.4 R/4.2.1 HarfBuzz/4.2.1 FriBidi/1.0.12
Best
Thanks a lot @Yann.Sagon for looking into it!
Unfortunately, I still see the same error message, despite using your new line, see below output and a minimal reproducible example.
I wonder whether I am missing the -dev
versions of HarfBuzz or FriBidi, noting that the error message mentions:
Configuration failed to find the harfbuzz freetype2 fribidi library. Try installing:
- deb: libharfbuzz-dev libfribidi-dev (Debian, Ubuntu, etc)
- rpm: harfbuzz-devel fribidi-devel (Fedora, EPEL)
- csw: libharfbuzz_dev libfribidi_dev (Solaris)
Is it possible that baobab’s FriBidi/1.0.12
corresponds to the non-devel version of harfbuzz-devel
? How can I check that, in particular whether the file hb-ft.h
is included?
Thanks!!
minimum reproducible code
module load GCC/11.3.0 OpenMPI/4.1.4 R/4.2.1 HarfBuzz/4.2.1 FriBidi/1.0.12
R
install.packages("textshaping")
error message
pkg-config: symbol lookup error: pkg-config: undefined symbol: pkgconf_pkg_dir_list_build
pkg-config: symbol lookup error: pkg-config: undefined symbol: pkgconf_pkg_dir_list_build
Using PKG_CFLAGS=
Using PKG_LIBS=-lfreetype -lharfbuzz -lfribidi -lpng
--------------------------- [ANTICONF] --------------------------------
Configuration failed to find the harfbuzz freetype2 fribidi library. Try installing:
- deb: libharfbuzz-dev libfribidi-dev (Debian, Ubuntu, etc)
- rpm: harfbuzz-devel fribidi-devel (Fedora, EPEL)
- csw: libharfbuzz_dev libfribidi_dev (Solaris)
- brew: harfbuzz fribidi (OSX)
If harfbuzz freetype2 fribidi is already installed, check that ‘pkg-config’ is in your
PATH and PKG_CONFIG_PATH contains a harfbuzz freetype2 fribidi.pc file . If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars=‘INCLUDE_DIR=… LIB_DIR=…’
-------------------------- [ERROR MESSAGE] ---------------------------
:1:10: fatal error: hb-ft.h: No such file or directory
compilation terminated.
Hello,
You can check like that:
(baobab)-[testsagon1@login2 ~]$ ls $EBROOTHARFBUZZ/include/harfbuzz/hb-ft.h
/opt/ebsofts/HarfBuzz/4.2.1-GCCcore-11.3.0/include/harfbuzz/hb-ft.h
It seems the error is due to
pkg-config: symbol lookup error: pkg-config: undefined symbol: pkgconf_pkg_dir_list_build
You are using pkg-config
from the OS which is version 1.4.2. I tried with pkg-config
from EasyBuild and I could install the package successfully (this time I tested it!)
module load GCC/11.3.0 OpenMPI/4.1.4 R/4.2.1 HarfBuzz/4.2.1 FriBidi/1.0.12 pkg-config/0.29.2
Best
Yann
Excellent, that did the trick, thanks a lopt @Yann.Sagon !!
As an aside, I’m slightly confused by the package numbers… are we here really downgrading pkg-config from 1.4.2. to 0.29, or are these different version numbers?
Thanks!
I have no idea, I didn’t checked.