Como instalo o Maven com o Yum?

135

Estou tentando não aprender muito sobre yum ou maven. Eu herdei esse código e não quero gastar mais tempo do que preciso neste ambiente.

Eu tenho yum. Minha instalação "has" ("também está anexada"? "Conhece"?)) Dois repositórios: o Amazon one e o JPackage, que eu entendo que é um padrão. (Na verdade, cada um desses repositórios consiste em dois sub-repositórios, mas acho que isso não está causando o problema.)

Quando pedi ao yum para instalar o maven2, ele recusou, dizendo que nunca tinha ouvido falar do maven2.

Quando pedi ao yum para instalar o maven2 ignorando a Amazon , ele o fez, mas instalou o Maven 2.0.9, que é bastante antigo. O pom.xml real que tenho requer uma versão superior.

Quando eu procuro no Google for Maven, recebo repositórios que o Maven pode usar para criar outras coisas, não repositórios que o Yum pode usar para instalar o Maven. (Encontrei um repositório que contém coisas que permitem ao Maven construir o Yum. Acho que o Google está zombando de mim neste momento.)

Portanto, tudo o que preciso é do arquivo de repositório que aponta para um repositório que contenha o que for necessário para instalar o Maven 2.2.1.

Se não fosse por todos esses dispositivos de economia de trabalho, eu provavelmente poderia fazer algum trabalho.

Malvolio
fonte

Respostas:

215

Ícaro respondeu uma pergunta muito semelhante para mim. Não está usando "yum", mas ainda deve funcionar para seus propósitos. Experimentar,

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

basicamente basta ir ao site do maven . Encontre a versão do maven que você deseja. O tipo de arquivo e use o espelho para a instrução wget acima.

Posteriormente, o processo é fácil

  1. Execute o comando wget do diretório que você deseja extrair o maven também.
  2. execute o seguinte para extrair o alcatrão,

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. mova maven para / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. Em seguida, adicione as variáveis ​​env ao seu arquivo ~ / .bashrc

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

    fonte ~ / .bashrc

6 :. Verifique se tudo está funcionando com o seguinte comando

    mvn -version
OrwellHindenberg
fonte
1
Obrigado! o melhor maven eu poderia obter via jpackageera maven.noarchtbdo que era v1.1ou maven2o que era v2.0.4... suas instruções alternativas ajudou muito para me fazer maven v3 :)
pulkitsinghal
53
Essas instruções funcionam. Mas por que, oh, por que eles não podem simplesmente colocar o maven no repositório de pacotes com todos os outros pacotes, para que as pessoas não precisem pular esses bastidores?
Aroth
3
@aroth provavelmente porque há aqueles que consideram Maven anátema
Joseph Lust
1
basta substituir o caminho que você passar para wgetcom aquele que você começa a partir maven.apache.org/download.cgi
Ali
@ Ali O Apache fornece uma maneira de usar o nome de domínio em vez do nome de domínio espelhado?
BLONG
115

Você pode adicionar o maven às bibliotecas yum assim:

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

Agora você pode instalar o maven assim:

yum install apache-maven

Uma vez feito, o maven 3 será instalado e mvn -versionmostrará qual versão você possui - eu tinha o 3.2.1.

Isso funcionou perfeitamente para mim no CentOS 6, com uma exceção. Ele instalou o OpenJDK 1.6 e a tornou a versão Java padrão, mesmo que eu já tivesse instalado manualmente o JDK 8 (possivelmente porque eu o havia instalado manualmente). Para mudar de volta, use alternatives:

alternatives --config java
alternatives --config javac

e escolha a versão correta.

Phil
fonte
8
Conforme descrito neste fórum , epel-$releasevero .repoarquivo baixado precisa ser substituído por epel-6, ou então yum install apache-mavenfalhará com o erro 404.
OR Mapper
Mesmo a substituição do epel- $ releasever pelo epel-6 falha com 404: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/… : [Errno 14] PYCURL ERROR 22 - "O URL solicitado retornou erro : 404 não encontrado "
lrkwz 10/03/2015
1
é possível instalar uma versão específica (por exemplo, 3.0.1) com essa abordagem?
bsferreira
Consegui fazê-lo funcionar bem com esta entrada no /etc/yum.repos.d/epel-apache-maven.repoarquivo repo:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
i_grok 3/15/15
alternatives --config java
vikingsteve
61

Para referência futura e por simplicidade, para as pessoas preguiçosas por aí que não querem muitas explicações, mas apenas executam as coisas e fazem com que funcione o mais rápido possível:

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 você tenha gostado desta sessão de copiar e colar.

Alejandro Pablo Tkachuk
fonte
Parecia que funcionaria perfeitamente, exceto que recebeu este erro: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/… : [Erro 14] Erro HTTPS 404 - Não encontrado Não sei se o o repo está temporariamente inoperante ou permanentemente inoperante.
Anon58192932
2
@advocate Acabei de criar outra instância do servidor e executar os comandos exatos conforme descrito e funcionou como um encanto. desculpe pela resposta tardia, mas parece que ela ainda está funcionando. Felicidades.
Alejandro Pablo Tkachuk
por que você substitui o símbolo por uma versão codificada?
Kate
1
Eu acho que @Kate significa $releasever.
ᴠɪɴᴄᴇɴᴛ
3
Isso funcionou para mim sem a etapa 2, mas ele não quer instalar o jdk 1.7, embora eu já tenha um 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 desenvolvedor da JVM, este é um gerenciador de SDK para toda a ferramenta que você precisa.

https://sdkman.io/

Instale o sdkman:

yum install -y zip unzip

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

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

Instale o Maven:

sdk install maven
宏杰 李
fonte
12

Acabei de aprender sobre uma ferramenta útil de empacotamento chamada fpm recentemente. Tropeçando nessa questão, pensei em tentar. Acontece que, depois de ler a resposta de @ OrwellHindenberg, é fácil empacotar o maven em um RPM com fpm.

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

crie um diretório de projeto e faça o layout da estrutura de diretórios do pacote

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

crie um arquivo no qual instalaremos /etc/profile.d/maven.sh, o armazenaremos no diretório etc / profile.d recém-criado como maven.sh , com o seguinte conteúdo

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

faça o download e descompacte o maven mais recente no diretório 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, crie o RPM

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

Agora você pode instalar o maven através de 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

não muito yum, mas mais perto de casa;)

troca rápida
fonte
Fui com o maven 3 para meus propósitos, mas com a mesma facilidade de empacotar o maven v2.
quickshiftin
Outra observação: você precisará fazer logout / login para obter o script /etc/profile.d/maven.sh .
quickshiftin 14/09/13
1
Boa solução, obrigado. Entre. Você também pode digitar exec bash(supondo que você esteja usando o bash).
Adam Siemion 30/10
9

Para aqueles que procuram uma maneira de instalar o Maven em 2018:

$ sudo yum install maven

é suportado atualmente.

Johan Vergeer
fonte
Funciona para mim no Amazon Linux 2 (março de 2019).
ccleve
4

Você precisa instalá-lo com o yum? Existem muitas outras possibilidades:

  • Pegue o binário em http://maven.apache.org/download.html e coloque-o no seu / usr / bn
  • Se você estiver usando o Eclipse, poderá obter o plugin m2eclipse (http://m2eclipse.sonatype.org/) que inclui uma versão do maven
klaustopher
fonte
1
Sim, farei isso nos próximos 15 minutos se não conseguir descobrir uma maneira melhor. A razão pela qual estou hesitante é que o Yum é realmente um bom produto, se souber tudo o que está instalado . Caso contrário, nem tanto. Tenho certeza de que o Maven também é um bom produto, para fazer algo que não preciso, mantendo as versões da biblioteca atualizadas. O sistema que estou tendendo a usá-lo como um sistema de construção, uma tarefa que é um pouco melhor do que um script de shell e cerca de um terço tão bom quanto o Make, por volta de 1989. Grrr.
Malvolio
Bem, se eles mantiveram o maven2 até a versão 2.0.7 no repositório jPackage, você pode lidar com essa versão, instalar manualmente ou criar um RPM a partir das fontes em maven.apache.org e instalá-lo com o yum . Mas você já foi dito que você não quer gastar mais tempo então necessário com isso, então eu acho que a opção 1 seria adequar a sua situação o mais
klaustopher
2
A pergunta é sobre como instalá-lo com o yum.
Robertmorales
7
Ambas as respostas não respondem à pergunta. A resposta real deve ser sobre alguns repositórios yum disponíveis que contêm os pacotes maven3 (mais recente estável?).
James Mills
1
/usr/bnou /usr/bin? E quanto a outros diretórios como /usr/local?
Abdull
3

O Maven é fornecido para o Fedora desde meados de 2014, por isso agora é bastante fácil. Apenas digite

sudo dnf install maven

Agora teste a instalação, basta executar o maven em um diretório aleatório

mvn

E falhará, porque você não especificou uma meta, por exemplo 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
fonte
2
uma pegadinha boba é que maven não é mavenexecutável, mas mvn...
JackLeo
3

Foi isso que eu passei no Amazon / AWS EMR v5. (Adaptado das respostas anteriores), para ter 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

escolha Java8

sudo alternatives --config javac

escolha Java8

Agora, se você executar:

mvn -version

Voce deveria pegar:

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
fonte
1
Bem, obrigado por postar isso. A empresa que precisava faliu em 2012, mas eu tomo uma bebida com os fundadores cerca de duas vezes por ano, por isso vou mencionar sua ajuda. :-)
Malvolio 23/07
@Malvolio - lol e pena (você ainda pode upvote minha solução :))
JGP
1
A queda da empresa foi resultado - e digo isso com considerável orgulho, como seu único funcionário técnico - apenas de problemas de marketing, e a infraestrutura técnica funcionou tão bem quanto poderia ser esperada.
Malvolio
1

Não apenas mvn, para qualquer util, você pode descobrir-se dandoyum whatprovides {command_name}

Kannan Ramamoorthy
fonte