Bagaimana cara menginstal Maven dengan Yum?

135

Saya berusaha untuk tidak belajar banyak tentang yum atau maven. Saya telah mewarisi kode ini dan saya tidak ingin menghabiskan lebih banyak waktu daripada yang harus saya lakukan di lingkungan ini.

Saya punya yum. Instalasi saya "memiliki" ("terlampir juga"? "Tahu tentang"?) Dua repo: satu Amazon dan JPackage, yang saya pahami adalah sesuatu yang standar. (Sebenarnya, masing-masing repositori terdiri dari dua sub-repositori, tapi saya tidak berpikir itu yang menyebabkan masalah.)

Ketika saya meminta yum untuk menginstal maven2, ia menolak, mengatakan bahwa ia belum pernah mendengar tentang maven2.

Ketika saya meminta yum untuk menginstal maven2 mengabaikan Amazon , ia melakukannya, tetapi menginstal Maven 2.0.9, yang cukup lama. Sebenarnya pom.xml yang saya miliki memerlukan versi yang lebih tinggi.

Ketika saya Google untuk repositori Maven saya mendapatkan repositori yang dapat digunakan Maven untuk membangun hal-hal lain, bukan repositori yang Yum dapat gunakan untuk menginstal Maven. (Saya memang menemukan repositori yang berisi hal yang membuat Maven membangun Yum. Saya pikir Google mengejek saya saat ini.)

Jadi, yang saya butuhkan adalah file repo yang menunjuk ke repo yang berisi apa pun yang saya butuhkan untuk menginstal Maven 2.2.1.

Jika bukan karena semua perangkat hemat tenaga ini, saya mungkin bisa menyelesaikan beberapa pekerjaan.

Malvolio
sumber

Jawaban:

215

Icarus menjawab pertanyaan yang sangat mirip untukku. Ini tidak menggunakan "yum", tetapi masih harus bekerja untuk tujuan Anda. Mencoba,

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

pada dasarnya hanya pergi ke situs pakar . Temukan versi pakar yang Anda inginkan. Jenis file dan gunakan mirror untuk pernyataan wget di atas.

Setelah itu prosesnya mudah

  1. Jalankan perintah wget dari direktori yang ingin Anda ekstrak juga.
  2. jalankan perintah berikut untuk mengekstrak tar,

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. pindahkan maven ke / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. Selanjutnya tambahkan variabel env ke file ~ / .bashrc Anda

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
    
  5. Jalankan perintah ini

    sumber ~ / .bashrc

6 :. Verifikasi semuanya berfungsi dengan perintah berikut

    mvn -version
OrwellHindenberg
sumber
1
Terima kasih! pakar terbaik yang bisa saya dapatkan jpackageadalah maven.noarchtbdyang v1.1atau maven2yang v2.0.4... instruksi alternatif Anda banyak membantu untuk membuat saya menjadi pakar :)
pulkitsinghal
53
Instruksi ini berfungsi. Tetapi mengapa oh mengapa mereka tidak bisa memasukkan maven ke dalam repositori paket dengan semua paket lain sehingga orang tidak perlu melompati simpanan ini?
tanggal
3
@aroth mungkin karena ada orang yang menganggap Maven laknat
Joseph Lust
1
ganti saja jalur yang Anda lewati wgetdengan yang Anda dapatkan dari maven.apache.org/download.cgi
Ali
@ Ali Apakah Apache menyediakan cara untuk menggunakan nama domain mereka daripada nama domain mirror?
blong
115

Anda dapat menambahkan pakar ke perpustakaan yum seperti ini:

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

Sekarang Anda dapat menginstal pakar seperti ini:

yum install apache-maven

Setelah selesai, maven 3 akan diinstal dan mvn -versionakan menunjukkan kepada Anda versi mana yang Anda punya - Saya punya 3.2.1.

Ini bekerja dengan baik untuk saya di CentOS 6 dengan satu pengecualian. Ini menginstal OpenJDK 1.6 dan menjadikannya versi Java default, meskipun saya sudah menginstal JDK 8 secara manual (mungkin karena saya menginstalnya secara manual). Untuk mengubahnya kembali gunakan alternatives:

alternatives --config java
alternatives --config javac

dan pilih versi yang benar.

Phil
sumber
8
Seperti dijelaskan di forum ini , epel-$releaseverdalam .repofile yang diunduh perlu diganti dengan epel-6, jika yum install apache-maventidak akan gagal dengan kesalahan 404.
ATAU Mapper
Bahkan mengganti pelepas epel- $ dengan epel-6 gagal dengan 404: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/… : [Errno 14] PYCURL ERROR 22 - "URL yang diminta mengembalikan kesalahan : 404 Tidak Ditemukan "
lrkwz
1
apakah mungkin untuk menginstal versi tertentu (mis. 3.0.1) dengan pendekatan ini?
bsferreira
Saya bisa membuatnya berfungsi dengan baik dengan entri ini di /etc/yum.repos.d/epel-apache-maven.repofile repo:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
i_grok
alternatives --config java
vikingsteve
61

Untuk referensi di masa depan dan demi kesederhanaan bagi orang-orang malas di luar sana yang tidak ingin banyak penjelasan tetapi jalankan saja dan buat itu bekerja dengan cepat:

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

Semoga Anda menikmati sesi salin & tempel ini.

Alejandro Pablo Tkachuk
sumber
Ini terdengar seperti itu akan bekerja dengan sempurna kecuali menerima kesalahan ini: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/… : [ Errno 14] HTTPS Error 404 - Tidak Ditemukan Tidak tahu apakah repo sementara turun atau secara permanen turun.
anon58192932
2
@ advocate Saya baru saja membuat instance server lain dan menjalankan perintah yang tepat seperti yang dijelaskan dan bekerja seperti pesona. maaf atas jawaban yang terlambat, tetapi sepertinya masih berfungsi. Bersulang.
Alejandro Pablo Tkachuk
mengapa Anda mengganti simbol dengan versi hardcode?
Kate
1
Saya kira @ Kate berarti $releasever.
ᴠɪɴᴄᴇɴᴛ
3
Ini bekerja untuk saya tanpa langkah 2, tetapi ingin isntall jdk 1.7 meskipun saya sudah memiliki 1,8 diinstal
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

untuk pengembang JVM, ini adalah manajer SDK untuk semua alat yang Anda butuhkan.

https://sdkman.io/

Pasang sdkman:

yum install -y zip unzip

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

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

Instal Maven:

sdk install maven
宏杰 李
sumber
12

Saya baru saja belajar alat pengemasan praktis bernama fpm baru-baru ini. Tersandung pada pertanyaan ini saya pikir saya akan mencobanya. Ternyata, setelah membaca jawaban @ OrwellHindenberg, mudah untuk mengemas maven menjadi RPM dengan fpm.

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

buat direktori proyek dan tata letak struktur direktori paket

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

buat file yang akan kita instal /etc/profile.d/maven.sh, kita akan menyimpan ini di bawah direktori etc / profile.d yang baru dibuat sebagai maven.sh , dengan konten berikut

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

unduh dan buka paket pakar terbaru di direktori 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

akhirnya, bangun RPM

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

Sekarang Anda dapat menginstal maven melalui rpm

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

dan biola

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

tidak cukup yum tetapi lebih dekat ke rumah;)

quickshiftin
sumber
Saya menggunakan maven 3 untuk keperluan saya, tetapi juga mudah untuk mengemas maven v2.
quickshiftin
Satu catatan lain, Anda harus keluar / masuk untuk mengambil script /etc/profile.d/maven.sh .
quickshiftin
1
Solusi yang bagus, terima kasih. BTW. Anda juga dapat mengetik exec bash(dengan asumsi Anda menggunakan bash).
Adam Siemion
9

Bagi Anda yang mencari cara untuk menginstal Maven pada tahun 2018:

$ sudo yum install maven

didukung hari ini.

Johan Vergeer
sumber
Bekerja untuk saya di Amazon Linux 2 (Maret 2019).
ccleve
4

Apakah Anda perlu menginstalnya dengan yum? Ada banyak kemungkinan lain:

  • Ambil binernya dari http://maven.apache.org/download.html dan masukkan ke / usr / bn Anda
  • Jika Anda menggunakan Eclipse, Anda bisa mendapatkan plugin m2eclipse (http://m2eclipse.sonatype.org/) yang menggabungkan versi maven
klaustopher
sumber
1
Ya, saya akan melakukannya sekitar 15 menit ke depan jika saya tidak bisa menemukan cara yang lebih baik. Alasan saya ragu-ragu adalah bahwa Yum sebenarnya adalah produk yang bagus jika ia tahu tentang semua yang diinstal . Kalau tidak, tidak banyak. Saya yakin Maven juga produk yang bagus, dalam melakukan sesuatu yang tidak perlu saya lakukan, memperbarui versi perpustakaan. Sistem yang cenderung saya gunakan sebagai sistem bangun, tugas yang sedikit lebih baik daripada skrip shell dan sekitar sepertiga sebaik Make, sekitar tahun 1989. Grrr.
Malvolio
Nah, jika mereka hanya mempertahankan maven2 hingga versi 2.0.7 di repositori jPackage, maka Anda bisa berurusan dengan versi itu, instal dengan tangan atau Anda bisa membuat RPM dari sumber di maven.apache.org dan instal ini dengan yum . Tapi Anda sudah menyatakan bahwa Anda tidak ingin menghabiskan lebih banyak waktu daripada yang diperlukan dengan ini, jadi saya pikir opsi 1 akan paling sesuai dengan situasi Anda
klaustopher
2
Pertanyaannya adalah tentang menginstalnya dengan yum.
robermorales
7
Kedua jawaban ini tidak menjawab pertanyaan. Jawaban sebenarnya harus tentang beberapa yum repo tersedia yang berisi paket maven3 (stable terbaru?).
James Mills
1
/usr/bnatau /usr/bin? Bagaimana dengan direktori lain seperti /usr/local?
Abdull
3

Maven dikemas untuk Fedora sejak pertengahan 2014, jadi sekarang cukup mudah. Ketik saja

sudo dnf install maven

Sekarang uji instalasi, jalankan maven di direktori acak

mvn

Dan itu akan gagal, karena Anda tidak menentukan sasaran, mis 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

[...]
pengguna7610
sumber
2
Gotcha yang konyol adalah bahwa pakar mavenmvn
sihir
3

Inilah yang saya alami di Amazon / AWS EMR v5. (Diadaptasi dari jawaban sebelumnya), untuk memiliki Maven dan 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

pilih Java8

sudo alternatives --config javac

pilih Java8

Sekarang, jika Anda menjalankan:

mvn -version

Anda harus mendapatkan:

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
sumber
1
Yah, terima kasih sudah memposting itu. Perusahaan yang membutuhkannya gulung tikar pada tahun 2012, tapi saya minum dengan para pendiri sekitar dua kali setahun, jadi saya akan menyebutkan bantuan Anda. :-)
Malvolio
@Malvolio - lol dan maaf (Anda masih bisa meningkatkan solusi saya :))
jgp
1
Kejatuhan perusahaan adalah akibatnya - dan saya katakan ini dengan bangga, sebagai satu-satunya karyawan teknis mereka - semata-mata karena masalah pemasaran, dan infrastruktur teknis berfungsi dengan baik seperti yang diharapkan.
Malvolio
1

Bukan hanya mvn, untuk keperluan apa pun, Anda bisa mencari tahu sendiri dengan memberiyum whatprovides {command_name}

Kannan Ramamoorthy
sumber