วิธีติดตั้ง git เวอร์ชันล่าสุดบน CentOS 7.x / 6.x


232

ฉันใช้ตามปกติ:

yum install git

ไม่ได้ติดตั้ง git เวอร์ชันล่าสุดบน CentOS 6 ของฉันฉันจะอัปเดตเป็น git รุ่นล่าสุดสำหรับ CentOS 6 ได้อย่างไร โซลูชันนี้สามารถใช้ได้กับ CentOS รุ่นใหม่เช่น CentOS 7


11
ใช่แล้ว. อยู่ภายในขอบเขตที่จะถามคำถามและตอบคำถามเมื่อมันเป็นข้อมูลที่มีประโยชน์ที่ยังไม่ได้รับการแก้ไข
ชายดีบุก

คำตอบ:


337

คุณสามารถใช้ที่เก็บ CentOS ของ WANDisco เพื่อติดตั้ง Git 2.x: สำหรับCentOS 6 , สำหรับCentOS 7

  1. ติดตั้งแพ็คเกจ repo ของ WANDisco:

    yum install http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm
    - or -
    yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
    - or -
    yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
    
  2. ติดตั้ง Git 2.x เวอร์ชันล่าสุด:

    yum install git
    
  3. ตรวจสอบเวอร์ชันของ Git ที่ติดตั้ง:

    git --version
    

ขณะที่ 2 มีนาคม 2020 รุ่นล่าสุดที่สามารถใช้ได้จาก WANdisco เป็น2.22.0


9
ต้องใช้คำตอบนี้ คำตอบที่นำไปใช้กับแล้ว--disablerepo=base,updatesไม่ได้ผลสำหรับฉัน
เคอร์บี้

1
และ FWIW ณ วันที่ 2016-11-08 Git รุ่น WANDisco ขึ้นอยู่กับรุ่น 2.10 ซึ่งสอดคล้องกับ Git SCM ที่เป็นทางการออกมา
JakeGould

6
นี่คือสิ่งที่เหมาะกับฉัน ง่ายกว่าคำตอบที่ยอมรับ
Ben Watson

1
เมื่อวันที่กุมภาพันธ์ 2019, repo นี้ดูเหมือนว่าจะหยุดรับการปรับปรุง: git ล่าสุดคือ v2.20.1 แต่ repo มีเพียง v2.18.0
IanB

1
รหัส pgp ไม่สามารถใช้ได้ผ่าน https ทุกคนสามารถยืนยันได้หรือไม่
user3338098

134

เมื่อดูบล็อกที่นี่ฉันพบวิธีแก้ปัญหาในหนึ่งในความคิดเห็น ตรวจสอบให้แน่ใจว่าคุณได้rpmforgeเพิ่มที่เก็บใน CentOS yum ของคุณและเพียงแค่เรียกใช้คำสั่งที่ไหล:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git

หากคุณติดตั้งคอมไพล์แล้วให้ใช้:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras update git

คำถามที่เกี่ยวข้อง:

  1. เผชิญกับปัญหาขณะอัพเกรด git เป็นเวอร์ชั่นล่าสุดบน CentOS 6.4

หมายเหตุการปรับปรุง:

ขอบคุณ Anthony Hatzopoulos สำหรับgit v1.8xคุณจะต้องใช้ git18 ใน:

yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git18 

หมายเหตุการปรับปรุง 2:

ขอขอบคุณ @Axlrod สำหรับคำแนะนำด้านล่างและ @Hiphip สำหรับความคิดเห็น:

เปลี่ยนrpmforge.repoไฟล์ที่จะต้องrpmforge-extrasเปิดใช้งาน, yum update git. มิฉะนั้นจะบ่นเกี่ยวกับปัญหาการพึ่งพา

หมายเหตุการปรับปรุง 3:

การติดตั้ง git say เฉพาะรุ่น 2.x ฉันพบคำแนะนำที่ดีและง่ายต่อการติดตามเกี่ยวกับวิธีการดาวน์โหลดแหล่ง GIT และรวบรวมด้วยตัวคุณเอง (และติดตั้ง) หากคำตอบที่ยอมรับไม่ได้ให้รุ่นที่คุณต้องการให้ลองทำตามคำแนะนำต่อไปนี้:

http://tecadmin.net/install-git-2-0-on-centos-rhel-fedora/

(และวาง / ฟอร์แมตใหม่จากแหล่งข้อมูลด้านบนในกรณีที่ถูกลบในภายหลัง)

ขั้นตอนที่ 1:ติดตั้งแพคเกจที่จำเป็น

ก่อนอื่นเราต้องตรวจสอบให้แน่ใจว่าเราได้ติดตั้งแพ็คเกจที่จำเป็นในระบบของคุณ ใช้คำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจที่จำเป็นก่อนที่จะรวบรวมแหล่ง Git

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install  gcc perl-ExtUtils-MakeMaker

ขั้นตอนที่ 2:ถอนการติดตั้ง Git RPM เก่า

ตอนนี้ลบการติดตั้ง Git ผ่านไฟล์ RPM หรือผู้จัดการแพ็คเกจ Yum ก่อน หากเวอร์ชันเก่าของคุณถูกคอมไพล์ผ่านซอร์สให้ข้ามขั้นตอนนี้

# yum remove git

ขั้นตอนที่ 3:ดาวน์โหลดและคอมไพล์แหล่ง Git

ดาวน์โหลดซอร์สโค้ด git จาก kernel git หรือใช้คำสั่งต่อไปนี้เพื่อดาวน์โหลด Git 2.0.4

# cd /usr/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.0.4.tar.gz
# tar xzf git-2.0.4.tar.gz

หลังจากดาวน์โหลดและแตกซอร์สโค้ด Git แล้วให้ใช้คำสั่งต่อไปนี้เพื่อรวบรวมซอร์สโค้ด

# cd git-2.0.4
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
#
# echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
#  or
# echo 'export PATH=$PATH:/usr/local/git/bin' > /etc/profile.d/git.sh
#
# source /etc/bashrc

คำแนะนำ 1: อัพเดทวิธีการเพิ่มไดเรกทอรี git bin ที่คอมไพล์แล้วไปยัง bashrc เนื่องจากecho "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrcใช้ "" แทน "" จะเป็นการขยายค่าของเซสชันปัจจุบันสำหรับ $ PATH แทนที่จะทำให้มันเป็นตัวแปรและอาจส่งผลเสียต่อระบบทั้งหมด อย่างน้อยที่สุดก็ควรใช้ '' แทน "" และควรเป็นสคริปต์แยกต่างหาก/etc/profile.d/

คำแนะนำ 2 (@DJB): /usr/local/git/binก่อนหน้า$PATHนี้เนื่องจาก git รุ่นเก่ากว่านั้นอยู่ที่ $ PATH:export PATH=/usr/local/git/bin:$PATH

ขั้นตอน 4.ตรวจสอบเวอร์ชัน Git

หนึ่งในขั้นตอนข้างต้นเสร็จสมบูรณ์คุณได้ติดตั้ง Git ในระบบของคุณเรียบร้อยแล้ว ให้ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบรุ่น git

# git --version

git version 2.0.4

ฉันต้องการเพิ่มว่า "คู่มือเริ่มต้นใช้งาน" ที่เว็บไซต์ GIT ยังมีคำแนะนำในการดาวน์โหลดและรวบรวมด้วยตนเอง:

http://git-scm.com/book/en/v2/Getting-Started-Installing-Git


3
แค่นี้ฉันก็แค่ v1.7x คอมไพล์ สำหรับ git v1.8x คุณจะต้องใช้git18ดังในyum --disablerepo=base,updates --enablerepo=rpmforge-extras install git18
Anthony Hatzopoulos

2
ไม่ทำงานสำหรับฉันฉันต้องเปลี่ยนไฟล์ rpmforge.repo เพื่อให้เปิดใช้งาน rpmforge-extras แล้วเปิดใช้ yum update git มิฉะนั้นจะบ่นเกี่ยวกับปัญหาการพึ่งพา (เนื่องจากต้องการแพ็กเกจจากฐาน)
Alex R

5
เกิดข้อผิดพลาดในการรับข้อมูลที่เก็บสำหรับ rpmforge-extras ไม่พบที่เก็บ - 1st cmd บน cent6.6
Nithin

2
การวิ่งyum --disablerepo=base,updates --enablerepo=rpmforge-extras list | grep gitแสดงเฉพาะ Git 1.7.12 สำหรับฉันบน Centos 6.6 พวกเขาอาจลบ "git18" หรือไม่
โจเซฟ Leedy

26
wiki.centos.org/AdditionalResources/Repositories/RPMForge RPMForge / RepoForge เป็นโครงการที่ตายแล้ว มันไม่ได้รับการบำรุงรักษา ไม่ได้ใช้.
Maoz Zadok

91

Rackspace ดูแลรักษาที่เก็บ iusซึ่งมีคอมไพล์ที่ทันสมัยพอสมควร แต่ต้องลบคอมไพล์สต็อกก่อน

คำแนะนำ CentOS 7:

$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
$ sudo yum erase git
$ sudo yum install epel-release 
$ sudo yum install git2u

คำแนะนำ CentOS 6:

$ sudo yum install https://centos6.iuscommunity.org/ius-release.rpm
$ sudo yum erase git
$ sudo yum install epel-release
$ sudo yum install git2u

ดี! คำสั่งคอมไพล์ rpmforge เหล่านั้นไม่ทำงาน -Can't locate ExtUtils/MakeMaker.pm in @INC
Nakilon

อันนี้ใช้งานได้กับฉันในวันนี้สำหรับ centos ล่าสุดคนอื่น ๆ ที่ล้าสมัย
user5389726598465

3
นี่เป็นวิธีเดียวในหน้านี้ที่ฉันได้ลอง (จนถึงวันที่ 7 กันยายน 2018) ที่รับรอง 2.x git สำหรับ CentOS และยังช่วยให้แน่ใจว่ามีการgit-credential-libsecretติดตั้งคอมไพล์ซึ่งเป็นวิธีที่ปลอดภัยที่สุดสำหรับระบบปฏิบัติการ สำหรับการจัดเก็บข้อมูลรับรอง git เช่น http [s] URL คำตอบที่ยอมรับในปัจจุบันในขณะที่เขียน ( stackoverflow.com/a/21820716/407170 ) ไม่ได้ทำสิ่งเหล่านี้และต้องการให้คุณรวบรวมตัวเอง
Les Hazlewood

หากคุณต้องการทำให้สิ่งนี้เป็นแบบอัตโนมัติโดยใช้ Ansible ฉันขอแนะนำให้ดูที่github.com/iuscommunity/automation-examples/blob/… (หรือgithub.com/iuscommunity/automation-examplesสำหรับโซลูชันอื่น ๆ )
jbmusso

84

ฉันพบแนวทางที่ดีและง่ายต่อการติดตามเกี่ยวกับวิธีการดาวน์โหลดแหล่ง GIT และรวบรวมด้วยตัวคุณเอง (และติดตั้ง) หากคำตอบที่ยอมรับไม่ได้ให้รุ่นที่คุณต้องการให้ลองทำตามคำแนะนำต่อไปนี้:

http://tecadmin.net/install-git-2-0-on-centos-rhel-fedora/

(และวาง / ฟอร์แมตใหม่จากแหล่งข้อมูลด้านบนในกรณีที่ถูกลบในภายหลัง)

ขั้นตอนที่ 1:ติดตั้งแพคเกจที่จำเป็น

ก่อนอื่นเราต้องตรวจสอบให้แน่ใจว่าเราได้ติดตั้งแพ็คเกจที่จำเป็นในระบบของคุณ ใช้คำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจที่จำเป็นก่อนที่จะรวบรวมแหล่ง Git

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install  gcc perl-ExtUtils-MakeMaker

ขั้นตอนที่ 2:ถอนการติดตั้ง Git RPM เก่า

ตอนนี้ลบการติดตั้ง Git ผ่านไฟล์ RPM หรือผู้จัดการแพ็คเกจ Yum ก่อน หากเวอร์ชันเก่าของคุณถูกคอมไพล์ผ่านซอร์สให้ข้ามขั้นตอนนี้

# yum remove git

ขั้นตอนที่ 3:ดาวน์โหลดและคอมไพล์แหล่ง Git

ดาวน์โหลดซอร์สโค้ด git จาก kernel git หรือใช้คำสั่งต่อไปนี้เพื่อดาวน์โหลด Git 2.5.3

# cd /usr/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.5.3.tar.gz
# tar xzf git-2.5.3.tar.gz

หลังจากดาวน์โหลดและแตกซอร์สโค้ด Git แล้วให้ใช้คำสั่งต่อไปนี้เพื่อรวบรวมซอร์สโค้ด

# cd git-2.5.3
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
# echo 'pathmunge /usr/local/git/bin/' > /etc/profile.d/git.sh 
# chmod +x /etc/profile.d/git.sh
# source /etc/bashrc

ขั้นตอน 4.ตรวจสอบเวอร์ชัน Git

เมื่อทำตามขั้นตอนข้างต้นเสร็จสิ้นคุณได้ติดตั้ง Git ในระบบของคุณเรียบร้อยแล้ว ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบเวอร์ชัน git

# git --version

git version 2.5.3

ฉันต้องการเพิ่มว่า "คู่มือเริ่มต้นใช้งาน" ที่เว็บไซต์ GIT ยังมีคำแนะนำในการดาวน์โหลดและรวบรวมด้วยตนเอง:

http://git-scm.com/book/en/v2/Getting-Started-Installing-Git


1
ขั้นตอนที่ 3 การตั้งค่าเส้นทางฉันพบสิ่งนี้ ( serverfault.com/a/303824 ) ทำงานได้ดีขึ้น: # echo 'pathmunge / usr / local / git / bin /'> /etc/profile.d/git.sh # chmod + x /etc/profile.d/git.sh
Kenneth Benjamin

3
ฉันลองใช้ Centos 6.5 และลอง GIT รุ่นล่าสุด (วันนี้) 2.5.3 และใช้งานได้อย่างมีเสน่ห์ wget https://www.kernel.org/pub/software/scm/git/git-2.5.3.tar.gz
Vielinko

1
ทำงานกับ 2.7.4 และ CentOS 6.5 - ขอบคุณ
Moe

1
สิ่งนี้ทำให้ฉันสามารถติดตั้ง 2.10.1 เพื่อรักษาความเท่าเทียมกันกับลูกค้าในระบบคอมไพล์ของฉัน ชุดคำแนะนำที่ยอดเยี่ยม
TinkerTenorSoftwareGuy

2
หากคุณยังพบว่าไม่ได้ติดตั้งคอมไพล์แสดงว่าอาจเกิดจากการแก้ปัญหา คุณสามารถใช้คำสั่งต่อไปนี้เพื่อเพิ่มคอมไพล์ในสภาพแวดล้อมของคุณ echo "export PATH=/usr/local/git/bin:$PATH" >> /etc/bashrcจากนั้น source /etc/bashrc
mshakeel

10

ความชอบส่วนตัวของฉันคือการสร้างแพ็คเกจ rpm สำหรับ CentOS เมื่อติดตั้งซอฟต์แวร์ที่ไม่ได้มาตรฐานและแทนที่ส่วนประกอบที่กระจาย สำหรับสิ่งนี้ฉันขอแนะนำให้คุณใช้จำลองเพื่อสร้างสภาพแวดล้อมแบบคลีนบิวด์

ขั้นตอนคือ:

  1. รับ RPMS ต้นทางหรือไฟล์ SPEC ที่เหมาะสมและ tarball ซอร์สดั้งเดิม ในกรณีนี้หนึ่งอาจพบแพคเกจที่มา RPM สำหรับ git2X สำหรับ CentOS-6 http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/ที่: แพคเกจสำหรับ CentOS รีลีสอื่นก็มีให้เช่นกัน

  2. ติดตั้งซอฟต์แวร์สนับสนุนที่จำเป็น:

    yum install epel-release  # you need this for mock
    yum install rpm-build
    yum install redhat-rpm-config
    yum install rpmdevtools
    yum install mock
    
  3. เพิ่มบัญชีผู้ใช้งานสร้างรอบต่อนาที ( อย่าสร้างเป็น root หรือในฐานะผู้ใช้จริง - ปัญหาด้านความปลอดภัยจะกลับมากัดคุณ )

    sudo adduser builder --home-dir /home/builder \
    --create-home --user-group --groups mock \
    --shell /bin/bash --comment "rpm package builder"
    
  4. ต่อไปเราต้องสร้างสภาพแวดล้อม

    su -l builder
    rpmdev-setuptree
    

    สิ่งนี้สร้างโครงสร้างไดเรกทอรีต่อไปนี้:

    ~
    └── rpmbuild
        ├── BUILD
        ├── RPMS
        ├── SOURCES
        ├── SPECS
        └── SRPMS
    
  5. เรากำลังใช้ SRPMS ที่เตรียมไว้ดังนั้น tarballs ของ SOURCES สามารถถูกละเว้นสำหรับกรณีนี้และเราสามารถไปยัง SRPMS ได้โดยตรง

    wget http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm \
    -O ~/rpmbuild/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm
    
  6. กำหนดค่าการจำลอง (เป็น root)

    cd /etc/mock
    rm default.cfg
    ln -s epel-6-x86_64.cfg default.cfg
    vim default.cfg
    

    ปิดการใช้งานbetarepos เปิดใช้งานbaseและupdaterepos

  7. เริ่มต้นโครงสร้างการสร้าง (/ var / lib / mock เป็นค่าเริ่มต้น)

    mock --init
    
  8. ถ้าเรากำลังสร้างจากแหล่งที่มาแล้วนี่คือที่เราจะจ้างไฟล์ SPEC mock --buildsrpm . . .และการใช้ แต่ในกรณีนี้เราไปที่ขั้นตอนการสร้างไบนารี่โดยตรง:

    mock --no-clean --rebuild ~/rpmbuild/SRPMS/git2u-2.5.3-1.ius.centos6.src.rpm
    

    สิ่งนี้จะแก้ไขการพึ่งพาบิลด์และดาวน์โหลดแพ็กเกจ (ประมาณ 95 แพ็กเกจหรือมากกว่านั้น) ในรูทการ build แบบใหม่ จากนั้นจะแยกแหล่งที่มาและสร้างไบนารีจาก SRPM ที่ให้บริการและทิ้งไว้ใน/var/lib/mock/epel-6-x86_64/result; หรือในตำแหน่งรูทบิวด์และสถาปัตยกรรมบิวด์ที่คุณกำหนดเอง มันจะใช้เวลานาน. แพ็คเกจนี้มีจำนวนมาก เอกสารเฉพาะ

  9. หากทุกอย่างไปได้ด้วยดีคุณควรจบด้วยแพ็คเกจ RPM ที่เหมาะสมสำหรับการติดตั้งแทนรุ่น distro นี่คือสิ่งที่ฉันลงเอยด้วย:

    ll /var/lib/mock/epel-6-x86_64/result
    total 34996
    -rw-rw-r--. 1 byrnejb mock   448455 Oct 30 10:09 build.log
    -rw-rw-r--. 1 byrnejb mock    52464 Oct 30 10:09 emacs-git2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    47228 Oct 30 10:09 emacs-git2u-el-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock  8474478 Oct 30 09:57 git2u-2.5.3-1.ius.el6.src.rpm
    -rw-rw-r--. 1 byrnejb mock  8877584 Oct 30 10:09 git2u-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock    27284 Oct 30 10:09 git2u-all-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    27800 Oct 30 10:09 git2u-bzr-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   112564 Oct 30 10:09 git2u-cvs-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   436176 Oct 30 10:09 git2u-daemon-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock 15858600 Oct 30 10:09 git2u-debuginfo-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock    60556 Oct 30 10:09 git2u-email-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   274888 Oct 30 10:09 git2u-gui-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    79176 Oct 30 10:09 git2u-p4-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   483132 Oct 30 10:09 git2u-svn-2.5.3-1.ius.el6.x86_64.rpm
    -rw-rw-r--. 1 byrnejb mock   173732 Oct 30 10:09 gitk2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   115692 Oct 30 10:09 gitweb2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    57196 Oct 30 10:09 perl-Git2u-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock    89900 Oct 30 10:09 perl-Git2u-SVN-2.5.3-1.ius.el6.noarch.rpm
    -rw-rw-r--. 1 byrnejb mock   101026 Oct 30 10:09 root.log
    -rw-rw-r--. 1 byrnejb mock      980 Oct 30 10:09 state.log
    
  10. ติดตั้งโดยใช้ yum หรือ rpm

    คุณจะต้องgit2u-2.5.3-1.ius.el6.x86_64.rpmมีอย่างน้อยและแพคเกจการสนับสนุนเพิ่มเติมตามที่ต้องการ ( perl-Git2u-2.5.3-1.ius.el6.noarch.rpm) หรือคุณต้องการ

    โครงสร้างนี้มีการพึ่งพาวงจร: git2u-2.5.3-1.ius.el6.x86_64.rpmขึ้นอยู่กับperl-Git2u-2.5.3-1.ius.el6.noarch.rpmและขึ้นอยู่กับperl-Git2u-2.5.3-1.ius.el6.noarch.rpm git2u-2.5.3-1.ius.el6.x86_64.rpmการติดตั้งแบบตรงrpmจะทำให้ล้มเหลว

    มีสองวิธีในการจัดการกับมัน:

    • ติดตั้งทั้งสองในเวลาเดียวกันผ่าน yum:

      yum localinstall \
        git2u-2.5.3-1.ius.el6.x86_64.rpm \
        perl-Git2u-2.5.3-1.ius.el6.noarch.rpm`
      
    • ตั้งค่า repo ยำท้องถิ่น

      ฉันกำลังรวมLocalFile.repoไฟล์ของฉันไว้ด้านล่างเนื่องจากมีคำแนะนำเกี่ยวกับวิธีการทำเช่นนี้และให้ไฟล์ repo ที่จำเป็นในเวลาเดียวกัน

cat /etc/yum.repos.d/LocalFile.repo
# LocalFile.repo
#
#  This repo is used with a local filesystem repo.
#
# To use this repo place the rpm package in /root/RPMS/yum.repo/Packages.
# Then run: createrepo --database --update /root/RPMS/yum.repo.
#
# To use:
#  yum --enablerepo=localfile [command]
#  
# or to use only ONLY this repo, do this:
#
#  yum --disablerepo=\* --enablerepo=localfile [command]

[localfile]
baseurl=file:///root/RPMS/yum.repo
name=CentOS-$releasever - Local Filesystem repo

# Before persistently enabling this repo see the priority note below.
enabled=0
gpgcheck=0

# When this repo is enabled all packages in repos with priority>5
# will not be updated even when they have a more recent version.
# Be careful with this.
priority=5

คุณอาจต้องติดตั้งแพ็กเกจการพึ่งพาเพิ่มเติมล่วงหน้าด้วยตนเองเช่นperl-TermReadKeyพร้อมใช้งานจากที่เก็บปกติ


หากคุณไม่ต้องการแก้ไขไฟล์ข้อมูลจำเพาะทำไมไม่เพียงแค่ใช้แพ็คเกจ IUS ไบนารีโดยตรง
carlwgeorge

5

วิธีสร้างและติดตั้ง Git ที่ทันสมัยบน CentOS 6:

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
export GIT_VERSION=2.6.4
mkdir /root/git
cd /root/git
wget "https://www.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.gz"
tar xvzf "git-${GIT_VERSION}.tar.gz"
cd git-${GIT_VERSION}
make prefix=/usr/local all
make prefix=/usr/local install
yum remove -y git
git --version # should be GIT_VERSION

5

ในฐานะที่เป็นคอมไพล์พูดว่า :

RHEL และอนุพันธ์มักจะจัดส่งคอมไพล์รุ่นเก่ากว่า คุณสามารถดาวน์โหลด tarball และสร้างจากแหล่งที่มาหรือใช้ที่เก็บของบุคคลที่สามเช่นโครงการชุมชน IUS เพื่อรับ git เวอร์ชันล่าสุด

มีการกวดวิชาที่ดีที่นี่ ในกรณีของฉัน (เซิร์ฟเวอร์ Centos7) หลังจากติดตั้งต้องออกจากระบบและเข้าสู่ระบบอีกครั้ง


4

สร้างเวอร์ชันล่าสุดของgitบน Centos 6/7

การเตรียมระบบเพื่อสร้าง rpms

  1. ติดตั้ง epel:

    สำหรับ EL6 ให้ใช้:

    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm  
    

    สำหรับ EL7 ให้ใช้:

    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
  2. ติดตั้งfedpkg:

    sudo yum install fedpkg
    
  3. เพิ่มตัวคุณเองในการเยาะเย้ยกลุ่ม (คุณอาจต้องลงชื่อเข้าใช้เซิร์ฟเวอร์อีกครั้งหลังจากการเปลี่ยนแปลงนี้):

    sudo usermod -a -G mock $USER
    

ดาวน์โหลด git

  1. gitแหล่งดาวน์โหลด:

    fedpkg clone -a git && cd git
    fedpkg sources
    
  2. ยืนยันแหล่งที่มา:

    sha512sum -c sources
    

สร้างรอบต่อนาที

  1. สร้าง srmp ใช้el6สำหรับ RHEL6 el7สำหรับ RHEL7

    fedpkg --dist el7 srpm
    
  2. สร้างแพ็คเกจด้วยการเยาะเย้ย:

    mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
    
  3. ติดตั้งรุ่นล่าสุดของรอบต่อนาทีจากgit /var/lib/mock/epel-7-x86_64/result/หมายเหตุคุณอาจต้องถอนการติดตั้ง git เวอร์ชันที่มีอยู่จากระบบของคุณก่อน

คำสั่งนี้จะขึ้นอยู่กับการโพสต์รายชื่อที่ส่งโดยทอดด์ Zullinger


1
คำตอบที่ดี เก็บไว้ภายใต้การจัดการบรรจุภัณฑ์ ดีกว่าการใช้ repos อย่างไม่เป็นทางการหรือติดตั้งจากแหล่งที่มา ฉันดาวน์โหลดแพคเกจ src จากเว็บไซต์แพคเกจ Fedora ผ่านเบราว์เซอร์เสมอ แต่นี่เป็นวิธีที่สะอาดกว่ามาก ขอบคุณ!
orodbhen

3

การเพิ่มคำตอบแบบวงเวียนที่นี่ ฉันกำลังพยายามติดตั้งคอมไพล์บนอินสแตนซ์ RHEL 6.0 Amazon และสิ่งที่ทำให้ฉันรอดได้คือ ... conda เหมือนกับ Ana conda Python

ฉันติดตั้ง conda บนบรรทัดคำสั่งจากไฟล์เก็บถาวร (โค้ดที่จำลองตามนี้ ):

wget http://repo.continuum.io/miniconda/Miniconda2-4.2.12-Linux-x86_64.sh -O ~/miniconda.sh
bash ~/miniconda.sh -b -p $HOME/miniconda
export PATH="$HOME/miniconda/bin:$PATH"

แล้ววิ่ง

conda install git

และติดตั้งคอมไพล์รุ่นล่าสุดค่อนข้าง วันนี้คือ 12/26/2016 และรุ่นคือ 2.9.3


1

นี่คือวิธีการของฉันในการติดตั้งคอมไพล์บน CentOS 6

sudo yum groupinstall "Development Tools"
sudo yum install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel curl-devel
sudo yum install wget
cd ~
wget -O git.zip https://github.com/git/git/archive/v2.7.2.zip
unzip git.zip
cd git-2.7.2
make configure
./configure --prefix=/usr/local
make all doc
sudo make install install-doc install-html

จากประสบการณ์ของฉัน (centos 6.7) คุณควรทำเช่นyum install libcurl-develกัน
jgrump2012

1

สิ่งนี้อาจไม่เกี่ยวข้อง สำหรับคนที่ไม่ต้องการสร้าง git ล่าสุดบนโฮสต์ในขณะที่พวกเขายังสามารถรับ git ล่าสุดได้

ฉันคิดว่าคนส่วนใหญ่ไม่ชอบสร้าง git ล่าสุดบน CentOS เพราะการพึ่งพาจะปนเปื้อนโฮสต์และคุณต้องใช้คำสั่งมากมาย ดังนั้นฉันมีความคิดที่จะสร้างคอมไพล์ภายในคอนเทนเนอร์ Docker แล้วติดตั้งไฟล์ปฏิบัติการได้ผ่านทางเมาท์ปรับระดับเสียงของนักเทียบท่า หลังจากนั้นคุณสามารถลบภาพและคอนเทนเนอร์

ใช่ข้อเสียคือคุณต้องติดตั้งนักเทียบท่า แต่การอ้างอิงที่น้อยที่สุดถูกนำไปใช้กับโฮสต์และคุณไม่จำเป็นต้องติดตั้ง yum repo อื่น ๆ

นี่คือที่เก็บของฉัน https://github.com/wood1986/docker-library/tree/master/git


0

หาก git ติดตั้งไว้แล้วให้ลบ git เก่าออกก่อน

sudo yum remove git*

เพิ่ม repus IUS CentOS 7

sudo yum -y install  https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y install  git2u-all

ตอนนี้ตรวจสอบเวอร์ชั่น git หลังจากติดตั้งแพ็คเกจ git2u-all หากติดตั้งนักเทียบท่าบนเครื่องของคุณ ius-release อาจสร้างปัญหาได้

git --version

บิงโก !!


-3

มันอาจสร้างความสับสนและอันตรายให้กับการแทนที่ที่เก็บฐานต้นน้ำด้วยที่เก็บ add-on โดยไม่ต้องทดสอบและคิด โดยเฉพาะอย่างยิ่ง RPMforge นั้นมีอาการไม่ดีและไม่ได้รับการอัพเดต

ผมเองเผยแพร่เครื่องมือสำหรับการสร้าง Git 2.4 ห่อเป็นอีกทางเลือกหนึ่งชื่อ "git24" แพคเกจที่https://github.com/nkadel/git24-srpm/ รู้สึกอิสระที่จะเข้าถึงและแยกสิ่งเหล่านั้นหากคุณต้องการแพ็คเกจที่แตกต่างจากแพ็คเกจระบบมาตรฐานมากเท่ากับแพ็คเกจ "samba" และ "samba4"


1
การเชื่อมโยงไปยังแหล่งข้อมูล / เว็บไซต์ของคุณเองเป็นบางครั้ง แต่โปรดตรวจสอบให้แน่ใจว่าโพสต์ของคุณยังให้คำตอบที่สมบูรณ์เพียงพอแม้ว่าลิงก์ของคุณใช้งานไม่ได้ (โดยบังเอิญมันไม่ทำงาน)
Hayden Schiff

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