Jak zainstalować Maven z Yum?


135

Staram się nie uczyć zbyt wiele o mniam lub maven. Odziedziczyłem ten kod i nie chcę spędzać więcej czasu niż muszę w tym środowisku.

Mam mniam. Moja instalacja „ma” („też jest dołączona”? „Wie o”?) Dwa repozytoria: Amazon i JPackage, co, jak rozumiem, jest czymś w rodzaju standardu. (Właściwie każde z tych repozytoriów składa się z dwóch repozytoriów podrzędnych, ale nie sądzę, że to powoduje problem).

Kiedy poprosiłem yum o zainstalowanie maven2, odmówił, mówiąc, że nigdy nie słyszał o maven2.

Kiedy poprosiłem yum o zainstalowanie maven2 ignorując Amazon , robi to, ale instaluje Maven 2.0.9, który jest dość stary. Rzeczywisty pom.xml, który mam, wymaga wyższej wersji.

Kiedy korzystam z repozytoriów Google for Maven, otrzymuję repozytoria, których Maven może używać do budowania innych rzeczy, a nie repozytoria, których Yum może użyć do zainstalowania Mavena. (Znalazłem repozytorium zawierające coś, co pozwoliło Mavenowi zbudować Yum. Myślę, że w tym momencie Google kpi ze mnie.)

Więc wszystko, czego potrzebuję, to plik repozytorium , który wskazuje na repozytorium zawierające wszystko, czego potrzebuję, aby zainstalować Maven 2.2.1.

Gdyby nie te wszystkie urządzenia oszczędzające pracę, prawdopodobnie mógłbym wykonać jakąś pracę.

Odpowiedzi:


215

Ikar odpowiedział mi na bardzo podobne pytanie. Nie używa "yum", ale nadal powinno działać do twoich celów. Próbować,

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

po prostu przejdź do witryny maven . Znajdź odpowiednią wersję programu Maven. Typ pliku i użycie kopii lustrzanej dla powyższej instrukcji wget.

Potem proces jest łatwy

  1. Uruchom polecenie wget z katalogu, z którego chcesz wyodrębnić maven.
  2. uruchom następujące polecenie, aby wyodrębnić smołę,

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. przenieś maven do / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. Następnie dodaj zmienne env do swojego pliku ~ / .bashrc

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
    
  5. Wykonaj te polecenia

    źródło ~ / .bashrc

6 :. Sprawdź, czy wszystko działa, używając następującego polecenia

    mvn -version

1
Dzięki! najlepszy maven, przez jaki mogłem się dostać, jpackageto, maven.noarchtbdktóry był v1.1lub maven2który był v2.0.4... twoje alternatywne instrukcje bardzo pomogły mi dostać się do
Maven

53
Te instrukcje działają. Ale dlaczego, och, dlaczego nie mogą po prostu umieścić mavena w repozytorium pakietów ze wszystkimi innymi pakietami, aby ludzie nie musieli skakać przez te obręcze?
rano

3
@aroth prawdopodobnie dlatego, że są tacy, którzy uważają Maven za anatemę
Joseph Lust

1
po prostu zastąp ścieżkę, do której przechodzisz, tą, wgetktórą uzyskasz z maven.apache.org/download.cgi
Ali

@Ali Czy Apache umożliwia użycie nazwy domeny zamiast nazwy domeny serwera lustrzanego?
blong

115

Możesz dodać mavena do bibliotek yum w ten sposób:

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

Teraz już można zainstalować Maven tak:

yum install apache-maven

Gdy skończysz, maven 3 zostanie zainstalowany i mvn -versionpokaże Ci, którą wersję posiadasz - miałem 3.2.1.

To działało idealnie dla mnie na CentOS 6 z jednym wyjątkiem. Zainstalował OpenJDK 1.6 i ustawił go jako domyślną wersję Java, mimo że już ręcznie zainstalowałem JDK 8 (prawdopodobnie dlatego , że ręcznie go zainstalowałem). Aby to zmienić, użyj alternatives:

alternatives --config java
alternatives --config javac

i wybierz odpowiednią wersję.


8
Jak opisano na tym forum , epel-$releaseverw pobranym .repopliku należy go podmienić epel-6, bo inaczej yum install apache-mavenzakończy się błąd 404.
LUB Mapper

Nawet zastąpienie epel- $ releaseasever epel-6 kończy się niepowodzeniem z 404: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/… : [Errno 14] PYCURL ERROR 22 - „Żądany adres URL zwrócił błąd : 404 Not Found ”
lrkwz

1
czy przy takim podejściu można zainstalować konkretną wersję (np. 3.0.1)?
bsferreira

Udało mi się sprawić, że działa dobrze z tym wpisem w /etc/yum.repos.d/epel-apache-maven.repopliku repozytorium:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
i_grok

alternatives --config java
vikingsteve

61

Dla przyszłego odniesienia i dla uproszczenia dla leniwych ludzi, którzy nie chcą wielu wyjaśnień, ale po prostu uruchamiają i sprawiają, że działa jak najszybciej:

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

Mamy nadzieję, że podobała Ci się ta sesja kopiowania i wklejania.


Brzmiało to tak, jakby działało idealnie, z wyjątkiem otrzymania tego błędu: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/ ... : [Errno 14] Błąd HTTPS 404 - Nie znaleziono Nie wiem, czy repozytorium jest tymczasowo lub na stałe wyłączone.
anon58192932

2
@advocate Właśnie utworzyłem kolejną instancję serwera i uruchomiłem dokładnie takie polecenia, jak opisano i działałem jak marzenie. przepraszam za późną odpowiedź, ale wygląda na to, że nadal działa. Twoje zdrowie.
Alejandro Pablo Tkachuk

dlaczego miałbyś zastąpić symbol wersją zakodowaną na stałe?
Kate,

1
Myślę, że @Kate ma na myśli $releasever.
ᴠɪɴᴄᴇɴᴛ

3
To zadziałało dla mnie bez kroku 2, ale nie chce mieć całego jdk 1.7, mimo że mam już zainstalowany 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

dla programistów JVM jest to menedżer SDK dla wszystkich potrzebnych narzędzi.

https://sdkman.io/

Zainstaluj sdkman:

yum install -y zip unzip

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

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

Zainstaluj Maven:

sdk install maven

12

Niedawno dowiedziałem się o poręcznym narzędziu do pakowania o nazwie fpm . Natknąwszy się na to pytanie, pomyślałem, że mógłbym spróbować. Okazuje się, że po przeczytaniu odpowiedzi @ OrwellHindenberg łatwo jest spakować maven do RPM z fpm.

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

utwórz katalog projektu i ułóż strukturę katalogów pakietu

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

utwórz plik, w którym zainstalujemy /etc/profile.d/maven.sh, zapiszemy go w nowo utworzonym katalogu etc / profile.d jako maven.sh , z następującą zawartością

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

pobierz i rozpakuj najnowszą mavena w katalogu 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

na koniec zbuduj RPM

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

Teraz możesz zainstalować mavena przez rpm

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

i altówkę

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

niezbyt mniam, ale bliżej domu;)


Poszedłem z maven 3 do moich celów, ale równie łatwo jest spakować maven v2.
quickshiftin

Jeszcze jedna uwaga, będziesz musiał się wylogować / zalogować do skrypt /etc/profile.d/maven.sh mógł wykonać.
quickshiftin

1
Niezłe rozwiązanie, dzięki. BTW. Możesz także wpisaćexec bash (zakładając, że używasz basha).
Adam Siemion

9

Dla tych z Was, którzy szukają sposobu na zainstalowanie Mavena w 2018 roku:

$ sudo yum install maven

jest obecnie obsługiwany.


Działa dla mnie na Amazon Linux 2 (marzec 2019).
ccleve

4

Czy musisz zainstalować go za pomocą yum? Jest wiele innych możliwości:

  • Pobierz plik binarny z http://maven.apache.org/download.html i umieść go w swoim / usr / bn
  • Jeśli używasz Eclipse, możesz pobrać wtyczkę m2eclipse (http://m2eclipse.sonatype.org/), która zawiera wersję maven

1
Tak, zrobię to za około 15 minut, jeśli nie mogę znaleźć lepszego sposobu. Powodem, dla którego się waham, jest to, że Yum jest w rzeczywistości dobrym produktem, jeśli wie o wszystkim, co jest zainstalowane . W przeciwnym razie nie tak bardzo. Jestem pewien, że Maven to również dobry produkt, do robienia czegoś, czego nie muszę robić, utrzymując aktualne wersje bibliotek. System, w którym staram się używać go jako systemu budowania, jest zadaniem, w którym jest trochę lepszy niż skrypt powłoki i około jednej trzeciej tak dobrej jak Make, około 1989. Grrr.
Malvolio,

Cóż, jeśli utrzymywali tylko maven2 do wersji 2.0.7 w repozytorium jPackage, to możesz sobie poradzić z tą wersją, zainstalować ręcznie lub możesz stworzyć RPM ze źródeł na maven.apache.org i zainstalować to za pomocą yum . Ale już powiedziałeś, że nie chcesz spędzać z tym więcej czasu niż to konieczne, więc myślę, że opcja 1 byłaby najbardziej odpowiednia dla Twojej sytuacji
klaustopher

2
Pytanie dotyczy instalacji za pomocą yum.
robermorales

7
Obie te odpowiedzi nie odpowiadają na pytanie. Prawdziwa odpowiedź powinna dotyczyć jakiegoś dostępnego repozytorium yum, które zawiera pakiety maven3 (najnowsze stabilne?).
James Mills,

1
/usr/bnczy /usr/bin? A co z innymi katalogami, takimi jak /usr/local?
Abdull

3

Maven jest pakowany dla Fedory od połowy 2014 roku, więc jest teraz całkiem łatwy. Po prostu wpisz

sudo dnf install maven

Teraz przetestuj instalację, po prostu uruchom maven w losowym katalogu

mvn

I to się nie uda, bo nie określiłeś celu np 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
głupie haczyka jest Maven nie jest mavenwykonywalny, ale raczej mvn...
JackLeo

3

Oto, przez co przeszedłem w Amazon / AWS EMR v5. (Na podstawie poprzednich odpowiedzi), aby mieć Maven i 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

wybierz Java8

sudo alternatives --config javac

wybierz Java8

Teraz, jeśli biegniesz:

mvn -version

Powinieneś wziąć:

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
Cóż, dzięki za opublikowanie tego. Firma, która tego potrzebowała, zbankrutowała w 2012 roku, ale ja mam drinki z założycielami mniej więcej dwa razy w roku, więc wspomnę o Twojej pomocy. :-)
Malvolio

@Malvolio - lol and sorry (nadal możesz głosować za moim rozwiązaniem :))
jgp

1
Upadek firmy był wynikiem - i mówię to z wielką dumą, jako jedyny pracownik techniczny - wyłącznie z problemów marketingowych, a infrastruktura techniczna działała tak, jak można było się spodziewać.
Malvolio

1

Nie tylko mvndla każdego zastosowania, możesz się tego dowiedzieć, dającyum whatprovides {command_name}

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.