Come installo Maven con Yum?


135

Sto cercando di non imparare molto su yum o maven. Ho ereditato questo codice e non voglio passare più tempo di quanto devo in questo ambiente.

Ho yum. La mia installazione "ha" ("è allegato anche"? "Conosce"?) Due repository: quello di Amazon e JPackage, che capisco sia una sorta di standard. (In realtà, ciascuno di questi repository è costituito da due repository, ma non credo che ciò causi il problema.)

Quando ho chiesto a yum di installare maven2, è diminuito, dicendo che non aveva mai sentito parlare di maven2.

Quando ho chiesto a yum di installare maven2 ignorando Amazon , lo fa, ma installa Maven 2.0.9, che è piuttosto vecchio. L'attuale pom.xml che ho richiede una versione successiva.

Quando utilizzo i repository Google per Maven, ottengo i repository che Maven può utilizzare per creare altre cose, non i repository che Yum può utilizzare per installare Maven. (Ho trovato un repository contenente cose che hanno permesso a Maven di costruire Yum. Penso che Google mi stia prendendo in giro a questo punto.)

Quindi, tutto ciò di cui ho bisogno è il file repository che punta a un repository che contiene tutto ciò di cui ho bisogno per installare Maven 2.2.1.

Se non fosse per tutti questi dispositivi salvavita, probabilmente potrei fare un po 'di lavoro.

Risposte:


215

Icarus ha risposto a una domanda molto simile per me. Non usa "yum", ma dovrebbe comunque funzionare per i tuoi scopi. Provare,

wget http://mirror.olnevhost.net/pub/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz

in pratica basta andare sul sito di Maven . Trova la versione di Maven che desideri. Il tipo di file e utilizzare il mirror per l'istruzione wget sopra.

Successivamente il processo è semplice

  1. Esegui il comando wget dalla directory che vuoi estrarre anche Maven.
  2. eseguire quanto segue per estrarre il tar,

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. sposta maven in / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. Quindi aggiungi le variabili env al tuo file ~ / .bashrc

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
    
  5. Esegui questi comandi

    fonte ~ / .bashrc

6 :. Verifica che tutto funzioni con il seguente comando

    mvn -version

1
Grazie! la migliore maven che potevo ottenere jpackageera maven.noarchtbdquale era v1.1o maven2quale era v2.0.4... le tue istruzioni alternative mi hanno aiutato molto a farmi arrivare
maven

53
Queste istruzioni funzionano. Ma perché oh perché non possono semplicemente mettere Maven nel repository di pacchetti con tutti gli altri pacchetti in modo che le persone non debbano saltare attraverso questi cerchi?
aroth

3
@aroth probabilmente perché ci sono quelli che considerano l'anatema di Maven
Joseph Lust,

1
sostituisci semplicemente il percorso che passi a wgetquello che ottieni da maven.apache.org/download.cgi
Ali

@Ali Apache fornisce un modo per utilizzare il proprio nome di dominio anziché il nome di dominio dei mirror?
blong,

115

Puoi aggiungere Maven alle librerie di yum in questo modo:

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

Ora puoi installare Maven in questo modo:

yum install apache-maven

Una volta fatto, maven 3 verrà installato e mvn -versionti mostrerà quale versione hai - avevo 3.2.1.

Questo ha funzionato perfettamente per me su CentOS 6 con un'eccezione. Ha installato OpenJDK 1.6 e lo ha reso la versione Java predefinita, anche se avevo già installato manualmente JDK 8 (probabilmente perché l' avevo installato manualmente). Per cambiarlo indietro usa alternatives:

alternatives --config java
alternatives --config javac

e scegli la versione corretta.


8
Come descritto in questo forum , epel-$releaseveril .repofile scaricato deve essere sostituito epel-6, altrimenti yum install apache-mavenfallirà con l'errore 404.
OR Mapper

Anche la sostituzione di epel- $ releasever con epel-6 fallisce con 404: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/… : [Errno 14] PYCURL ERROR 22 - "L'URL richiesto ha restituito un errore : 404 Not Found "
lrkwz,

1
è possibile installare una versione specifica (ad es. 3.0.1) con questo approccio?
bsferreira,

Sono stato in grado di farlo funzionare bene con questa voce nel /etc/yum.repos.d/epel-apache-maven.repofile repository:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
i_grok

alternatives --config java
vikingsteve,

61

Per riferimento futuro e per amor di semplicità per le persone pigre là fuori che non vogliono molte spiegazioni ma semplicemente eseguono le cose e fanno funzionare al più presto:

1) sudo wget https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

2) sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo

3) sudo yum install -y apache-maven

4) mvn --version

Spero ti sia piaciuta questa sessione di copia e incolla.


Sembrava che avrebbe funzionato perfettamente se non fosse stato ricevuto questo errore: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/… : [Errno 14] Errore HTTPS 404 - Non trovato Non so se il il pronti contro termine è temporaneamente inattivo o permanentemente inattivo.
anon58192932

2
@advocate Ho appena creato un'altra istanza del server ed eseguito i comandi esatti come descritto e ha funzionato come un incantesimo. scusate la risposta tardiva, ma sembra che funzioni ancora. Saluti.
Alejandro Pablo Tkachuk,

perché dovresti sostituire il simbolo con una versione hardcoded?
Kate,

1
Immagino che @Kate significhi $releasever.
ᴠɪɴᴄᴇɴᴛ

3
Questo ha funzionato per me senza il passaggio 2, ma vuole non essere jdk 1.7 anche se ho già installato un 1.8
Adam

18
yum install -y yum-utils

yum-config-manager --add-repo http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo

yum-config-manager --enable epel-apache-maven

yum install -y apache-maven

per gli sviluppatori JVM, questo è un gestore SDK per tutti gli strumenti di cui hai bisogno.

https://sdkman.io/

Installa sdkman:

yum install -y zip unzip

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

source "$HOME/.sdkman/bin/sdkman-init.sh"

Installa Maven:

sdk install maven

12

Ho appena appreso di recente un pratico strumento di packaging chiamato fpm . Inciampando su questa domanda, ho pensato di provarlo. Si scopre, dopo aver letto la risposta di @OrwellHindenberg, è facile impacchettare Maven in un RPM con fpm.

yum install -y gcc make rpm-build ruby-devel rubygems
gem install fpm

creare una directory di progetto e impaginare la struttura di directory del pacchetto

mkdir maven-build
cd maven-build
mkdir -p etc/profile.d opt

creare un file su cui installeremo /etc/profile.d/maven.sh, lo memorizzeremo nella directory etc / profile.d appena creata come maven.sh , con i seguenti contenuti

export M3_HOME=/opt/apache-maven-3.1.0
export M3=$M3_HOME/bin
export PATH=$M3:$PATH

scaricare e decomprimere la versione più recente nella directory opt

wget http://www.eng.lsu.edu/mirrors/apache/maven/maven-3/3.1.0/binaries/apache-maven-3.1.0-bin.tar.gz
tar -xzf apache-maven-3.1.0-bin.tar.gz -C opt

infine, crea l'RPM

fpm -n maven-3.1.0 -s dir -t rpm etc opt

Ora puoi installare maven tramite rpm

$ rpm -Uvh maven-3.1.0-1.0-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:maven-3.1.0            ########################################### [100%]

e viola

$ which mvn
/opt/apache-maven-3.1.0/bin/mvn

non proprio gnam ma più vicino a casa;)


Sono andato con maven 3 per i miei scopi, ma altrettanto facile da impacchettare maven v2.
cambio rapido

Un'altra nota, dovrai disconnetterti / accedere per prendere lo script /etc/profile.d/maven.sh .
cambio rapido

1
Bella soluzione, grazie. BTW. Puoi anche digitare exec bash(supponendo che tu stia usando bash).
Adam Siemion,

9

Per quelli di voi che stanno cercando un modo per installare Maven nel 2018:

$ sudo yum install maven

è supportato in questi giorni.


Funziona per me su Amazon Linux 2 (marzo 2019).
ccleve

4

Devi installarlo con yum? Ci sono molte altre possibilità:

  • Prendi il binario da http://maven.apache.org/download.html e mettilo nel tuo / usr / bn
  • Se stai usando Eclipse puoi ottenere il plugin m2eclipse (http://m2eclipse.sonatype.org/) che raggruppa una versione di maven

1
Sì, lo farò tra circa 15 minuti se non riesco a trovare un modo migliore. Il motivo per cui sono titubante è che Yum è in realtà un buon prodotto se sa tutto ciò che è installato . Altrimenti, non così tanto. Sono sicuro che anche Maven è un buon prodotto, nel fare qualcosa che non ho bisogno di fare, mantenendo aggiornate le versioni delle librerie. Il sistema che sto tendendo ad usarlo come sistema di compilazione, un compito in cui è un po 'meglio di uno script di shell e circa un terzo buono come Make, circa 1989. Grrr.
Malvolio,

Bene, se hanno mantenuto solo maven2 fino alla versione 2.0.7 nel repository jPackage, allora puoi occuparti di quella versione, installarla a mano o puoi creare un RPM dai sorgenti su maven.apache.org e installarlo con yum . Ma hai già dichiarato che non vuoi passare più tempo del necessario con questo, quindi penso che l'opzione 1 si adatterebbe maggiormente alla tua situazione
klaustopher,

2
La domanda è sull'installazione con yum.
robermorales,

7
Entrambe queste risposte non rispondono alla domanda. La vera risposta dovrebbe riguardare alcuni repository yum disponibili che contengono i pacchetti maven3 (latest stable?).
James Mills,

1
/usr/bno /usr/bin? Che dire di altre directory come /usr/local?
Abdull,

3

Maven è confezionato per Fedora dalla metà del 2014, quindi ora è abbastanza facile. Basta digitare

sudo dnf install maven

Ora prova l'installazione, esegui maven in una directory casuale

mvn

E fallirà, perché non hai specificato un obiettivo, ad es mvn package

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.102 s
[INFO] Finished at: 2017-11-14T13:45:00+01:00
[INFO] Final Memory: 8M/176M
[INFO] ------------------------------------------------------------------------
[ERROR] No goals have been specified for this build

[...]

2
un stupido gotcha è che Maven non è maveneseguibile, ma piuttosto mvn...
JackLeo,

3

Questo è quello che ho passato su Amazon / AWS EMR v5. (Adattato dalle risposte precedenti), per avere Maven e Java8 .

sudo wget https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
sudo yum install -y apache-maven
sudo alternatives --config java

scegli Java8

sudo alternatives --config javac

scegli Java8

Ora, se corri:

mvn -version

Dovresti ricevere:

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)
Maven home: /usr/share/apache-maven
Java version: 1.8.0_171, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.38.amzn1.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.14.47-56.37.amzn1.x86_64", arch: "amd64", family: “unix"

1
Bene, grazie per averlo pubblicato. La società che ne aveva bisogno ha cessato l'attività nel 2012, ma bevo qualcosa con i fondatori circa due volte l'anno, quindi menzionerò il tuo aiuto. :-)
Malvolio il

@Malvolio - lol e scusa (puoi ancora votare la mia soluzione :))
jgp

1
La caduta dell'azienda fu il risultato - e lo dico con notevole orgoglio, in quanto il loro unico impiegato tecnico - unicamente per problemi di marketing e l'infrastruttura tecnica ha funzionato bene come ci si poteva aspettare.
Malvolio,

1

Non solo mvn, per qualsiasi utilità, puoi scoprire te stesso dandoyum whatprovides {command_name}

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.