%20m%C3%A1s%20all%C3%A1%20de%20la%20versi%C3%B3n%202.31%20en%20Ubuntu%2020.04%3F.png)
Estoy usando el motor de ajedrez Stockfish dentro de alguna GUI, pero ayer dejó de funcionar. No había cambiado el motor ni la interfaz, pero cuando intenté ejecutar el motor "terminó con código...", pero no generó ningún código. Lo único que podría haber cambiado es que actualizo regularmente mis paquetes:
sudo apt update && sudo apt dist-upgrade
y supongo que eso debe haberlo roto. Instalé la última versión de Stockfish y la ejecuté en la línea de comando, y el resultado que arroja es:
./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)
Entonces quería actualizar GLIBC y encontré este hilo: [https://askubuntu.com/questions/736208/upgrading-glibc]: "Glibc (mejor conocida como Biblioteca GNU C) tiene una bifurcación para Linux que se llama libc6 Libc6 está disponible a través de apt." Ejecuté:
apt-cache policy libc6
, que dio el resultado:
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
Lo que me dice dentro de los paquetes "normales" 2.31 es la versión oficial para mi versión de SO (Ubuntu 20.04).
Entonces intenté hacerlo manualmente:¿Cómo instalar una versión libc6 >= 2.29?
Descargué libc6_2.34-0ubuntu3_amd64.deb dehttp://archive.ubuntu.com/ubuntu/pool/main/g/glibc/, como se describe, pero cuando ejecuté: sudo dpkg -i libc6_2.34-0ubuntu3_amd64.deb
, produjo el siguiente error:
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
¿Cómo puedo solucionar esto? Soy un poco novato, así que preferiblemente sin romper mi sistema.
Respuesta1
se debe notar quehttps://abrok.eu/stockfish/no es oficial, el autor dice claramente que los paquetes se compilaron con gcc 11.2/mingw 10 en Ubuntu 21.10.
Mientras ejecuta 20.04 LTS, que es más antiguo, también tiene libc y otros componentes centrales del sistema más antiguos.
Veo dos posibles soluciones:
Paquetes oficiales del desarrollador.
El paquete StockFish para Ubuntulizala siguiente URL como sitio web del desarrolladorhttps://stockfishchess.org. Entonces deberías visitarhttps://stockfishchess.org/download/linux/y luego descargue la distribución de software relevante. Por el momento, se puede realizar mediante programación de la siguiente manera:
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
y luego ejecutarlo como
./stockfish_14.1_linux_x64_avx2
.Nota: se ejecuta incluso en 18.04 LTS, no se queja de libc.
Algunos PPA de terceros
HallazgoEl PPA para StockFish es posible. Terminará con por ejemploPaquete deb StockFish 12.2 por 20.04 LTS, que se puede instalar usando los siguientes comandos:
sudo add-apt-repository ppa:savoury1/games sudo apt-get update sudo apt-get install stockfish
Nota: No estoy seguro acerca de la optimización AVX2 aquí.
Volviendo al valor predeterminadoversión 11.1es posible usando los siguientes comandos:
sudo apt-get install ppa-purge sudo ppa-purge ppa:savoury1/games
Respuesta2
Tuve el mismo problema con Stockfish 15 en Ubuntu 20.04. Sin embargo, no es demasiado difícil compilar desde el código fuente siguiendo las instrucciones enhttps://github.com/official-stockfish/Stockfish#compiling-stockfish-yourself-from-the-sources
cd src
make help
luego verifique el último arco soportado, ej. grep bmi2 /proc/cpuinfo
y hacer con el arco adecuado:
make net
make build ARCH=x86-64-bmi2