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.