1 26/05/2026 9 min

Installare Stockfish su Ubuntu: scelta del metodo

Stockfish è un motore scacchistico puro: non è una GUI, non gestisce partite con finestre proprie e non serve a “giocare” da solo. Su Ubuntu lo puoi installare in modo semplice, ma conviene decidere subito se ti basta il pacchetto dei repository oppure se vuoi una versione più aggiornata compilata a parte. La differenza pratica è questa: i pacchetti di Ubuntu sono facili da mantenere, mentre una build manuale ti dà più controllo sulla versione e sulle ottimizzazioni della CPU.

Per uso normale, test rapido, analisi di posizioni e integrazione con GUI come Arena, Lucas Chess o un frontend UCI, il pacchetto ufficiale dei repository è la strada più lineare. Se invece ti interessa confrontare più versioni, fare benchmarking o sfruttare al massimo istruzioni CPU specifiche, allora la compilazione diventa sensata. Su Ubuntu 24.04, 22.04 e 20.04 la logica resta la stessa; cambiano solo versione del pacchetto disponibile e dipendenze di contorno.

Verificare che Stockfish sia nei repository

Prima di installare, controlla il nome esatto del pacchetto e la versione disponibile. Questo evita di confondere il motore con eventuali metapacchetti o con versioni presenti in repository terzi.

Usa questi comandi:

sudo apt update
apt-cache policy stockfish
apt search stockfish

Se il repository è normale e aggiornato, vedrai un candidato installabile con una versione specifica. L’output utile è quello che mostra Candidate: e il nome del pacchetto stockfish. Se invece non compare nulla, il problema non è Stockfish ma la configurazione dei repository APT o l’assenza del componente Universe, che su alcune installazioni minime può non essere attivo.

Se manca il pacchetto, abilita Universe e riprova:

sudo add-apt-repository universe
sudo apt update
apt-cache policy stockfish

Installazione con apt su Ubuntu 24.04, 22.04 e 20.04

Per la maggior parte dei casi, questa è l’installazione corretta. È semplice, ripetibile e si integra con gli aggiornamenti di sistema.

Esegui:

sudo apt update
sudo apt install stockfish

Dopo l’installazione, verifica il binario e la versione:

which stockfish
stockfish

Il comando stockfish avvia una sessione interattiva UCI. In genere il motore risponde con una riga che contiene il nome del programma e poi attende comandi. Se digiti uci, dovresti vedere parametri e opzioni; se digiti isready, la risposta corretta è readyok. Questo è il controllo più rapido per capire che il binario funziona davvero e non è solo presente nel filesystem.

Esempio minimo di sessione:

$ stockfish
Stockfish ...
uci
id name Stockfish ...
uciok
isready
readyok

Se il prompt non appare o il comando termina subito con errore, controlla che il pacchetto sia stato installato nel sistema corretto. Su macchine con container, chroot o ambienti di testing, capita spesso di installare nel namespace sbagliato e poi cercare il binario nell’host.

Installare una GUI scacchistica e collegare Stockfish

Stockfish da solo è utile anche via terminale, ma nella pratica viene quasi sempre collegato a una GUI. Su Ubuntu puoi usare applicazioni come Lucas Chess, PyChess o altri client compatibili UCI. Il punto tecnico non è la GUI in sé, ma il percorso del binario Stockfish e il protocollo di comunicazione.

Il file binario installato da APT si trova in genere in /usr/games/stockfish oppure in un percorso simile, dipendendo dal pacchetto e dalla release. Verifica con:

dpkg -L stockfish | grep -E '/stockfish$'
command -v stockfish
ls -l /usr/games/stockfish

Se la GUI chiede il percorso del motore, usa quello restituito da command -v stockfish o da dpkg -L. Non assumere che sia in /usr/bin: su alcune installazioni il motore è in /usr/games, che non sempre è nel PATH di ambienti grafici o script personalizzati.

Un errore comune è avviare la GUI da menu e non da terminale, poi non vedere il motore. Se succede, il primo controllo da fare è il log della GUI o il test manuale con il binario UCI. Se la GUI ha un campo “Engine path”, compilalo con il percorso assoluto e non con un alias di shell.

Uso base da terminale con protocollo UCI

Il protocollo UCI è il modo standard con cui Stockfish dialoga con le interfacce grafiche e con gli script di analisi. Anche senza GUI, puoi usarlo per testare una posizione e ottenere una valutazione rapida.

Una sessione minima può essere gestita così:

stockfish <<'EOF'
uci
isready
position startpos moves e2e4 e7e5 g1f3
go depth 12
quit
EOF

Il motore risponde con una linea bestmove quando ha completato la ricerca. Se il comando non produce output, il problema può essere il buffering della shell, un errore nel binario o una versione non compatibile con il contesto di esecuzione. Per isolare il caso, prova a lanciare il binario in foreground e a inserire i comandi uno alla volta.

Per analizzare un FEN specifico:

stockfish <<'EOF'
uci
isready
position fen rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
go depth 15
quit
EOF

Il valore di profondità è un compromesso tra tempo e precisione. Più sali, più la valutazione diventa robusta, ma aumentano anche CPU e latenza. Su notebook e VPS piccole, una profondità eccessiva può saturare un core e rendere il sistema meno reattivo. Se vuoi evitare questo effetto, limita l’uso con nice o taskset in scenari di test non interattivi.

Compilare Stockfish da sorgente quando il pacchetto non basta

La compilazione manuale ha senso se vuoi una release più recente, se il repository Ubuntu è indietro oppure se vuoi un binario ottimizzato per una CPU specifica. È anche il metodo giusto quando devi riprodurre risultati identici tra più macchine o fare benchmark seri.

Prima installa gli strumenti di build:

sudo apt update
sudo apt install build-essential git

Poi scarica il sorgente ufficiale e compila. Il repository cambia nel tempo, quindi controlla sempre il ramo o il tag che ti serve. Un flusso tipico è questo:

git clone https://github.com/official-stockfish/Stockfish.git
cd Stockfish/src
make build ARCH=x86-64-modern -j$(nproc)

Il parametro ARCH è il punto più delicato. Se lo imposti troppo aggressivo rispetto alla CPU reale, il binario può non partire o puoi ottenere un’esecuzione subottimale. Se non sei sicuro, usa un profilo più conservativo e verifica con lscpu quali estensioni sono supportate.

Controlla le istruzioni CPU disponibili con:

lscpu | grep -E 'Model name|Flags'

Se compili per uso locale, conserva il binario in una directory dedicata, per esempio /opt/stockfish/, e non sovrascrivere il pacchetto di sistema. Così separi chiaramente la versione gestita da APT da quella custom e rendi il rollback banale: basta rimuovere o rinominare il binario compilato senza toccare i pacchetti installati.

Verifiche dopo l’installazione

Dopo l’installazione, fai sempre tre controlli: presenza del binario, risposta UCI e percorso effettivo. Sono verifiche rapide ma evitano falsi positivi, soprattutto su sistemi dove convivono più versioni.

  1. Controlla il binario: command -v stockfish. Atteso: un percorso assoluto, non vuoto.
  2. Controlla la versione o l’intestazione: avvia stockfish e cerca il nome del motore e la risposta a uci.
  3. Controlla la compatibilità con la GUI: apri la GUI e imposta il percorso binario corretto, poi lancia un test di analisi su una posizione semplice.

Se qualcosa non torna, guarda i log applicativi della GUI e verifica che non stia tentando di avviare un percorso sbagliato. In molti casi il motore è installato correttamente, ma la GUI conserva un vecchio path o non ha i permessi per eseguire il file.

Problemi tipici e correzioni rapide

Il primo problema è il pacchetto non disponibile. La correzione è quasi sempre l’attivazione di Universe o l’aggiornamento della cache APT. Il secondo è il binario che non viene trovato dalla GUI, di solito per un path errato o per un ambiente grafico che non eredita il PATH della shell. Il terzo è la build manuale che non parte per istruzioni CPU non supportate.

Se il motore non parte in GUI, prova a richiamarlo direttamente da terminale con il percorso completo. Se il binario risponde lì ma non nella GUI, il problema è quasi certamente nella configurazione dell’interfaccia, non in Stockfish. Se invece fallisce anche da terminale, controlla l’architettura del sistema, le dipendenze del pacchetto e l’eventuale corruzione del file eseguibile.

Quando hai più installazioni, evita di affidarti agli alias. Meglio usare un path esplicito come /usr/games/stockfish o /opt/stockfish/stockfish. È una piccola disciplina operativa che riduce errori difficili da vedere, soprattutto quando si fa supporto remoto o si lavora su macchine con utenti multipli.

Rimozione e rollback

Se hai installato Stockfish da repository e vuoi tornare indietro, la rimozione è semplice e reversibile:

sudo apt remove stockfish
sudo apt autoremove

Se invece hai compilato da sorgente, il rollback consiste nel rimuovere il binario custom e ripristinare eventualmente quello del pacchetto APT. Prima di cancellare qualcosa, verifica quale eseguibile sta usando la GUI o lo script con command -v e con il path configurato nel frontend.

Per chi gestisce ambienti condivisi, il criterio corretto è tenere separati i binari di sistema e quelli sperimentali. Così puoi aggiornare, testare o rimuovere una build senza impattare gli altri utenti o i loro profili GUI.

Quando conviene aggiornare Stockfish

Ha senso aggiornare quando vuoi nuove valutazioni, fix del motore o supporto migliore a CPU moderne. In contesti di analisi professionale, anche piccoli miglioramenti nel motore possono cambiare la qualità delle linee suggerite. In contesti domestici o didattici, invece, la priorità è spesso la stabilità del pacchetto e la semplicità di manutenzione.

Su Ubuntu, l’aggiornamento via APT segue il ciclo normale del sistema:

sudo apt update
sudo apt upgrade stockfish

Se hai una build manuale, l’aggiornamento è un rebuild dal repository sorgente. In quel caso conviene annotare il commit o il tag usato, così puoi confrontare rapidamente due versioni e tornare indietro se una release introduce comportamenti inattesi.

In sintesi operativa: per Ubuntu 24.04, 22.04 e 20.04 installa Stockfish con apt se vuoi una soluzione pulita e mantenibile; compila da sorgente solo quando hai un motivo concreto. Verifica sempre il binario con uci e conserva il path assoluto per la GUI. È il modo più semplice per evitare ore perse in problemi che in realtà sono solo di percorso, versione o ambiente di esecuzione.