ฉันจะติดตั้ง Maven กับ Yum ได้อย่างไร


138

ฉันพยายามที่จะไม่เรียนรู้เกี่ยวกับยำหรือมาเวนมากนัก ฉันได้รับรหัสนี้มาและฉันไม่ต้องการใช้เวลามากกว่าที่ฉันต้องอยู่ในสภาพแวดล้อมนี้

ฉันมียำ การติดตั้งของฉัน "มี" ("แนบด้วย"? "รู้เรื่อง"?) สอง repos: Amazon one และ JPackage ซึ่งฉันเข้าใจว่าเป็นมาตรฐาน (จริงๆแล้วแต่ละที่เก็บเหล่านั้นประกอบด้วยที่เก็บย่อยสองที่ แต่ฉันไม่คิดว่านั่นเป็นสาเหตุของปัญหา

เมื่อฉันขอให้ yum ติดตั้ง maven2 มันปฏิเสธบอกว่าไม่เคยได้ยินเกี่ยวกับ maven2

เมื่อฉันขอให้ yum ติดตั้ง maven2 โดยไม่สนใจ Amazonมันก็ทำเช่นนั้น แต่มันติดตั้ง Maven 2.0.9 ซึ่งค่อนข้างเก่า pom.xml จริงฉันต้องการเวอร์ชันที่สูงกว่า

เมื่อฉันเป็น Google สำหรับที่เก็บ Maven ฉันได้รับที่เก็บที่ Maven สามารถใช้เพื่อสร้างสิ่งอื่นไม่ใช่ที่เก็บที่ Yum สามารถใช้เพื่อติดตั้ง Maven (ฉันพบที่เก็บข้อมูลที่ให้ Maven สร้าง Yum ฉันคิดว่า Google กำลังล้อเลียนฉันในตอนนี้)

ดังนั้นสิ่งที่ฉันต้องการคือไฟล์ repo ที่ชี้ไปที่ repo ที่มีสิ่งที่ฉันต้องการเพื่อติดตั้ง Maven 2.2.1

หากไม่ใช่อุปกรณ์ที่ช่วยประหยัดแรงงานทั้งหมดนี้ฉันอาจจะทำงานบางอย่างให้เสร็จ

คำตอบ:


218

Icarus ตอบคำถามที่คล้ายกันมากสำหรับฉัน มันไม่ได้ใช้ "ยำ" แต่ควรใช้งานได้ตามวัตถุประสงค์ของคุณ ลอง,

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

โดยทั่วไปเพียงแค่ไปที่เว็บไซต์ Maven ค้นหาเวอร์ชันของ maven ที่คุณต้องการ ประเภทไฟล์และใช้มิเรอร์สำหรับคำสั่ง wget ด้านบน

หลังจากนั้นขั้นตอนก็ง่าย

  1. เรียกใช้คำสั่ง wget จาก dir ที่คุณต้องการแยก maven ด้วย
  2. เรียกใช้สิ่งต่อไปนี้เพื่อดึงน้ำมันดิน

    tar xvf apache-maven-3.0.5-bin.tar.gz
    
  3. ย้าย maven ไปที่ / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
    
  4. จากนั้นเพิ่มตัวแปร env ลงในไฟล์ ~ / .bashrc ของคุณ

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
    
  5. ดำเนินการคำสั่งเหล่านี้

    ที่มา ~ / .bashrc

6:. ตรวจสอบว่าทุกอย่างทำงานด้วยคำสั่งต่อไปนี้

    mvn -version

1
ขอบคุณ! maven ที่ดีที่สุดที่ฉันจะได้รับjpackageคือmaven.noarchtbdสิ่งที่เป็นv1.1หรือmaven2เป็นv2.0.4... คำแนะนำทางเลือกของคุณช่วยได้มากในการพาฉันไปที่ maven v3 :)
pulkitsinghal

53
คำแนะนำเหล่านี้ใช้ได้ผล แต่ทำไมโอ้ทำไมพวกเขาไม่สามารถใส่ maven ลงในที่เก็บแพ็คเกจพร้อมกับแพ็คเกจอื่น ๆ ทั้งหมดเพื่อไม่ให้ผู้คนต้องข้ามผ่านห่วงเหล่านี้?
aroth

3
@aroth อาจเป็นเพราะมีผู้ที่พิจารณา Maven anathema
Joseph Lust

1
เพียงแค่แทนที่เส้นทางที่คุณผ่านไปwgetด้วยเส้นทางที่คุณได้รับจากmaven.apache.org/download.cgi
Ali

@Ali Apache มีวิธีใช้ชื่อโดเมนแทนชื่อโดเมนมิเรอร์หรือไม่?
blong

116

คุณสามารถเพิ่ม maven ในห้องสมุด yum ได้ดังนี้:

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

ตอนนี้คุณสามารถติดตั้ง maven ได้ดังนี้:

yum install apache-maven

เมื่อเสร็จแล้ว maven 3 จะถูกติดตั้งและ mvn -versionจะแสดงเวอร์ชันที่คุณมี - ฉันมี 3.2.1

สิ่งนี้ทำงานได้อย่างสมบูรณ์แบบสำหรับฉันใน CentOS 6 โดยมีข้อยกเว้นหนึ่งข้อ มันติดตั้ง OpenJDK 1.6 และทำให้เป็นเวอร์ชัน Java เริ่มต้นแม้ว่าฉันจะติดตั้ง JDK 8 ด้วยตนเองแล้วก็ตาม (อาจเป็นเพราะฉันติดตั้งด้วยตนเอง) วิธีเปลี่ยนกลับใช้alternatives:

alternatives --config java
alternatives --config javac

และเลือกเวอร์ชันที่ถูกต้อง


8
ตามที่อธิบายไว้ในฟอรั่มนี้ , epel-$releaseverในที่ดาวน์โหลด.repoไฟล์ความต้องการที่จะถูกแทนที่ด้วยepel-6หรืออื่น ๆ ที่yum install apache-mavenจะล้มเหลวด้วยข้อผิดพลาด 404
หรือ Mapper

แม้แต่การแทนที่ epel- $ releasever ด้วย epel-6 ก็ล้มเหลวด้วย 404: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/… : [Errno 14] PYCURL ERROR 22 - "URL ที่ร้องขอส่งกลับข้อผิดพลาด : 404 Not Found "
lrkwz

1
เป็นไปได้ที่จะติดตั้งเวอร์ชันเฉพาะ (เช่น 3.0.1) ด้วยวิธีนี้หรือไม่?
bsferreira

ฉันสามารถทำให้มันทำงานได้ดีกับรายการนี้ใน/etc/yum.repos.d/epel-apache-maven.repoไฟล์ repo:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
i_grok

alternatives --config java
vikingsteve

62

สำหรับการอ้างอิงในอนาคตและเพื่อความเรียบง่ายสำหรับคนขี้เกียจที่ไม่ต้องการคำอธิบายมากนัก แต่แค่เรียกใช้สิ่งต่างๆและทำให้มันใช้งานได้โดยเร็ว:

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

หวังว่าคุณจะสนุกกับการคัดลอกและวางเซสชันนี้


ดูเหมือนว่ามันจะทำงานได้อย่างสมบูรณ์ยกเว้นได้รับข้อผิดพลาดนี้: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/… : [Errno 14] ข้อผิดพลาด HTTPS 404 - ไม่พบไม่ทราบว่า repo หยุดให้บริการชั่วคราวหรือหยุดลงอย่างถาวร
anon58192932

2
@advocate ฉันเพิ่งสร้างอินสแตนซ์เซิร์ฟเวอร์อื่นและเรียกใช้คำสั่งที่ถูกต้องตามที่อธิบายไว้และทำงานได้อย่างมีเสน่ห์ ขออภัยสำหรับการตอบกลับล่าช้า แต่ดูเหมือนว่ายังใช้งานได้ ไชโย
Alejandro Pablo Tkachuk

ทำไมคุณถึงแทนที่สัญลักษณ์ด้วยเวอร์ชันฮาร์ดโค้ด
Kate

1
$releaseverผมคิดว่าวิธีการ @Kate
ᴠɪɴᴄᴇɴᴛ

3
สิ่งนี้ใช้ได้ผลสำหรับฉันโดยไม่มีขั้นตอนที่ 2 แต่ต้องการ isntall jdk 1.7 แม้ว่าฉันจะติดตั้ง 1.8 แล้วก็ตาม
อดัม

20
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

สำหรับนักพัฒนา JVM นี่คือตัวจัดการ SDK สำหรับเครื่องมือทั้งหมดที่คุณต้องการ

https://sdkman.io/

ติดตั้ง sdkman:

yum install -y zip unzip

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

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

ติดตั้ง Maven:

sdk install maven

12

ฉันเพิ่งเรียนรู้เกี่ยวกับเครื่องมือบรรจุภัณฑ์ที่มีประโยชน์ที่เรียกว่าfpmเมื่อเร็ว ๆ นี้ สะดุดกับคำถามนี้ฉันคิดว่าฉันอาจจะลองดู ปรากฎว่าหลังจากอ่านคำตอบของ @ OrwellHindenberg มันเป็นเรื่องง่ายที่จะรวม maven เป็น RPM ด้วย fpm

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

สร้างไดเร็กทอรีโปรเจ็กต์และจัดวางโครงสร้างไดเร็กทอรีของแพ็กเกจ

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

สร้างไฟล์ที่เราจะติดตั้ง/etc/profile.d/maven.shเราจะเก็บไว้ในไดเร็กทอรีetc / profile.d ที่สร้างขึ้นใหม่เป็นmaven.shโดยมีเนื้อหาดังต่อไปนี้

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

ดาวน์โหลดและแกะmaven ล่าสุดในไดเรกทอรี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

สุดท้ายสร้าง RPM

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

ตอนนี้คุณสามารถติดตั้ง maven ผ่านรอบต่อนาที

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

และวิโอลา

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

ไม่ค่อยยำแต่ใกล้บ้านมากกว่า;)


ฉันไปกับ maven 3 เพื่อจุดประสงค์ของฉัน แต่ก็ง่ายพอ ๆ กับแพ็คเกจ maven v2
quickshiftin

หมายเหตุอื่นคุณจะต้องออกจากระบบ / เข้าสู่ระบบสำหรับสคริปต์/etc/profile.d/maven.sh
quickshiftin

1
ทางออกที่ดีขอบคุณ BTW. คุณยังสามารถพิมพ์exec bash(สมมติว่าคุณใช้ bash)
Adam Siemion

10

สำหรับผู้ที่กำลังมองหาวิธีติดตั้ง Maven ในปี 2018:

$ sudo yum install maven

ได้รับการสนับสนุนในวันนี้


ใช้ได้กับฉันบน Amazon Linux 2 (มีนาคม 2019)
ccleve

4

ต้องติดยำมั้ยคะ? มีความเป็นไปได้อื่น ๆ อีกมากมาย:

  • หยิบไบนารีจากhttp://maven.apache.org/download.htmlและใส่ไว้ใน / usr / bn ของคุณ
  • หากคุณใช้ Eclipse คุณจะได้รับปลั๊กอิน m2eclipse (http://m2eclipse.sonatype.org/) ซึ่งรวมเวอร์ชันของ maven

1
ใช่ฉันจะทำอย่างนั้นในอีกประมาณ 15 นาทีข้างหน้าถ้าฉันไม่สามารถหาวิธีที่ดีกว่านี้ได้ เหตุผลที่ฉันลังเลก็คือยำเป็นจริงเป็นผลิตภัณฑ์ที่ดีถ้ามันรู้ทุกอย่างเกี่ยวกับที่ติดตั้ง ไม่งั้นไม่มาก ฉันแน่ใจว่า Maven เป็นผลิตภัณฑ์ที่ดีเช่นกันในการทำบางสิ่งบางอย่างที่ฉันไม่จำเป็นต้องทำทำให้เวอร์ชันของห้องสมุดทันสมัย ระบบที่ฉันมีแนวโน้มที่จะใช้มันเป็นระบบบิลด์ซึ่งเป็นงานที่ดีกว่าเชลล์สคริปต์เล็กน้อยและประมาณหนึ่งในสามดีเท่ากับ Make ประมาณปี 1989 Grrr
Malvolio

ถ้าพวกเขาดูแลเฉพาะ maven2 ถึงเวอร์ชัน 2.0.7 ในที่เก็บ jPackage คุณสามารถจัดการกับเวอร์ชันนั้นติดตั้งด้วยมือหรือคุณสามารถสร้าง RPM จากแหล่งที่มาที่ maven.apache.org และติดตั้งด้วย yum . แต่คุณได้ระบุไว้แล้วว่าคุณไม่ต้องการใช้เวลามากกว่าที่จำเป็นสำหรับสิ่งนี้ดังนั้นฉันคิดว่าตัวเลือกที่ 1 จะเหมาะกับสถานการณ์ของคุณมากที่สุด
klaustopher

2
คำถามเกี่ยวกับการติดตั้งกับยำ
robermorales

7
ทั้งสองคำตอบนี้ไม่ตอบคำถาม คำตอบที่แท้จริงควรเกี่ยวกับ yum repo ที่มีแพ็คเกจ maven3 (เสถียรล่าสุด?)
James Mills

1
/usr/bnหรือ/usr/bin? ไดเรกทอรีอื่น ๆ เช่น/usr/local?
อับดุล

3

Maven บรรจุสำหรับ Fedora ตั้งแต่กลางปี ​​2014 ดังนั้นตอนนี้จึงค่อนข้างง่าย เพียงพิมพ์

sudo dnf install maven

ตอนนี้ทดสอบการติดตั้งเพียงเรียกใช้ maven ในไดเรกทอรีแบบสุ่ม

mvn

และจะล้มเหลวเนื่องจากคุณไม่ได้ระบุเป้าหมายเช่น 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
gotcha โง่ ๆ คือ maven ไม่สามารถmavenใช้งานได้ แต่เป็นmvn...
JackLeo

3

นี่คือสิ่งที่ฉันพบใน Amazon / AWS EMR v5 (ดัดแปลงมาจากคำตอบก่อนหน้านี้) จะมีผู้เชี่ยวชาญและ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

เลือก Java8

sudo alternatives --config javac

เลือก Java8

ตอนนี้ถ้าคุณเรียกใช้:

mvn -version

คุณควรได้รับ:

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
ขอบคุณที่โพสต์ บริษัท ที่ต้องการมันเลิกกิจการไปในปี 2555 แต่ฉันดื่มกับผู้ก่อตั้งปีละสองครั้งดังนั้นฉันจะพูดถึงความช่วยเหลือของคุณ :-)
Malvolio

@Malvolio - ฮ่า ๆ และขอโทษ (คุณยังสามารถ
โหวต

1
การล่มสลายของ บริษัท เป็นผล - และฉันพูดแบบนี้ด้วยความภาคภูมิใจในฐานะพนักงานด้านเทคนิคเพียงคนเดียว - ปัญหาด้านการตลาด แต่เพียงผู้เดียวและโครงสร้างพื้นฐานทางเทคนิคทำงานได้ดีอย่างที่คาดหวัง
Malvolio

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.