Ubuntu 18.04 で XGBoost が GLIBCXX_3.4.26 が見つからないというエラーで失敗する

Ubuntu 18.04 で XGBoost が GLIBCXX_3.4.26 が見つからないというエラーで失敗する

Ubuntu 18.04 マシンで XGBoost を呼び出すコードを実行しようとしています。このコードは で失敗しますAttributeError: 'XGBoostCostModel' object has no attribute 'pool'。根本的な原因は次のとおりです。

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)"]

C/C++ パッケージング ツールチェーンについては何も知りません。同様の質問に対する他の回答で提案されている次のコード フラグメントを実行すると、次の結果が返されます。

$ 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確かにこのリストにはないようです。しかし、最新のものを取得するためにどのコマンドを実行すればよいのかわかりません。 (これはDockerコンテナ内にあるため、 は不要です)aptを実行すると、次のように表示されます。apt-get update && apt-get install libstdc++6sudo

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

それで?

答え1

同僚が の古いバージョンにダウングレードすることを提案しましたxgboost。 そうすることでこの問題は解決しました ( を使用xgboost==1.1.0)。

私の知る限り、これは最新バージョンがxgboostUbuntu 18.04 と互換性がないことを意味します。これは、最新バージョンのコンパイラ ツールチェーンが 18.04 には新しすぎてサポートされていないバージョンを使用しているためです。

関連情報