1 20/10/2026 7 min

Su AlmaLinux 9 e Rocky Linux hai tre strade sensate per installare Apache Maven: usare il pacchetto del repository, fare un’installazione manuale da archivio ufficiale oppure gestirlo con SDKMAN se lavori spesso con versioni diverse. La scelta non è solo estetica: cambia il livello di controllo, la manutenzione degli aggiornamenti e quanto facilmente puoi riprodurre l’ambiente su più host.

Se il nodo è un server di build o una macchina condivisa, in genere conviene privilegiare l’installazione via package manager. Se invece devi testare una release specifica di Maven, o vuoi affiancare più versioni senza toccare troppo il sistema, l’installazione manuale o SDKMAN sono più flessibili. Qui sotto trovi i tre metodi, con comandi, verifiche e note operative utili in ambiente Linux reale.

Metodo 1: installare Maven dai repository di sistema

È il metodo più semplice e quello che si integra meglio con il ciclo di vita del sistema operativo. Il rovescio della medaglia è che la versione disponibile nei repository può non essere la più recente. Per ambienti stabili, però, spesso è la scelta più pulita: aggiornamenti tracciabili, rimozione semplice e meno variabili da gestire.

Prima verifica se il pacchetto è già presente nei repository abilitati:

sudo dnf search maven
sudo dnf info maven

Se il pacchetto è disponibile, installalo con:

sudo dnf install -y maven

Dopo l’installazione controlla che il comando sia risolvibile e che la versione sia coerente con quella attesa:

mvn -version

L’output deve mostrare la versione di Maven, la JVM in uso e il percorso di installazione. Se mvn non viene trovato, il problema è quasi sempre nel PATH o in un’installazione incompleta. In un sistema standard il binario finisce in un percorso come /usr/bin/mvn, spesso tramite link gestito dal pacchetto.

Questo approccio è adatto quando non ti serve una release specifica. In cambio ottieni una manutenzione lineare: aggiornamenti con dnf update, rimozione con dnf remove maven e nessun archivio manuale da inseguire nel tempo.

Metodo 2: installazione manuale da archivio ufficiale Apache

Se ti serve una versione precisa di Maven, l’installazione manuale è la soluzione più diretta. È anche quella che ti dà maggiore controllo sul layout del filesystem. Il punto debole è che gli aggiornamenti diventano una tua responsabilità: devi gestire tu il cambio versione, il symlink e l’eventuale rollback.

Scarica l’archivio ufficiale dal sito Apache. Conviene usare sempre la fonte ufficiale e, se il contesto lo richiede, verificare checksum e firma. Un esempio tipico, con una versione indicativa, è questo:

cd /tmp
curl -O https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz

Estrai l’archivio in una directory dedicata, ad esempio /opt, che è una scelta comune per software opzionale installato manualmente:

sudo tar -xzf apache-maven-3.9.9-bin.tar.gz -C /opt
sudo ln -sfn /opt/apache-maven-3.9.9 /opt/maven

Il symlink /opt/maven ti semplifica gli upgrade: quando passerai a una versione nuova potrai puntare il link al nuovo tree senza cambiare il resto della configurazione. È una pratica semplice ma molto utile in ambienti server, perché rende il rollback quasi immediato.

Per rendere Maven disponibile a tutti gli utenti puoi creare uno script di ambiente in /etc/profile.d/. È meglio di modificare a mano il profilo di ogni utente, soprattutto se il server ospita account tecnici diversi.

sudo tee /etc/profile.d/maven.sh > /dev/null <<'EOF'
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=/opt/maven/bin:$PATH
EOF
sudo chmod 0644 /etc/profile.d/maven.sh

Ricarica la sessione oppure apri una nuova shell, quindi verifica:

source /etc/profile.d/maven.sh
mvn -version

Se vuoi una verifica più precisa del punto di ingresso del binario, usa:

which mvn
readlink -f $(which mvn)

La seconda riga ti dice davvero quale eseguibile stai usando. È una verifica utile quando in macchina coesistono installazioni multiple o quando un vecchio pacchetto del sistema entra in conflitto con la versione manuale.

Metodo 3: gestire Maven con SDKMAN

SDKMAN è comodo quando lavori con più versioni di Java e Maven e vuoi cambiare rapidamente senza toccare il sistema globale. È particolarmente utile su workstation tecniche, server di build o ambienti di test dove l’utente deve poter alternare release diverse in modo ripetibile.

Installa prima gli strumenti base necessari al bootstrap:

sudo dnf install -y curl unzip zip

Poi installa SDKMAN con lo script ufficiale:

curl -s "https://get.sdkman.io" | bash

Apri una nuova shell o carica l’ambiente, quindi installa Maven:

source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install maven

Se vuoi una versione specifica, elencale prima e poi scegli quella che ti serve:

sdk list maven
sdk install maven 3.9.9

La verifica è identica alle altre strade:

mvn -version

Il vantaggio operativo è chiaro: puoi cambiare versione al volo con sdk use maven 3.9.9 oppure impostarne una di default con sdk default maven 3.9.9. Per chi testa plugin, compatibilità di build o progetti legacy, questo riduce molto il tempo perso dietro a installazioni parallele.

Il limite è che SDKMAN è più orientato all’utente che al sistema. Se devi standardizzare una build farm con account condivisi o policy centralizzate, la gestione via pacchetto o installazione manuale sotto /opt resta spesso più controllabile.

Quale metodo scegliere su AlmaLinux 9 e Rocky Linux

La scelta dipende dal contesto, non dalla moda del momento. Su server di produzione o su host gestiti da più persone, il metodo via dnf è il più lineare perché si integra con la gestione del sistema. Se la versione nei repository è troppo vecchia rispetto ai requisiti del progetto, passa all’installazione manuale e tienila sotto /opt con symlink stabile. Se invece il tuo lavoro è cambiare spesso versione, SDKMAN è quello che ti fa risparmiare più tempo.

In termini pratici:

  • Repository di sistema: meglio per server stabili, manutenzione semplice, aggiornamenti coerenti con il resto dell’OS.
  • Installazione manuale: meglio per versioni precise, ambienti standardizzati e controllo completo del percorso di installazione.
  • SDKMAN: meglio per sviluppo, test e switch frequenti tra release diverse.

Se stai preparando una macchina per compilazioni ripetibili, aggiungi anche una verifica del runtime Java, perché Maven dipende dalla JVM disponibile. Un mvn -version che mostra una Java non prevista è un segnale da non ignorare: il problema non è Maven in sé, ma il livello Java che gli sta sotto.

Verifiche utili dopo l’installazione

Dopo aver installato Maven, conviene fare tre controlli rapidi. Il primo è il binario effettivo, il secondo è la versione, il terzo è la capacità di eseguire una build minima. Questo evita di scoprire problemi solo quando l’utente lancia la pipeline.

which mvn
mvn -version
mvn -q -DskipTests archetype:generate \ -DgroupId=com.example \ -DartifactId=test-maven \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DinteractiveMode=false

Il primo comando conferma il path, il secondo mostra la coppia Maven/Java, il terzo forza una prova reale di utilizzo. Se l’archetype viene generato correttamente, hai una conferma concreta che l’installazione è utilizzabile e non solo presente sul filesystem.

Se la build fallisce per problemi di rete o repository, il difetto non riguarda l’installazione di Maven ma l’accesso ai repository remoti o la configurazione del proxy. In quel caso controlla il file ~/.m2/settings.xml o la reachability verso Maven Central, senza confondere il sintomo con la causa.

Disinstallazione e rollback senza sorprese

Il rollback va pensato prima, soprattutto se lavori su sistemi condivisi. Con il pacchetto di sistema basta rimuovere il pacchetto; con l’installazione manuale basta ripuntare il symlink; con SDKMAN puoi eliminare o cambiare versione senza toccare il resto dell’ambiente.

Per il metodo dnf:

sudo dnf remove -y maven

Per l’installazione manuale, se hai usato /opt/maven come link stabile, puoi cambiare versione con un solo comando. Esempio:

sudo ln -sfn /opt/apache-maven-3.9.8 /opt/maven

Per SDKMAN, la gestione è altrettanto diretta:

sdk uninstall maven 3.9.9
sdk use maven 3.9.8

Se hai modificato /etc/profile.d/maven.sh, tienilo sotto controllo con un minimo di versioning o con una copia di backup. È una banalità, ma in pratica è quello che ti salva quando devi tornare indietro in fretta dopo una modifica sbagliata al PATH.

In sintesi: usa il repository del sistema quando vuoi semplicità e manutenzione ordinaria, l’archivio ufficiale quando serve una versione precisa e SDKMAN quando il cambio versione è parte del tuo lavoro quotidiano. Su AlmaLinux 9 e Rocky Linux tutte e tre le opzioni sono valide; la differenza la fa il contesto operativo, non la preferenza personale.