%20%E5%8D%87%E7%B4%9A%E5%88%B0%20v%202.31%20%E4%BB%A5%E4%B8%8A%EF%BC%9F.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 庫)有一個用於Linux 的分支,稱為libc6 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 是我的作業系統版本(Ubuntu 20.04)的官方版本。
所以我嘗試手動完成:如何安裝 libc6 版本 >= 2.29?
我從下載了 libc6_2.34-0ubuntu3_amd64.debhttp://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 和其他核心系統元件。
我看到兩種可能的解決方案:
開發商的官方包
適用於 Ubuntu 的 StockFish 軟體包清單以下 URL 作為開發者的網站https://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