web-dev-qa-db-ja.com

CentOS 7.x/6.xにgitの最新バージョンをインストールする方法

私はいつも使っていました:

yum install git

CentOS 6に最新バージョンのgitをインストールしませんでした。CentOS6の最新バージョンのgitに更新するにはどうすればよいですか。解決策は、CentOS 7などの新しいバージョンのCentOSに適用できます。

201
AmirHd

ブログを見てみると{ here 私はコメントの1つで解決策を見つけました。 rpmforgeリポジトリがあなたのCentOS yumに追加されていることを確認して、ただ流れるコマンドを実行してください:

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

Gitがすでにインストールされているのなら、

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

関連する質問

  1. CentOS 6.4でgitを最新バージョンにアップグレードする際の問題に直面している

ノートの更新:

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をアンインストールする

RPMファイルまたはYumパッケージマネージャを使用して、Gitの以前のインストールをすべて削除します。古いバージョンもソースからコンパイルされている場合は、この手順を飛ばしてください。

# yum remove git

ステップ3: Gitソースをダウンロードしてコンパイルする

カーネルgitから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のバージョンを確認する

上記のステップを1回完了すると、Gitをシステムに正常にインストールできました。次のコマンドを使ってgitのバージョンを確認しましょう

# git --version

git version 2.0.4

また、GITのWebサイトにある「はじめに」のガイドにも、自分でダウンロードしてコンパイルする方法についての説明が含まれていることを付け加えたいと思います。

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

128
AmirHd

WANDiscoのCentOSリポジトリを使用してGit 2.xをインストールできます。 CentOS 6CentOS 7

  1. 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
    

2019年4月24日現在、WANDiscoから入手可能な最新バージョンは 2.18.0 です。

258
Joseph Leedy

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をアンインストールする

RPMファイルまたはYumパッケージマネージャを使用して、Gitの以前のインストールをすべて削除します。古いバージョンもソースからコンパイルされている場合は、この手順を飛ばしてください。

# yum remove git

ステップ3: Gitソースをダウンロードしてコンパイルする

カーネルgitから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のWebサイトにある「はじめに」のガイドにも、自分でダウンロードしてコンパイルする方法についての説明が含まれていることを付け加えたいと思います。

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

81
Pytry

Rackspaceは iusリポジトリ を管理しています。これにはかなり最新のgitが含まれていますが、最初にstock gitを削除する必要があります。

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
77
Mark Visser

私の個人的な好みは、非標準のソフトウェアをインストールして分散コンポーネントを置き換えるときにCentOS用のrpmパッケージを構築することです。そのためには、Mockを使用してクリーンビルド環境を作成することをお勧めします。

手順は次のとおりです。

  1. ソースRPMSまたは適切なSPECファイルと手付かずのソースtarballを入手してください。この場合、CentOS-6用のgit2XのソースRPMパッケージは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. Rpmビルドユーザーアカウントを追加します( rootまたは本物のユーザーとしてビルドしないでください - セキュリティ問題willが戻ってきてあなたに噛み付きます )。

    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. この場合はSOURCES tarballを無視して直接SRPMSに進むことができるように、準備された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
    

    betaリポジトリを無効にします。 baseおよびupdateリポジトリを有効にします。

  7. ビルドツリーを初期化します(/ var/lib/mockがデフォルトです)。

    mock --init
    
  8. SOURCESからビルドしていたのであれば、ここでSPECファイルを使用してmock --buildsrpm . . .を使用します。しかし、この場合は直接バイナリビルドのステップに行きます。

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

    これはビルドの依存関係を解決し、それらをクリーンなビルドルートにダウンロードします(約95パッケージほど)。それからソースを抽出し、提供されたSRPMからバイナリを構築し、それを/var/lib/mock/epel-6-x86_64/resultに残します。あるいは、あなたが提供したカスタムビルドルートの場所とアーキテクチャのいずれかで。長い時間がかかるでしょう。このパッケージにはたくさんあります。特にドキュメンテーション。

  9. すべてうまくいけば、ディストリビューション版の代わりに、インストールに適したRPMパッケージを用意する必要があります。これが私が最後になったものです:

    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.rpmPerl-Git2u-2.5.3-1.ius.el6.noarch.rpmに依存し、Perl-Git2u-2.5.3-1.ius.el6.noarch.rpmgit2u-2.5.3-1.ius.el6.x86_64.rpmに依存します。 rpmを使ったストレートインストールは失敗するでしょう。

    対処方法は2つあります。

    • Yumを使って両方を同時にインストールします。

      yum localinstall \
        git2u-2.5.3-1.ius.el6.x86_64.rpm \
        Perl-Git2u-2.5.3-1.ius.el6.noarch.rpm`
      
    • ローカルのyumリポジトリを設定します。

      これを行う方法についての説明が含まれており、同時に必要なリポジトリファイルも提供されているので、以下にLocalFile.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のような追加の依存パッケージを手動でプレインストールする必要があるかもしれません。

9
James B. Byrne

CentOS 6に最新のGitをビルドしてインストールするには:

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
Joe Goggins

gitが言うように

RHELとその派生物は通常古いバージョンのgitを出荷します。 tarballをダウンロードしてソースからビルドすることも、IUS Community Projectなどのサードパーティのリポジトリを使用して最新バージョンのgitを入手することもできます。

よいチュートリアルがあります ここ 。私の場合(Centos7サーバー)では、インストール後にログアウトして再度ログインする必要がありました。

4
Alireza Saremi

Centos 6/7でgitの最新バージョンを構築する

Rpmを構築するためのシステムの準備

  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
    

Rpmを構築

  1. Srmpを作成してください。 RHEL6にはel6を、RHEL7にはel7を使用してください。

    fedpkg --dist el7 srpm
    
  2. モックでパッケージをビルドする:

    mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
    
  3. /var/lib/mock/epel-7-x86_64/result/からgit rpmの最新バージョンをインストールしてください。あなたのシステムから最初に既存のバージョンのgitをアンインストールする必要があるかもしれません。

この指示は Todd Zullingerによるメーリングリスト投稿 に基づいています。

3
sashk

ここにロータリーの答えを追加する。 RHEL 6.0のAmazonインスタンスにgitをインストールするのに苦労していましたが、結局私を救ったのは... Anda conda Pythonのようにcondaでした。

archivesthis をモデルにしたコード)からコマンドラインに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

そして比較的最近のバージョンのgitがインストールされています。今日は2016年12月26日で、バージョンは2.9.3です。

3
Ben Ogorek

これが私がgitを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
1
Dylan Pearson

これは無関係かもしれません。それは彼らがまだ最新のgitを得ることができる間、人々がHost上で最新のgitを構築したくないためです。

依存関係がホストを汚染し、あなたがたくさんのコマンドを実行しなければならないので、ほとんどの人はCentOS上で最新のgitを構築することを好まないと思います。そのため、Dockerコンテナー内にgitを構築してから、docker volume mountを介して実行可能ファイルをインストールするという考えがあります。その後、画像とコンテナを削除できます。

はい、欠点はdockerをインストールする必要があるということです。しかし、最小限の依存関係がホストに導入されているので、他のyumリポジトリをインストールする必要はありません。

これが私のリポジトリです。 https://github.com/wood1986/docker-library/tree/master/git

1
WOW