Como atualizar a libc6 (glibc) além da versão 2.31 no Ubuntu 20.04?

Como atualizar a libc6 (glibc) além da versão 2.31 no Ubuntu 20.04?

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-upgradee 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/cpuinfoe faça com o arco apropriado:

make net 
make build ARCH=x86-64-bmi2

informação relacionada