%20al%C3%A9m%20da%20vers%C3%A3o%202.31%20no%20Ubuntu%2020.04%3F.png)
Estou usando o mecanismo de xadrez Stockfish em alguma GUI, mas ontem ele parou de funcionar. Não mudei o motor, nem a interface, mas quando tentei rodar o motor ele "encerrou com código...", mas não gerou nenhum código. A única coisa que poderia ter mudado é que eu atualizo regularmente meus pacotes:
sudo apt update && sudo apt dist-upgrade
e acho que isso deve ter quebrado tudo. Instalei a versão mais recente do Stockfish e executei-a na linha de comando, e a saída fornecida é:
./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)
Então, eu queria atualizar o GLIBC e me deparei com este tópico: [https://askubuntu.com/questions/736208/upgrading-glibc]: "Glibc (mais conhecido como GNU C Library) tem um fork para Linux chamado libc6 .Libc6 está disponível via apt." Corri:
apt-cache policy libc6
, que deu a saída:
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
O que me diz que dentro dos pacotes "normais" 2.31 é a versão oficial da versão do meu sistema operacional (Ubuntu 20.04).
Então tentei fazer isso manualmente:Como instalar uma versão libc6 >= 2.29?
Eu baixei libc6_2.34-0ubuntu3_amd64.deb dehttp://archive.ubuntu.com/ubuntu/pool/main/g/glibc/, conforme descrito, mas quando executei: sudo dpkg -i libc6_2.34-0ubuntu3_amd64.deb
, produziu o seguinte erro:
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
Como faço para resolver isso? Eu sou um pouco novato, então de preferência sem quebrar meu sistema
Responder1
Deve-se notar quehttps://abrok.eu/stockfish/não é oficial, o autor diz claramente que os pacotes foram compilados com gcc 11.2/mingw 10 no Ubuntu 21.10.
Enquanto você está executando o 20.04 LTS, que é mais antigo, também possui a libc mais antiga e outros componentes principais do sistema.
Vejo duas soluções possíveis:
Pacotes oficiais do desenvolvedor
O pacote StockFish para Ubuntulistaso seguinte URL como site do desenvolvedorhttps://stockfishchess.org. Então você deveria visitarhttps://stockfishchess.org/download/linux/e, em seguida, baixe a distribuição de software relevante. No momento em que este artigo foi escrito, isso pode ser feito programaticamente da seguinte maneira:
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
e execute-o como
./stockfish_14.1_linux_x64_avx2
.Nota: roda mesmo no 18.04 LTS, não reclama da libc.
Alguns PPA de terceiros
EncontrandoPPA para StockFish é possível. Terminará com, por exemploPacote StockFish 12.2 deb para 20.04 LTS, que pode ser instalado usando os comandos abaixo:
sudo add-apt-repository ppa:savoury1/games sudo apt-get update sudo apt-get install stockfish
Nota: não tenho certeza sobre a otimização do AVX2 aqui.
Revertendo para o padrãoVersão 11.1é possível usando os comandos abaixo:
sudo apt-get install ppa-purge sudo ppa-purge ppa:savoury1/games
Responder2
Tive o mesmo problema com Stockfish 15 no Ubuntu 20.04. No entanto, não é muito difícil compilar a partir do código-fonte seguindo as instruções emhttps://github.com/official-stockfish/Stockfish#compiling-stockfish-yourself-from-the-sources
cd src
make help
em seguida, verifique o arco mais recente suportado, ex. grep bmi2 /proc/cpuinfo
e faça com o arco apropriado:
make net
make build ARCH=x86-64-bmi2