51 07/04/2026 10 min

Installare Flutter su Ubuntu 22.04: scelta pulita e verificabile

Su Ubuntu 22.04 il metodo più lineare è installare il SDK Flutter in una directory dedicata, aggiungerlo al PATH e verificare subito che l’ambiente sia sano con flutter doctor. Così eviti pacchetti vecchi o installazioni parziali che poi fanno perdere tempo quando inizi a compilare app Android o a configurare un editor.

Qui sotto trovi una procedura passo dopo passo pensata per un sistema Ubuntu 22.04 aggiornato, con privilegi sudo e connessione Internet. L’obiettivo non è “far partire qualcosa e basta”, ma arrivare a un’installazione ripetibile, facile da aggiornare e semplice da diagnosticare se qualcosa non torna.

Prerequisiti minimi

Prima di installare Flutter conviene sistemare il sistema base e preparare le dipendenze più comuni. Non tutte servono subito, ma avere il set corretto evita errori quando installerai Android Studio o quando Flutter controllerà il sistema.

  1. Aggiorna l’indice pacchetti e il sistema.
  2. Installa i tool base usati per scaricare ed estrarre archivi.
  3. Abilita eventuali componenti necessari per la virtualizzazione, se prevedi di usare emulatori Android.
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl git unzip xz-utils zip libglu1-mesa

Se prevedi di usare emulatori Android, verifica anche che la virtualizzazione sia disponibile nel BIOS/UEFI e che il sistema veda l’accelerazione hardware. Questo non è obbligatorio per il solo SDK Flutter, ma diventa importante appena inizi a testare applicazioni mobili in locale.

Scaricare Flutter dal canale ufficiale

La cosa più importante è non installare Flutter da repository non ufficiali se vuoi una base affidabile. Il canale più pulito è il pacchetto ufficiale distribuito come archivio compresso. In questo modo controlli tu dove vive il SDK e puoi aggiornarlo in modo esplicito.

Per una installazione standard, usa una cartella sotto /opt o nella tua home. Su workstation condivise o ambienti con più utenti, /opt/flutter è spesso una scelta ordinata; su una macchina personale, anche $HOME/flutter va bene. L’importante è non sparpagliare file in percorsi casuali.

Esempio con installazione in /opt:

cd /tmp
curl -LO https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.24.0-stable.tar.xz
sudo mkdir -p /opt
sudo tar -C /opt -xf flutter_linux_3.24.0-stable.tar.xz
sudo chown -R "$USER:$USER" /opt/flutter

La versione nell’URL può cambiare nel tempo. Se vuoi la release più recente del canale stabile, conviene prendere il riferimento aggiornato dalla pagina ufficiale di Flutter e sostituire il nome del file con quello corretto. Se il download fallisce, il problema non è Flutter: controlla rete, DNS e eventuali proxy aziendali.

Aggiungere Flutter al PATH

Se il binario non è nel PATH, ogni comando successivo diventa inutile. Il punto giusto è il file di configurazione della shell che usi davvero. Su Ubuntu 22.04 con Bash, di solito parliamo di ~/.bashrc. Se usi Zsh, il file cambia.

Aggiungi Flutter al PATH così:

echo 'export PATH="$PATH:/opt/flutter/bin"' >> ~/.bashrc
source ~/.bashrc

Verifica che il comando sia visibile:

which flutter
flutter --version

Se which flutter non restituisce /opt/flutter/bin/flutter, il PATH non è stato caricato nella shell corrente oppure hai modificato il file sbagliato. In quel caso apri una nuova sessione terminale e riprova prima di toccare altro.

Eseguire la prima verifica con flutter doctor

La prima diagnosi vera la fa flutter doctor. Questo comando controlla SDK, tool di sistema, configurazione Android, editor e dipendenze mancanti. È il modo più veloce per capire se l’installazione è sana o se devi correggere qualcosa prima di andare avanti.

flutter doctor

Un output pulito non è sempre necessario al primo colpo, ma devi almeno capire quali componenti sono mancanti e se il problema riguarda l’ambiente base o solo l’ecosistema Android. Se vedi errori su Android toolchain, spesso manca Java, Android Studio o qualche licenza non accettata. Se vedi problemi sul browser o su Linux desktop, può mancare qualche pacchetto aggiuntivo.

Se vuoi più dettaglio:

flutter doctor -v

La versione verbose aiuta molto quando devi capire perché un controllo fallisce su una specifica libreria o su una variabile d’ambiente. Tienila come riferimento quando fai troubleshooting serio.

Installare le dipendenze per Android

Per sviluppare app Android, Flutter da solo non basta. Ti serve almeno il toolkit Android e, nella pratica, Android Studio è la soluzione più semplice perché gestisce SDK, emulatori e licenze. Se vuoi evitare l’interfaccia grafica, puoi lavorare anche da CLI, ma la strada più rapida per una workstation è Android Studio.

Installa Java e alcune dipendenze comuni, poi aggiungi Android Studio:

sudo apt install -y default-jdk

Su Ubuntu 22.04, default-jdk spesso basta per iniziare. Per Android Studio puoi usare il pacchetto ufficiale o installarlo via Snap, ma per ambienti professionali spesso è preferibile il pacchetto scaricato dal sito ufficiale perché hai più controllo sulla versione.

Dopo aver installato Android Studio, aprilo e fai questi passaggi:

  1. Apri il gestore SDK.
  2. Installa l’Android SDK Platform richiesta dal progetto.
  3. Installa Android SDK Build-Tools.
  4. Installa Android Emulator se ti serve un device virtuale.
  5. Accetta le licenze richieste.

Se preferisci la configurazione da terminale, puoi accettare le licenze con:

flutter doctor --android-licenses

Quando il comando chiede conferma, rispondi y. Se fallisce, di solito manca il componente Android SDK o la variabile ANDROID_HOME/ANDROID_SDK_ROOT non punta al percorso corretto.

Configurare Android SDK e variabili d’ambiente

Flutter deve sapere dove si trova l’Android SDK. Su molte installazioni il percorso standard è sotto la home utente, ad esempio ~/Android/Sdk. Se Android Studio lo ha installato altrove, devi usare quel path reale.

Verifica il percorso e, se necessario, esporta le variabili nell’ambiente della shell:

echo 'export ANDROID_SDK_ROOT=$HOME/Android/Sdk' >> ~/.bashrc
echo 'export ANDROID_HOME=$HOME/Android/Sdk' >> ~/.bashrc
source ~/.bashrc

Controlla che il path esista davvero prima di aggiungerlo:

ls -ld "$HOME/Android/Sdk"

Se la directory non esiste, non forzare il valore: prima individua il percorso corretto da Android Studio o dal gestore SDK. Una variabile sbagliata produce sintomi ambigui, soprattutto quando flutter doctor segnala toolchain mancanti anche se hai già installato tutto.

Verificare il supporto per Linux desktop

Se il tuo obiettivo è sviluppare applicazioni desktop Linux, Flutter può compilare anche per quella destinazione su Ubuntu 22.04. In questo caso devi verificare che il supporto desktop sia attivo e che il sistema abbia le librerie richieste.

Abilita il supporto Linux desktop nel progetto corrente con:

flutter config --enable-linux-desktop

Poi crea o verifica un progetto di prova:

flutter create test_flutter
cd test_flutter
flutter run -d linux

Se il comando non trova un device Linux, il supporto desktop non è abilitato oppure mancano dipendenze grafiche. In quel caso il primo controllo è sempre flutter doctor, perché ti indica cosa manca prima di fare tentativi a caso.

Installare e verificare un editor

Flutter funziona con più editor, ma nella pratica i più usati sono Android Studio e Visual Studio Code. Se vuoi un setup leggero, VS Code è una scelta rapida; se vuoi integrare SDK Android ed emulatori in un unico posto, Android Studio è più completo.

Con Visual Studio Code, installa le estensioni Flutter e Dart. Poi apri un progetto con:

code test_flutter

Con Android Studio, importa il progetto e assicurati che il plugin Flutter sia riconosciuto. In entrambi i casi l’editor non sostituisce il controllo del terminale: la verifica vera resta sempre flutter doctor e, se serve, una compilazione di test.

Creare il primo progetto e lanciarlo

La conferma definitiva dell’installazione è un progetto che parte davvero. Crea una app di test, entra nella directory e lancia una build o l’esecuzione sul target desiderato.

flutter create hello_flutter
cd hello_flutter
flutter run

Se hai un device Android collegato via USB, autorizza il debug sul telefono e verifica che compaia tra i device disponibili con:

flutter devices

Se il device non appare, le cause tipiche sono: cavo USB solo ricarica, debug USB non attivo, permessi mancanti, adb non installato correttamente o driver lato host non coerenti. Su Linux, spesso il problema è uno di questi quattro, non Flutter.

Aggiornare Flutter in modo corretto

Uno dei vantaggi dell’installazione manuale è che puoi aggiornare Flutter in modo controllato. Non devi reinstallare tutto ogni volta: basta usare il canale di update previsto dal tool.

flutter upgrade

Se vuoi sapere da dove stai aggiornando e quale canale stai usando:

flutter channel
flutter --version

Conviene controllare la versione prima e dopo l’upgrade, soprattutto se lavori in team o se hai progetti con vincoli di compatibilità. Un aggiornamento maggiore può introdurre cambiamenti su plugin, toolchain o dipendenze del progetto.

Problemi frequenti e come leggerli velocemente

Se l’installazione sembra fatta ma qualcosa non funziona, la diagnosi veloce segue sempre lo stesso ordine: PATH, SDK, licenze, device, dipendenze di sistema. Evita di saltare subito a reinstallazioni complete.

  1. flutter non trovato: il PATH non include /opt/flutter/bin o la shell non ha ricaricato ~/.bashrc.
  2. flutter doctor segnala Android toolchain: Android SDK mancante, licenze non accettate o Java non disponibile.
  3. Il device non appare: verifica adb devices, cavo, debug USB e autorizzazioni.
  4. Build Linux fallisce: mancano librerie desktop o il supporto Linux non è stato abilitato nel progetto.

Per una lettura rapida del problema Android, questi comandi aiutano molto:

flutter doctor -v
adb devices
java -version

Se uno di questi pezzi non torna, non andare a tentativi. Correggi il livello giusto e poi rilancia il controllo.

Installazione in home utente invece che in /opt

Se preferisci evitare sudo e avere tutto sotto il tuo profilo utente, puoi installare Flutter nella home. La logica resta identica, cambia solo il percorso.

cd ~
curl -LO https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.24.0-stable.tar.xz
tar -xf flutter_linux_3.24.0-stable.tar.xz
printf '\nexport PATH="$PATH:$HOME/flutter/bin"\n' >> ~/.bashrc
source ~/.bashrc

Questa variante è comoda se lavori su un laptop personale o vuoi evitare interferenze con altri utenti del sistema. Il compromesso è che la gestione delle versioni dipende interamente dal tuo profilo, quindi conviene essere disciplinati con backup e aggiornamenti.

Buone pratiche operative dopo l’installazione

Una volta installato Flutter, tieni il setup ordinato. Non serve complicarsi la vita, ma alcune regole evitano problemi futuri:

  • Usa sempre il canale stabile salvo necessità esplicite di test.
  • Controlla flutter doctor dopo ogni upgrade importante.
  • Non mescolare più installazioni Flutter nello stesso PATH.
  • Documenta il percorso reale del SDK e dell’Android SDK.
  • Se lavori in team, allinea le versioni del toolchain.

Se vuoi rendere il setup ripetibile, conserva anche un piccolo file di note con versione Flutter, versione Android Studio, path SDK e output sintetico di flutter doctor. È una banalità, ma in troubleshooting fa risparmiare tempo vero.

Checklist finale

  1. Flutter disponibile: which flutter restituisce il path corretto.
  2. Versione leggibile: flutter --version funziona senza errori.
  3. Diagnosi pulita: flutter doctor mostra solo eventuali warning noti e accettati.
  4. Android pronto: flutter doctor --android-licenses completato e adb devices mostra il device se collegato.
  5. Progetto di prova: flutter create e flutter run completano senza blocchi.

Se arrivi a questo punto, l’installazione su Ubuntu 22.04 è operativa e abbastanza pulita da reggere aggiornamenti, sviluppo quotidiano e troubleshooting senza dover rifare tutto da zero.

Assunzione: installazione su workstation Ubuntu 22.04 aggiornata, con accesso sudo e obiettivo di sviluppo Flutter per desktop Linux e/o Android.