14 votos

¿Cómo actualizar libc6 (glibc) más allá de la versión 2.31 en Ubuntu 20.04?

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 apareció "terminado con código...", pero no arrojó ningún código. Lo único que pudo haber cambiado es que regularmente actualizo mis paquetes: sudo apt update && sudo apt dist-upgrade, y supongo que eso debe haberlo roto. Instalé la última versión de Stockfish y lo ejecuté en la línea de comandos, y la salida que da es:

./stockfish_21112912_x64_avx2: /lib/x86_64-linux-gnu/libc.so.6: versión `GLIBC_2.32' no encontrada (necesaria por ./stockfish_21112912_x64_avx2)
./stockfish_21112912_x64_avx2: /lib/x86_64-linux-gnu/libc.so.6: versión `GLIBC_2.33' no encontrada (necesaria por ./stockfish_21112912_x64_avx2)
./stockfish_21112912_x64_avx2: /lib/x86_64-linux-gnu/libc.so.6: versión `GLIBC_2.34' no encontrada (necesaria por ./stockfish_21112912_x64_avx2)

Entonces quise actualizar GLIBC y me encontré con este hilo: [https://askubuntu.com/questions/736208/upgrading-glibc]: "Glibc (mejor conocida como GNU C Library) tiene un fork para linux que se llama libc6. Libc6 está disponible a través de apt." Corrí: apt-cache policy libc6, que dio la salida:

libc6:
  Instalado: 2.31-0ubuntu9.2
  Candidato: 2.31-0ubuntu9.2
  Tabla de versiones:
 *** 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 cual me indica que dentro de los paquetes "normales" la versión 2.31 es la versión oficial para mi versión de SO (Ubuntu 20.04).

Entonces intenté hacerlo manualmente: ¿Cómo instalar una libc6 versión >= 2.29?

Descargué libc6_2.34-0ubuntu3_amd64.deb de http://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: con respecto a libc6_2.34-0ubuntu3_amd64.deb que contiene libc6:amd64:
 libc6:amd64 rompería fakeroot (<< 1.25.3-1.1ubuntu2~)
  fakeroot (versión 1.24-1) está presente e instalado.

dpkg: error al procesar el archivo libc6_2.34-0ubuntu3_amd64.deb (--install):
 instalar libc6:amd64 rompería fakeroot, y
 desconfiguración no está permitida (--auto-deconfigure podría ayudar)
Se encontraron errores al procesar:
 libc6_2.34-0ubuntu3_amd64.deb

¿Cómo resuelvo esto? Soy un poco novato, así que preferiblemente sin romper mi sistema

3voto

Mark Puntos 1

Cabe señalar que https://abrok.eu/stockfish/ no es oficial, el autor dice claramente que los paquetes fueron compilados con gcc 11.2/mingw 10 en Ubuntu 21.10.
Mientras que estás ejecutando 20.04 LTS que es más antiguo, por lo tanto tiene una versión anterior de libc y otros componentes del sistema centrales.

Veo dos posibles soluciones:

  • Paquetes oficiales del desarrollador

    El paquete StockFish para Ubuntu enumera la siguiente URL como el sitio web del desarrollador https://stockfishchess.org. Por lo tanto, debes visitar https://stockfishchess.org/download/linux/ y luego descargar la distribución de software relevante. Para el momento de la escritura, esto podría hacerse programáticamente 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 sobre libc.

  • Alguna PPA de terceros

    Encontrar PPA para StockFish es posible. Terminará por ejemplo con StockFish 12.2 deb-package for 20.04 LTS, que puede instalarse usando los siguientes comandos:

    sudo add-apt-repository ppa:savoury1/games
    sudo apt-get update
    sudo apt-get install stockfish

    Nota: No estoy seguro sobre la optimización AVX2 aquí.

    Volver a la versión predeterminada 11.1 es posible usando los siguientes comandos:

    sudo apt-get install ppa-purge
    sudo ppa-purge ppa:savoury1/games

0voto

nelhage Puntos 1660

Tuve el mismo problema con Stockfish 15 en Ubuntu 20.04. Sin embargo, no es demasiado difícil compilar desde la fuente siguiendo las instrucciones en https://github.com/official-stockfish/Stockfish#compiling-stockfish-yourself-from-the-sources

cd src
make help

luego verifica la última arquitectura compatible, por ejemplo grep bmi2 /proc/cpuinfo y hazlo con la arquitectura apropiada:

make net 
make build ARCH=x86-64-bmi2

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X