%20%E3%82%92%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%202.31%20%E4%BB%A5%E9%99%8D%E3%81%AB%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私は何らかの 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