¿Cómo instalo Maven con Yum?

135

Estoy tratando de no aprender mucho sobre yum o maven. Heredé este código y no quiero pasar más tiempo del necesario en este entorno.

Tengo ñam. Mi instalación "tiene" ("también está adjunto"? "Sabe acerca de"?) Dos repositorios: el de Amazon y JPackage, que entiendo es algo estándar. (En realidad, cada uno de esos repositorios consta de dos subrepositorios, pero no creo que eso esté causando el problema).

Cuando le pedí a yum que instalara maven2, se negó, diciendo que nunca había oído hablar de maven2.

Cuando le pedí a yum que instalara maven2 ignorando Amazon , lo hizo, pero instala Maven 2.0.9, que es bastante antiguo. El pom.xml real que tengo requiere una versión superior.

Cuando busco en Google los repositorios de Maven, obtengo repositorios que Maven puede usar para construir otras cosas, no repositorios que Yum puede usar para instalar Maven. (Encontré un repositorio que contenía algo que le permitió a Maven construir Yum. Creo que Google se está burlando de mí en este momento).

Entonces, todo lo que necesito es el archivo de repositorio que apunta a un repositorio que contiene todo lo que necesito para instalar Maven 2.2.1.

Si no fuera por todos estos dispositivos que ahorran trabajo, probablemente podría hacer algo de trabajo.

Malvolio
fuente

Respuestas:

215

Ícaro respondió una pregunta muy similar para mí. No está usando "yum", pero aún debería funcionar para sus propósitos. Tratar,

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

básicamente solo ve al sitio maven . Encuentra la versión de maven que quieras. El tipo de archivo y el uso del espejo para la instrucción wget anterior.

Luego el proceso es fácil

  1. Ejecute el comando wget desde el directorio que desea extraer Maven también.
  2. ejecuta lo siguiente para extraer el alquitrán,

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. mover maven a / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. A continuación, agregue las variables env a su archivo ~ / .bashrc

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
  5. Ejecute estos comandos

    fuente ~ / .bashrc

6 :. Verifica que todo funcione con el siguiente comando

    mvn -version
OrwellHindenberg
fuente
1
¡Gracias! la mejor experta podría conseguir a través de jpackageera maven.noarchtbdque era v1.1o maven2que era v2.0.4... sus instrucciones alternativas ayudaron mucho para que me experto v3 :)
pulkitsinghal
53
Estas instrucciones funcionan. Pero, ¿por qué, por qué no pueden simplemente poner a Maven en el repositorio de paquetes con todos los demás paquetes para que las personas no tengan que saltar por estos aros?
Aroth
3
@aroth probablemente porque hay quienes consideran el anatema de Maven
Joseph Lust el
1
simplemente reemplace el camino por el que pasa por wgetuno que obtiene de maven.apache.org/download.cgi
Ali
@ Ali ¿Apache proporciona una forma de usar su nombre de dominio en lugar del nombre de dominio espejo?
blong
115

Puede agregar maven a las bibliotecas yum de esta manera:

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

Ahora se puede Instalar maven como esto:

yum install apache-maven

Una vez hecho esto, se instalará maven 3 y mvn -versionle mostrará qué versión tiene: tenía 3.2.1.

Esto funcionó perfectamente para mí en CentOS 6 con una excepción. Instaló OpenJDK 1.6 y lo convirtió en la versión predeterminada de Java, a pesar de que ya había instalado manualmente JDK 8 (posiblemente porque lo había instalado manualmente). Para volver a cambiarlo use alternatives:

alternatives --config java
alternatives --config javac

y elige la versión correcta.

Phil
fuente
8
Como se describe en este foro , epel-$releaseveren el .repoarchivo descargado debe reemplazarse epel-6, o de lo contrario yum install apache-mavenfallará con el error 404.
O Mapper
Incluso el reemplazo de epel- $ releasever con epel-6 falla con 404: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/… : [Errno 14] PYCURL ERROR 22 - "La URL solicitada devolvió el error : 404 no encontrado "
lrkwz
1
¿Es posible instalar una versión específica (por ejemplo, 3.0.1) con este enfoque?
bsferreira
Pude hacer que funcionara bien con esta entrada en el /etc/yum.repos.d/epel-apache-maven.repoarchivo de repositorio:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
i_grok
alternatives --config java
vikingsteve
61

Para referencia futura y por simplicidad, para la gente perezosa que no quiere muchas explicaciones, sino que simplemente ejecuta las cosas y hace que funcione lo antes posible:

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

Espero que hayas disfrutado de esta sesión de copiar y pegar.

Alejandro Pablo Tkachuk
fuente
Esto parecía funcionar perfectamente, excepto que recibió este error: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/… : [Errno 14] HTTPS Error 404 - No encontrado No sé si el repo está temporalmente inactivo o permanentemente inactivo.
anon58192932
2
@advocate Acabo de crear otra instancia de servidor y ejecuto los comandos exactos como se describe y funcionó de maravilla. perdón por la respuesta tardía, pero parece que todavía funciona. salud.
Alejandro Pablo Tkachuk
¿Por qué reemplazarías el símbolo con una versión codificada?
Kate
1
Supongo que @Kate quiere decir $releasever.
ᴠɪɴᴄᴇɴᴛ
3
Esto funcionó para mí sin el paso 2, pero quiere instalar jdk 1.7 a pesar de que ya tengo un 1.8 instalado
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

para el desarrollador de JVM, este es un administrador de SDK para toda la herramienta que necesita.

https://sdkman.io/

Instalar sdkman:

yum install -y zip unzip

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

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

Instalar Maven:

sdk install maven
宏杰 李
fuente
12

Acabo de enterarme de una práctica herramienta de empaque llamada fpm recientemente. Tropezando con esta pregunta, pensé que podría intentarlo. Resulta que, después de leer la respuesta de @ OrwellHindenberg, es fácil empaquetar maven en un RPM con fpm.

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

crear un directorio de proyecto y diseñar la estructura de directorios del paquete

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

crear un archivo en el que lo instalaremos /etc/profile.d/maven.sh, lo almacenaremos en el recién creado directorio etc / profile.d como maven.sh , con el siguiente contenido

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

descarga y desempaqueta el último maven en el directorio 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

finalmente, construya el RPM

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

Ahora puedes instalar maven a través de rpm

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

y viola

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

no muy rico pero más cerca de casa;)

quickshiftin
fuente
Fui con maven 3 para mis propósitos, pero igual de fácil de empaquetar maven v2.
quickshiftin
Otra nota, tendrá que cerrar sesión / iniciar sesión para que tome el script /etc/profile.d/maven.sh .
quickshiftin
1
Buena solución, gracias. Por cierto. También puede escribir exec bash(suponiendo que esté usando bash).
Adam Siemion
9

Para aquellos de ustedes que buscan una manera de instalar Maven en 2018:

$ sudo yum install maven

Es compatible en estos días.

Johan Vergeer
fuente
Funciona para mí en Amazon Linux 2 (marzo de 2019).
ccleve
4

¿Necesitas instalarlo con yum? Hay muchas otras posibilidades:

  • Toma el binario de http://maven.apache.org/download.html y póngalo en su / usr / bn
  • Si está utilizando Eclipse, puede obtener el complemento m2eclipse (http://m2eclipse.sonatype.org/) que incluye una versión de maven
klaustopher
fuente
1
Sí, lo haré en los próximos 15 minutos si no puedo encontrar una mejor manera. La razón por la que dudo es que Yum es realmente un buen producto si conoce todo lo que está instalado . De lo contrario, no tanto. Estoy seguro de que Maven también es un buen producto, para hacer algo que no necesito hacer, manteniendo actualizadas las versiones de la biblioteca. El sistema que tiendo a usar lo usa como un sistema de compilación, una tarea en la que es un poco mejor que un script de shell y aproximadamente un tercio tan bueno como Make, alrededor de 1989. Grrr.
Malvolio
Bueno, si solo mantuvieron maven2 hasta la versión 2.0.7 en el repositorio de jPackage, entonces puede manejar esa versión, instalar a mano o podría crear un RPM a partir de las fuentes en maven.apache.org e instalarlo con yum . Pero ya has dicho que no quieres pasar más tiempo del necesario con esto, así que creo que la opción 1 se adaptaría mejor a tu situación
klaustopher
2
La pregunta es sobre instalarlo con yum.
robermorales
77
Ambas respuestas no responden la pregunta. La respuesta real debería ser sobre algún repositorio de yum disponible que contenga los paquetes maven3 (¿último estable?).
James Mills
1
/usr/bno /usr/bin? ¿Qué pasa con otros directorios como/usr/local ?
Abdull
3

Maven está empaquetado para Fedora desde mediados de 2014, por lo que ahora es bastante fácil. Sólo tipo

sudo dnf install maven

Ahora prueba la instalación, solo ejecuta maven en un directorio aleatorio

mvn

Y fallará, porque no especificó un objetivo, por ejemplo 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
fuente
2
Gotcha tonto es que no es experta en mavenejecutable, sino más bien mvn...
JackLeo
3

Esto es lo que pasé en Amazon / AWS EMR v5. (Adaptado de las respuestas anteriores), para tener Maven y 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

elegir Java8

sudo alternatives --config javac

elegir Java8

Ahora, si corres:

mvn -version

Deberías obtener:

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
fuente
1
Bueno, gracias por publicar eso. La compañía que lo necesitaba cerró en 2012, pero tomo unos tragos con los fundadores aproximadamente dos veces al año, así que mencionaré su ayuda. :-)
Malvolio
@Malvolio - jajaja y lo siento (todavía puedes votar mi solución :))
jgp
1
La caída de la compañía fue el resultado, y lo digo con mucho orgullo, como su único empleado técnico, únicamente por problemas de marketing, y la infraestructura técnica funcionó tan bien como era de esperar.
Malvolio
1

No solo mvn, para cualquier utilidad, puede descubrirlo dandoyum whatprovides {command_name}

Kannan Ramamoorthy
fuente