Как обновить libc6 (glibc) до версии 2.31 в Ubuntu 20.04?

Как обновить libc6 (glibc) до версии 2.31 в Ubuntu 20.04?

Я использую шахматный движок 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

Связанный контент