Wie aktualisiere ich libc6 (glibc) über Version 2.31 hinaus unter Ubuntu 20.04?

Wie aktualisiere ich libc6 (glibc) über Version 2.31 hinaus unter Ubuntu 20.04?

Ich verwende die Stockfish-Schach-Engine in einer GUI, aber gestern hat sie aufgehört zu funktionieren. Ich hatte weder die Engine noch die Schnittstelle geändert, aber als ich versuchte, die Engine zu starten, wurde sie „mit Code beendet …“, aber sie gab keinen Code aus. Das Einzige, was sich geändert haben könnte, ist, dass ich meine Pakete regelmäßig aktualisiere: sudo apt update && sudo apt dist-upgrade, und ich vermute, das muss sie kaputt gemacht haben. Ich habe die neueste Stockfish-Version installiert und sie in der Befehlszeile ausgeführt, und die Ausgabe ist:

./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)

Ich wollte GLIBC aktualisieren und bin auf diesen Thread gestoßen: [https://askubuntu.com/questions/736208/upgrading-glibc]: „Glibc (besser bekannt als GNU C Library) hat einen Fork für Linux, der libc6 heißt. Libc6 ist über apt verfügbar.“ Ich habe Folgendes ausgeführt: apt-cache policy libc6, was die folgende Ausgabe ergab:

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

Das sagt mir, dass innerhalb der „normalen“ Pakete 2.31 die offizielle Version für meine Betriebssystemversion (Ubuntu 20.04) ist.

Also habe ich versucht, es manuell zu machen:Wie installiere ich eine libc6-Version >= 2.29?

Ich habe libc6_2.34-0ubuntu3_amd64.deb heruntergeladen vonhttp://archive.ubuntu.com/ubuntu/pool/main/g/glibc/, wie beschrieben, aber als ich Folgendes ausführte sudo dpkg -i libc6_2.34-0ubuntu3_amd64.deb, trat der folgende Fehler auf:

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

Wie löse ich das? Ich bin ein ziemlicher Neuling, also am liebsten ohne mein System zu beschädigen

Antwort1

Es ist darauf hinzuweisen, dasshttps://abrok.eu/stockfisch/ist nicht offiziell, der Autor sagt eindeutig, dass die Pakete mit gcc 11.2/mingw 10 auf Ubuntu 21.10 kompiliert wurden.
Während Sie 20.04 LTS ausführen, was älter ist, haben auch ältere libc und andere Kernsystemkomponenten.

Ich sehe zwei mögliche Lösungen:

  • Offizielle Pakete vom Entwickler

    Das StockFish-Paket für UbuntuListendie folgende URL als Entwickler-Websitehttps://stockfishchess.orgBesuchen Sie uns alsohttps://stockfishchess.org/download/linux/und laden Sie dann die entsprechende Softwareverteilung herunter. Zum Zeitpunkt des Schreibens kann dies programmgesteuert wie folgt erfolgen:

    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
    

    und führen Sie es dann als aus ./stockfish_14.1_linux_x64_avx2.

    Hinweis: Es läuft sogar auf 18.04 LTS und beschwert sich nicht über libc.

  • Einige PPAs von Drittanbietern

    FindenPPA für StockFish ist möglich. Es endet beispielsweise mitStockFish 12.2 Deb-Paket für 20.04 LTS, das mit den folgenden Befehlen installiert werden kann:

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

    Hinweis: Ich bin mir hier bezüglich der AVX2-Optimierung nicht sicher.

    Zurück zur StandardeinstellungVersion 11.1ist mit den folgenden Befehlen möglich:

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

Antwort2

Ich hatte das gleiche Problem mit Stockfish 15 unter Ubuntu 20.04. Es ist jedoch nicht allzu schwierig, aus dem Quellcode zu kompilieren, wenn man den Anweisungen unter folgthttps://github.com/official-stockfish/Stockfish#compiling-stockfish-yourself-from-the-sources

cd src
make help

Überprüfen Sie dann die neueste unterstützte Architektur, z. B. grep bmi2 /proc/cpuinfound führen Sie mit der entsprechenden Architektur Folgendes aus:

make net 
make build ARCH=x86-64-bmi2

verwandte Informationen