Ubuntu 20.04 で libc6 (glibc) をバージョン 2.31 以降にアップグレードするにはどうすればいいですか?

Ubuntu 20.04 で libc6 (glibc) をバージョン 2.31 以降にアップグレードするにはどうすればいいですか?

私は何らかの GUI 内で Stockfish チェス エンジンを使用していますが、昨日動作しなくなりました。エンジンもインターフェイスも変更していませんでしたが、エンジンを実行しようとすると「コードで終了しました...」と表示され、コードは出力されませんでした。変更された可能性がある唯一のことは、パッケージを定期的にアップグレードしていることです。 sudo apt update && sudo apt dist-upgradeおそらくそれが壊れたのでしょう。最新の Stockfish バージョンをインストールし、コマンド ラインで実行したところ、出力は次のようになりました。

./stockfish_21112912_x64_avx2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./stockfish_21112912_x64_avx2)
./stockfish_21112912_x64_avx2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./stockfish_21112912_x64_avx2)
./stockfish_21112912_x64_avx2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./stockfish_21112912_x64_avx2)

そこで、GLIBC をアップグレードしたかったのですが、このスレッドを見つけました: [https://askubuntu.com/questions/736208/upgrading-glibc]: 「Glibc (GNU C ライブラリとしてよく知られています) には、libc6 と呼ばれる Linux 用のフォークがあります。Libc6 は apt 経由で利用できます。」 を実行すると、次の apt-cache policy libc6出力が得られました:

libc6:
  Installed: 2.31-0ubuntu9.2
  Candidate: 2.31-0ubuntu9.2
  Version table:
 *** 2.31-0ubuntu9.2 500
        500 http://de.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     2.31-0ubuntu9 500
        500 http://de.archive.ubuntu.com/ubuntu focal/main amd64 Packages

これは、「通常の」パッケージ内では、2.31 が私の OS バージョン (Ubuntu 20.04) の公式バージョンであることを示しています。

そこで手動でやってみました:libc6 バージョン 2.29 以上をインストールするにはどうすればいいですか?

libc6_2.34-0ubuntu3_amd64.debを以下からダウンロードしました。http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/、説明どおりに実行しましたが、 を実行するとsudo dpkg -i libc6_2.34-0ubuntu3_amd64.deb、次のエラーが発生しました。

dpkg: regarding libc6_2.34-0ubuntu3_amd64.deb containing libc6:amd64:
 libc6:amd64 breaks fakeroot (<< 1.25.3-1.1ubuntu2~)
  fakeroot (version 1.24-1) is present and installed.

dpkg: error processing archive libc6_2.34-0ubuntu3_amd64.deb (--install):
 installing libc6:amd64 would break fakeroot, and
 deconfiguration is not permitted (--auto-deconfigure might help)
Errors were encountered while processing:
 libc6_2.34-0ubuntu3_amd64.deb

どうすれば解決できますか?私は初心者なので、できればシステムを壊さずに

答え1

注意すべきことhttps://abrok.eu/stockfish/公式ではありませんが、作者はパッケージが Ubuntu 21.10 上の gcc 11.2/mingw 10 でコンパイルされたと明確に述べています。
実行しているバージョンは 20.04 LTS ですが、これは古いバージョンなので、libc やその他のコア システム コンポーネントも古いです。

考えられる解決策は 2 つあります。

  • 開発者からの公式パッケージ

    Ubuntu用のStockFishパッケージリスト開発者のウェブサイトとして次のURLhttps://stockfishchess.orgぜひ訪れてみてくださいhttps://stockfishchess.org/download/linux/次に、関連するソフトウェア ディストリビューションをダウンロードします。執筆時点では、次のようにプログラムで実行できます。

    cd ~/Downloads
    wget -c https://stockfishchess.org/files/stockfish_14.1_linux_x64_avx2.zip
    unzip stockfish_14.1_linux_x64_avx2.zip
    cd stockfish_14.1_linux_x64_avx2
    chmod +x stockfish_14.1_linux_x64_avx2
    

    として実行します./stockfish_14.1_linux_x64_avx2

    注: 18.04 LTS でも実行され、libc についてはエラーは発生しません。

  • 一部のサードパーティPPA

    発見StockFishのPPAは可能です例えば、20.04 LTS 用 StockFish 12.2 deb パッケージ以下のコマンドを使用してインストールできます。

    sudo add-apt-repository ppa:savoury1/games
    sudo apt-get update
    sudo apt-get install stockfish
    

    注: ここでは AVX2 の最適化についてはよくわかりません。

    デフォルトに戻す11.1 バージョン以下のコマンドを使用することで可能です:

    sudo apt-get install ppa-purge
    sudo ppa-purge ppa:savoury1/games
    

答え2

Ubuntu 20.04のStockfish 15でも同じ問題が発生しました。ただし、以下の手順に従ってソースからコンパイルするのはそれほど難しくありません。https://github.com/official-stockfish/Stockfish#compiling-stockfish-yourself-from-the-sources

cd src
make help

次に、サポートされている最新のアーキテクチャを確認します。例grep bmi2 /proc/cpuinfo: 適切なアーキテクチャで作成します。

make net 
make build ARCH=x86-64-bmi2

関連情報