1

I'm attempting to run some code that calls into XGBoost on a Ubuntu 18.04 machine. This code fails with AttributeError: 'XGBoostCostModel' object has no attribute 'pool', with the root cause:

Error message(s): ["/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /root/anaconda/envs/spell/lib/libxgboost.so)"]

I know nothing about the C/C++ packaging toolchain. Running the following code fragment, suggested in some other answers to similar questions, returns the following:

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.4
GLIBC_2.18
GLIBC_2.16
GLIBC_2.3.4
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

GLIBCXX_3.4.26 does indeed seem to be missing from this list. However, I cannot figure out what apt command I need to run to get something recent enough. When I run apt-get update && apt-get install libstdc++6 (no sudo, because this is in a Docker container) I am told:

libstdc++6 is already the newest version (8.4.0-1ubuntu1~18.04).

Now what?

1 Answer 1

1

A colleague suggested downgrading to an older version of xgboost. Doing so fixed this issue (using xgboost==1.1.0).

AFAICT this means that the latest versions of xgboost are incompatible with Ubuntu 18.04 because they use a version of the compiler toolchain that is too recent for and unsupported by 18.04.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .