0

Im trying to run Stockfish chess engine, but in the line that execute the binary give me this error:

Script:

import chess
import chess.uci
import chess.engine

fen = 'r2qkb1r/1p1bpp1p/p1n2p2/8/B1pP4/5N2/P1P2PPP/RN1QK2R w KQkq - 0 12'
board = chess.Board(fen)
handler = chess.uci.InfoHandler()

engine = chess.uci.popen_engine('/home/egqbe6ns/public_html/stockfish_10_x64')

Error:

/home/egqbe6ns/public_html/stockfish_10_x64: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/egqbe6ns/public_html/stockfish_10_x64)
/home/egqbe6ns/public_html/stockfish_10_x64: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /home/egqbe6ns/public_html/stockfish_10_x64)

Im in a shared server, other python script execute ok!

How can I update this libc6 with PUTTY SSH?

JonTargaryen
  • 1,317
  • 3
  • 11
  • 18

1 Answers1

1

How can I update this libc6 with PUTTY SSH?

You can't.

Your stockfish_10_x64 binary was built on a GLIBC-2.17 or later system, and will only run on a system with that version of GLIBC (or a later one).

The only (not completely true, see below) way to get this working is to update the GLIBC on the server, and if you don't have root on that server, you can't do that.

You would need to get a different build of stockfish_10_x64, or run on a different server.

P.S. You may be tempted to try LD_LIBRARY_PATH or LD_PRELOAD solutions, but they will not work.

P.P.S. Using explicit loader invocation with a newer GLIBC might work. Something like this:

  • install GLIBC-2.17 or later into /home/egqbe6ns/libc.
  • invoke stockfish_10_x64 like so:

    /home/egqbe6ns/libc/lib/ld-linux-x86-64.so.2 --library-path=/home/egqbe6ns/libc/lib64:/lib64 /home/egqbe6ns/public_html/stockfish_10_x64

Employed Russian
  • 199,314
  • 34
  • 295
  • 362