%20%D0%B4%D0%BE%20%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8%202.31%20%D0%B2%20Ubuntu%2020.04%3F.png)
Я использую шахматный движок Stockfish в каком-то GUI, но вчера он перестал работать. Я не менял движок, ни интерфейс, но когда я попытался запустить движок, он "завершился с кодом...", но не вывел никакого кода. Единственное, что могло измениться, это то, что я регулярно обновляю свои пакеты:
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.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/не является официальным, автор ясно говорит, что пакеты были скомпилированы с помощью gcc 11.2/mingw 10 на Ubuntu 21.10.
В то время как вы используете 20.04 LTS, которая старше, поэтому имеет более старые libc и другие основные системные компоненты.
Я вижу два возможных решения:
Официальные пакеты от разработчика
Пакет StockFish для Ubuntuспискиследующий 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
НахождениеPPA для StockFish возможен. Это закончится, например, так:StockFish 12.2 deb-пакет для 20.04 LTS, который можно установить с помощью следующих команд:
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
У меня была та же проблема с Stockfish 15 на Ubuntu 20.04. Однако не так уж сложно скомпилировать из исходников, следуя инструкциям на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