回答:
WANDiscoのCentOSリポジトリを使用してGit 2.xをインストールできます:CentOS 6、CentOS 7
WANDisco repoパッケージをインストールします。
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
最新バージョンのGit 2.xをインストールします。
yum install git
インストールされたGitのバージョンを確認します。
git --version
2020年3月2日の時点で、WANDiscoから入手可能な最新バージョンは2.22.0です。
--disablerepo=base,updates
機能しません。
ここのブログを見て、私はコメントの1つで解決策を見つけました。rpmforge
CentOS yumにリポジトリが追加されていることを確認し、次のフローコマンドを実行します。
yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git
すでにgitがインストールされている場合は、次を使用します。
yum --disablerepo=base,updates --enablerepo=rpmforge-extras update git
関連する質問:
Anthony Hatzopoulosのおかげで、git v1.8x
次のようにgit18を使用する必要があります。
yum --disablerepo=base,updates --enablerepo=rpmforge-extras install git18
以下のヒントについては@Axlrodに、フィードバックについては@Hiphipに感謝します。
rpmforge.repo
ファイルをrpmforge-extras
有効に
変更しますyum update git
。それ以外の場合は、依存関係の問題について不平を言いました。
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サイトの「Getting Started」ガイドには、ダウンロードしてコンパイルする方法の手順も含まれていることも付け加えておきます。
http://git-scm.com/book/en/v2/Getting-Started-Installing-Git
git18
のようにyum --disablerepo=base,updates --enablerepo=rpmforge-extras install git18
yum --disablerepo=base,updates --enablerepo=rpmforge-extras list | grep git
Centos 6.6で実行すると、Git 1.7.12しか表示されません。おそらく「git18」を削除したのでしょうか?
Rackspace は、合理的に最新のgitが含まれているiusリポジトリを維持していますが、最初にストック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
Can't locate ExtUtils/MakeMaker.pm in @INC
git-credential-libsecret
最も安全なOSネイティブの手段である、インストールされていますたとえばhttp [s] URLの場合など、git資格情報を保存します。執筆時点で現在受け入れられている回答(stackoverflow.com/a/21820716/407170)では、これらのことは行われず、自分でコンパイルする必要があります。
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サイトの「Getting Started」ガイドには、ダウンロードしてコンパイルする方法の手順も含まれていることも付け加えておきます。
http://git-scm.com/book/en/v2/Getting-Started-Installing-Git
wget https://www.kernel.org/pub/software/scm/git/git-2.5.3.tar.gz
echo "export PATH=/usr/local/git/bin:$PATH" >> /etc/bashrc
その後 source /etc/bashrc
私の個人的な好みは、非標準のソフトウェアをインストールして分散コンポーネントを置き換えるときに、CentOS用のrpmパッケージをビルドすることです。このため、Mockを使用してクリーンなビルド環境を作成することをお勧めします。
手順は次のとおりです。
ソースRPMSまたは適切なSPECファイルと初期のソースtarballを取得します。この場合、Gent2X for CentOS-6のソースRPMパッケージは次の場所にあります http://dl.iuscommunity.org/pub/ius/archive/CentOS/6/SRPMS/
。他のCentOSリリースのパッケージも利用できます。
必要なサポートソフトウェアをインストールします。
yum install epel-release # you need this for mock
yum install rpm-build
yum install redhat-rpm-config
yum install rpmdevtools
yum install mock
rpmビルドユーザーアカウントを追加します(rootまたは実際のユーザーとしてビルドしないでください。セキュリティ上の問題が再び発生します)。
sudo adduser builder --home-dir /home/builder \
--create-home --user-group --groups mock \
--shell /bin/bash --comment "rpm package builder"
次に、ビルド環境が必要です。
su -l builder
rpmdev-setuptree
これにより、次のディレクトリ構造が作成されます。
~
└── rpmbuild
├── BUILD
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS
準備されたSRPMSを使用しているため、この場合はSOURCES tarballを無視して、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
モックを構成する(ルートとして)
cd /etc/mock
rm default.cfg
ln -s epel-6-x86_64.cfg default.cfg
vim default.cfg
beta
リポジトリを無効にします。base
とupdate
リポジトリを有効にします。
ビルドツリーを初期化します(/ var / lib / mockがデフォルトです)
mock --init
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
ます。または、指定したカスタムビルドルートの場所とアーキテクチャで。時間がかかります。このパッケージにはたくさんあります。特にドキュメント。
すべてが順調に進んだら、ディストリビューションバージョンの代わりに、インストールに適した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
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
したがって、を使用したストレートインストールは失敗します。
これに対処するには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
、通常のリポジトリから入手できるような追加の依存パッケージを手動でプレインストールする必要がある場合もあります。
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
git
Centos 6/7での最新バージョンをビルドする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
インストールfedpkg
:
sudo yum install fedpkg
自分をグループモックに追加します(この変更後、サーバーへの再ログインが必要になる場合があります)。
sudo usermod -a -G mock $USER
git
git
ソースをダウンロード:
fedpkg clone -a git && cd git
fedpkg sources
ソースを確認:
sha512sum -c sources
srmpを作成します。el6
RHEL6、RHEL7に使用しel7
ます。
fedpkg --dist el7 srpm
モックでパッケージをビルドする:
mock -r epel-7-x86_64 git-2.16.0-1.el7.src.rpm
git
から最新バージョンのrpm をインストールしてください/var/lib/mock/epel-7-x86_64/result/
。最初に、システムから既存のバージョンのgitをアンインストールする必要がある場合があります。
この指示は、Todd Zullingerによるメーリングリストの投稿に基づいています。
ここにラウンドアバウト交差点の回答を追加します。RHEL 6.0のAmazonインスタンスにgitをインストールするのに苦労していましたが、最終的に私を救ったのは... 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
比較的新しいバージョンのgitがインストールされました。今日は12/26/2016で、バージョンは2.9.3です。
これがcentos 6にgitをインストールするための私の方法です。
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
yum install libcurl-devel
です。
これは無関係かもしれません。ホストで最新のgitをビルドしたくない一方で、最新のgitを取得できるようにするためです。
ほとんどの人はCentOSで最新のgitをビルドすることを好まないと思います。依存性がホストを汚染し、多くのコマンドを実行する必要があるためです。したがって、私はDockerコンテナー内でgitをビルドし、Dockerボリュームマウントを介して実行可能ファイルをインストールするという考えを持っています。その後、イメージとコンテナを削除できます。
はい、欠点は、Dockerをインストールする必要があることです。ただし、最小限の依存関係がホストに導入されているため、他のyumリポジトリをインストールする必要はありません。
これが私のリポジトリです。https://github.com/wood1986/docker-library/tree/master/git
gitがすでにインストールされている場合は、最初に古いgitを削除します
sudo yum remove git*
IUS CentOS 7リポジトリを追加
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y install git2u-all
git2u-allパッケージをインストールした後、gitのバージョンを確認してください。マシンにdockerがインストールされている場合、ius-releaseが問題を引き起こす可能性があります。
git --version
ビンゴ!!
かなりのテストと熟考なしに、アップストリームのベースリポジトリをアドオンリポジトリに置き換えることは、非常に混乱し危険です。特に、RPMforgeは事実上瀕死であり、更新を取得していません。
私は個人的にgit 2.4をビルドするためのツールをhttps://github.com/nkadel/git24-srpm/で「git24」という別名のパッケージとしてラップして公開しています。「samba」と「samba4」のパッケージが区別されているように、標準のシステムパッケージと区別されるパッケージが必要な場合は、自由にアクセスしてフォークしてください。