Comment installer Maven avec Yum?

135

J'essaie de ne pas en apprendre beaucoup sur yum ou maven. J'ai hérité de ce code et je ne veux pas passer plus de temps que nécessaire dans cet environnement.

J'ai miam. Mon installation "a" ("est attachée aussi"? "Connaît"?) Deux dépôts: celui d'Amazon et JPackage, ce qui, je le comprends, est une sorte de standard. (En fait, chacun de ces référentiels se compose de deux sous-référentiels, mais je ne pense pas que cela cause le problème.)

Quand j'ai demandé à yum d'installer maven2, il a refusé, disant qu'il n'avait jamais entendu parler de maven2.

Quand j'ai demandé à yum d'installer maven2 en ignorant Amazon , il le fait, mais il installe Maven 2.0.9, qui est assez ancien. Le pom.xml que j'ai nécessite une version supérieure.

Lorsque je recherche des référentiels Google pour Maven, j'obtiens des référentiels que Maven peut utiliser pour créer d'autres choses, pas des référentiels que Yum peut utiliser pour installer Maven. (J'ai trouvé un référentiel contenant quelque chose qui a permis à Maven de construire Yum. Je pense que Google se moque de moi à ce stade.)

Donc, tout ce dont j'ai besoin est le fichier repo qui pointe vers un repo contenant tout ce dont j'ai besoin pour installer Maven 2.2.1.

S'il n'y avait pas tous ces appareils qui économisent du travail, je pourrais probablement faire du travail.

Malvolio
la source

Réponses:

215

Icarus a répondu à une question très similaire pour moi. Son n'utilise pas "yum", mais devrait toujours fonctionner pour vos besoins. Essayer,

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

en gros, allez simplement sur le site maven . Trouvez la version de maven que vous voulez. Le type de fichier et utilisez le miroir pour l'instruction wget ci-dessus.

Ensuite, le processus est facile

  1. Exécutez également la commande wget à partir du répertoire dans lequel vous souhaitez extraire maven.
  2. exécutez ce qui suit pour extraire le tar,

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. déplacer maven vers / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. Ensuite, ajoutez les variables env à votre fichier ~ / .bashrc

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
  5. Exécutez ces commandes

    source ~ / .bashrc

6:. Vérifiez que tout fonctionne avec la commande suivante

    mvn -version
OrwellHindenberg
la source
1
Merci! le meilleur maven que j'ai pu obtenir jpackageétait maven.noarchtbdce qui était v1.1ou maven2ce qui était v2.0.4... vos instructions alternatives ont beaucoup aidé à me faire maven v3 :)
pulkitsinghal
53
Ces instructions fonctionnent. Mais pourquoi oh pourquoi ne peuvent-ils pas simplement mettre maven dans le référentiel de paquets avec tous les autres paquets pour que les gens n'aient pas à sauter à travers ces obstacles?
aroth
3
@aroth probablement parce qu'il y a ceux qui considèrent Maven comme un anathème
Joseph Lust
1
remplacez simplement le chemin que vous passez wgetpar celui que vous obtenez de maven.apache.org/download.cgi
Ali
@Ali Apache fournit-il un moyen d'utiliser leur nom de domaine plutôt que le nom de domaine des miroirs?
blong
115

Vous pouvez ajouter maven aux bibliothèques yum comme ceci:

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

Vous pouvez maintenant installer maven comme ceci:

yum install apache-maven

Une fois cela fait, maven 3 sera installé et mvn -versionvous montrera quelle version vous avez - j'avais 3.2.1.

Cela a parfaitement fonctionné pour moi sur CentOS 6 à une exception près. Il a installé OpenJDK 1.6 et en a fait la version Java par défaut, même si j'avais déjà installé manuellement JDK 8 (peut - être parce que je l'avais installé manuellement). Pour le modifier, utilisez alternatives:

alternatives --config java
alternatives --config javac

et choisissez la bonne version.

Phil
la source
8
Comme décrit dans ce forum , epel-$releaseverdans le .repofichier téléchargé doit être remplacé par epel-6, sinon yum install apache-mavenéchouera avec l'erreur 404.
OR Mapper
Même le remplacement de epel- $ releasever par epel-6 échoue par 404: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/… : [Errno 14] PYCURL ERROR 22 - "L'URL demandée a renvoyé une erreur : 404 Not Found "
lrkwz
1
est-il possible d'installer une version spécifique (par exemple 3.0.1) avec cette approche?
bsferreira
J'ai pu le faire fonctionner /etc/yum.repos.d/epel-apache-maven.repobaseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
correctement
alternatives --config java
vikingsteve
61

Pour référence future et pour simplifier les gens paresseux qui ne veulent pas beaucoup d'explications, mais exécutent simplement les choses et les font fonctionner dès que possible:

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

J'espère que vous avez apprécié cette session de copier-coller.

Alejandro Pablo Tkachuk
la source
Cela sonnait comme si cela fonctionnerait parfaitement sauf reçu cette erreur: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/… : [Errno 14] Erreur HTTPS 404 - introuvable Je ne sais pas si le repo est temporairement indisponible ou définitivement indisponible.
anon58192932 le
2
@advocate Je viens de créer une autre instance de serveur et d'exécuter les commandes exactes comme décrit et j'ai travaillé comme un charme. désolé pour la réponse tardive, mais il semble que cela fonctionne toujours. à votre santé.
Alejandro Pablo Tkachuk
pourquoi remplaceriez-vous le symbole par une version codée en dur?
Kate
1
Je suppose que @Kate signifie $releasever.
ᴠɪɴᴄᴇɴᴛ
3
Cela a fonctionné pour moi sans l'étape 2, mais il ne veut pas tout le jdk 1.7 même si j'ai déjà un 1.8 installé
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

pour les développeurs JVM, il s'agit d'un gestionnaire de SDK pour tous les outils dont vous avez besoin.

https://sdkman.io/

Installez sdkman:

yum install -y zip unzip

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

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

Installez Maven:

sdk install maven
宏杰 李
la source
12

Je viens d'apprendre un outil d'emballage pratique appelé fpm récemment. En tombant sur cette question, j'ai pensé que je pourrais l'essayer. Il s'avère qu'après avoir lu la réponse de @ OrwellHindenberg, il est facile de conditionner maven dans un RPM avec fpm.

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

créer un répertoire de projet et mettre en page la structure de répertoires du package

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

créer un fichier dans lequel nous allons installer /etc/profile.d/maven.sh, nous le stockerons dans le répertoire etc / profile.d nouvellement créé sous le nom maven.sh , avec le contenu suivant

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

télécharger et décompresser le dernier maven dans le répertoire 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

enfin, construisez le RPM

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

Vous pouvez maintenant installer maven via rpm

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

et alto

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

pas tout à fait miam mais plus près de chez moi;)

quickshiftin
la source
Je suis allé avec maven 3 pour mes besoins, mais tout aussi facile à empaqueter maven v2.
quickshift du
Une autre note, vous devrez vous déconnecter / vous connecter pour que le script /etc/profile.d/maven.sh prenne.
quickshift du
1
Belle solution, merci. BTW. Vous pouvez également taper exec bash(en supposant que vous utilisez bash).
Adam Siemion
9

Pour ceux d'entre vous qui recherchent un moyen d'installer Maven en 2018:

$ sudo yum install maven

est pris en charge ces jours-ci.

Johan Vergeer
la source
Fonctionne pour moi sur Amazon Linux 2 (mars 2019).
ccleve
4

Avez-vous besoin de l'installer avec yum? Il existe de nombreuses autres possibilités:

  • Récupérez le binaire sur http://maven.apache.org/download.html et placez-le dans votre / usr / bn
  • Si vous utilisez Eclipse, vous pouvez obtenir le plugin m2eclipse (http://m2eclipse.sonatype.org/) qui regroupe une version de maven
klaustopher
la source
1
Ouais, je vais le faire dans les 15 prochaines minutes environ si je ne peux pas trouver un meilleur moyen. La raison pour laquelle j'hésite, c'est que Yum est en fait un bon produit s'il sait tout ce qui est installé . Sinon, pas tellement. Je suis sûr que Maven est également un bon produit, pour faire quelque chose dont je n'ai pas besoin, en gardant les versions de la bibliothèque à jour. Le système que j'ai tendance à utiliser comme système de construction, une tâche pour laquelle il est un peu meilleur qu'un script shell et environ un tiers aussi bon que Make, vers 1989. Grrr.
Malvolio
Eh bien, s'ils ne maintenaient que maven2 jusqu'à la version 2.0.7 dans le référentiel jPackage, vous pouvez soit gérer cette version, l'installer à la main, soit créer un RPM à partir des sources de maven.apache.org et l'installer avec yum . Mais vous avez déjà déclaré que vous ne voulez pas passer plus de temps que nécessaire avec cela, donc je pense que l'option 1 conviendrait le mieux à votre situation
klaustopher
2
La question est de l'installer avec yum.
robermorales
7
Ces deux réponses ne répondent pas à la question. La vraie réponse devrait être un dépôt yum disponible qui contient les packages maven3 (dernière version stable?).
James Mills
1
/usr/bnou /usr/bin? Qu'en est-il des autres répertoires tels que /usr/local?
Abdull
3

Maven est packagé pour Fedora depuis mi 2014, c'est donc maintenant assez facile. Tapez simplement

sudo dnf install maven

Maintenant, testez l'installation, lancez simplement maven dans un répertoire aléatoire

mvn

Et cela échouera, car vous n'avez pas spécifié d'objectif, par exemple 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

[...]
user7610
la source
2
un truc idiot est que maven n'est pas mavenexécutable, mais plutôt mvn...
JackLeo
3

C'est ce que j'ai vécu sur Amazon / AWS EMR v5. (Adapté des réponses précédentes), d'avoir Maven et 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

choisissez Java8

sudo alternatives --config javac

choisissez Java8

Maintenant, si vous exécutez:

mvn -version

Tu devrais obtenir:

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"
jgp
la source
1
Eh bien, merci d'avoir publié ça. L'entreprise qui en avait besoin a cessé ses activités en 2012, mais je prends un verre avec les fondateurs environ deux fois par an, alors je vais mentionner votre aide. :-)
Malvolio
@Malvolio - lol et désolé (vous pouvez toujours voter pour ma solution :))
jgp
1
La chute de l'entreprise a été le résultat - et je le dis avec beaucoup de fierté, en tant que seul employé technique - uniquement de problèmes de marketing, et l'infrastructure technique a fonctionné aussi bien qu'on pouvait s'y attendre.
Malvolio
1

Non seulement mvn, pour n'importe quel utilitaire, vous pouvez le découvrir en donnantyum whatprovides {command_name}

Kannan Ramamoorthy
la source