【2021年確認済み】centos7系にgit2系をインストールする(依存関係エラー解消版)

学習のために契約したさくらのVPSのCentOS7.8にgit2.xをインストールする場合の手順のメモ。

centos7は普通にyum installするとgit1.xが入ってしまいます。

しかし現在の最新はgit2系。centos7にgit2系をインストールしたいとなるとちょっとひと手間掛ける必要があります。

なので「centos7 git2 インストール」とかぐぐると沢山ヒットするのですがどれもこれも情報が古い。

特にQiitaが大量にヒットするがリポジトリが古かったり、依存関係のパッケージがバッチリ揃ってたりする前提で僕の場合ことごとく失敗しました。

なので改めて自分も備忘録も兼ねてcentos7系にgit2系をインストールする手順をまとめます。

2021年1月時点で有効であることを確認済みです。

前準備

まず、すでに古いgitが入ってたら削除します。(さくらのVPSの場合デフォルトで1.8が入ってました)

$ git --version
git version 1.8.3.1
$ sudo yum remove git

次にgit2系用のリポジトリであるiusをインストールします。(qiitaの記事だとこれが古いパターンが多い)

git2.x用のリポジトリをインストールする。

# sudo yum install \
https://repo.ius.io/ius-release-el7.rpm \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

実際にgit2系をインストール

前準備でインストールしたリポジトリ指定でgitをインストールする。

$ sudo yum install git --enablerepo=ius --disablerepo=base,epel,extras,updates

ちなみにこれだとgit-2.24がインストールされるようです。2021/1現在git2.2系の最新は2.29なのでちょっと古いです。

が、マイナーバージョンアップなので多分問題ないです。

ちなみに他にもgit2.3系~git2.9系もありますがいずれも2017年くらいで更新が終わっているので、主流は2.2X系みたいです。(理由は調べてないのでわかりません)

なので単純にバージョンだけ見て『git2.9が一番新しいじゃん!これにしよ!』と飛びつかないほうがよいです。

【参考】https://mirrors.edge.kernel.org/pub/software/scm/git/

依存関係のエラー発生

しかし多分依存関係のエラーが出ます。

少なくとも僕が試したさくらのVPSのデフォルト環境だと以下のようにエラーがでました。

$ sudo yum install git --enablerepo=ius --disablerepo=base,epel,extras,updates
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* remi-safe: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ git224.x86_64 0:2.24.3-1.el7.ius を インストール
--> 依存性の処理をしています: perl-Git = 2.24.3-1.el7.ius のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> 依存性の処理をしています: git-core-doc = 2.24.3-1.el7.ius のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> 依存性の処理をしています: git-core = 2.24.3-1.el7.ius のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> 依存性の処理をしています: perl(Git::I18N) のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> 依存性の処理をしています: perl(Git) のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> 依存性の処理をしています: libsecret-1.so.0()(64bit) のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ git224.x86_64 0:2.24.3-1.el7.ius を インストール
--> 依存性の処理をしています: libsecret-1.so.0()(64bit) のパッケージ: git224-2.24.3-1.el7.ius.x86_64
---> パッケージ git224-core.x86_64 0:2.24.3-1.el7.ius を インストール
--> 依存性の処理をしています: libpcre2-8.so.0()(64bit) のパッケージ: git224-core-2.24.3-1.el7.ius.x86_64
---> パッケージ git224-core-doc.noarch 0:2.24.3-1.el7.ius を インストール
---> パッケージ git224-perl-Git.noarch 0:2.24.3-1.el7.ius を インストール
--> 依存性解決を終了しました。
エラー: パッケージ: git224-2.24.3-1.el7.ius.x86_64 (ius)
要求: libsecret-1.so.0()(64bit)
エラー: パッケージ: git224-core-2.24.3-1.el7.ius.x86_64 (ius)
要求: libpcre2-8.so.0()(64bit)
問題を回避するために --skip-broken を用いることができます。
これらを試行できます: rpm -Va --nofiles --nodigest

最初はここで詰まりましたがじっくりとエラーを読むと答えが書いてあります。

→ポイントは以下です。

エラー: パッケージ: git224-2.24.3-1.el7.ius.x86_64 (ius)
要求: libsecret-1.so.0()(64bit)
エラー: パッケージ: git224-core-2.24.3-1.el7.ius.x86_64 (ius)
要求: libpcre2-8.so.0()(64bit)

これはつまり

  • libsecret-1.so.0()(64bit)
  • libpcre2-8.so.0()(64bit)

依存関係がある↑の2つのパッケージが不足してますよ。という意味です。

なのでこれらを個別にインストールする必要があるわけです。

依存関係パッケージ不足エラーの解消

これらのパッケージは『https://centos.pkgs.org』というところに公式のものがあります。

参考 https://centos.pkgs.orghttps://centos.pkgs.org [pkg名 rpm]でググると検索上位にヒットします。

今回の場合だと

【libsecret-1.so.0 rpm】

【libpcre2-8.so.0 rpm】

などでググると上記公式サイトがヒットします。

あとはここからCensOS7→CentOS x86_64と選んでリンクをクリックします。

このページを見ると中央辺りに以下の記載があります。

Download
Type URL
Mirror mirror.centos.org
Binary Package http://mirror.centos.org/centos/7/os/x86_64/Packages/libsecret-0.18.6-1.el7.x86_64.rpm
Source Package http://vault.centos.org/7.7.1908/os/Source/SPackages/libsecret-0.18.6-1.el7.src.rpm

このバイナリパッケージを指定してyum installを実施します。

$ sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/libsecret-0.18.6-1.el7.x86_64.rpm
読み込んだプラグイン:fastestmirror, langpacks
libsecret-0.18.6-1.el7.x86_64.rpm | 153 kB 00:00:00
/var/tmp/yum-root-rGGcFy/libsecret-0.18.6-1.el7.x86_64.rpm を調べています: libsecret-0.18.6-1.el7.x86_64
/var/tmp/yum-root-rGGcFy/libsecret-0.18.6-1.el7.x86_64.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ libsecret.x86_64 0:0.18.6-1.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
===============================================================================================================================================
インストール中:
libsecret x86_64 0.18.6-1.el7 /libsecret-0.18.6-1.el7.x86_64 485 k

トランザクションの要約
===============================================================================================================================================
インストール 1 パッケージ

合計容量: 485 k
インストール容量: 485 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : libsecret-0.18.6-1.el7.x86_64 1/1
検証中 : libsecret-0.18.6-1.el7.x86_64 1/1

インストール:
libsecret.x86_64 0:0.18.6-1.el7

完了しました!

後は同じように不足しているパッケージをどんどんインストールしていけばOKです。

そして一通り不足しているパッケージをインストールできたら後は改めて本体をインストール!

$ sudo yum install git --enablerepo=ius --disablerepo=base,epel,extras,updates
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* remi-safe: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ git224.x86_64 0:2.24.3-1.el7.ius を インストール
--> 依存性の処理をしています: perl-Git = 2.24.3-1.el7.ius のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> 依存性の処理をしています: git-core-doc = 2.24.3-1.el7.ius のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> 依存性の処理をしています: git-core = 2.24.3-1.el7.ius のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> 依存性の処理をしています: perl(Git::I18N) のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> 依存性の処理をしています: perl(Git) のパッケージ: git224-2.24.3-1.el7.ius.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ git224-core.x86_64 0:2.24.3-1.el7.ius を インストール
---> パッケージ git224-core-doc.noarch 0:2.24.3-1.el7.ius を インストール
---> パッケージ git224-perl-Git.noarch 0:2.24.3-1.el7.ius を インストール
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
===============================================================================================================================================
インストール中:
git224 x86_64 2.24.3-1.el7.ius ius 140 k
依存性関連でのインストールをします:
git224-core x86_64 2.24.3-1.el7.ius ius 5.1 M
git224-core-doc noarch 2.24.3-1.el7.ius ius 2.4 M
git224-perl-Git noarch 2.24.3-1.el7.ius ius 48 k

トランザクションの要約
===============================================================================================================================================
インストール 1 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 7.7 M
インストール容量: 41 M
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/ius/packages/git224-2.24.3-1.el7.ius.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 4b274df2: NOKEY-:-- ETA
git224-2.24.3-1.el7.ius.x86_64.rpm の公開鍵がインストールされていません
(1/4): git224-2.24.3-1.el7.ius.x86_64.rpm | 140 kB 00:00:00
(2/4): git224-core-doc-2.24.3-1.el7.ius.noarch.rpm | 2.4 MB 00:00:00
(3/4): git224-perl-Git-2.24.3-1.el7.ius.noarch.rpm | 48 kB 00:00:00
(4/4): git224-core-2.24.3-1.el7.ius.x86_64.rpm | 5.1 MB 00:00:02
-----------------------------------------------------------------------------------------------------------------------------------------------
合計 3.4 MB/s | 7.7 MB 00:00:02
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7 から鍵を取得中です。
Importing GPG key 0x4B274DF2:
Userid : "IUS (7) <dev@ius.io>"
Fingerprint: c958 7a09 a11f d706 4f0c a0f4 e558 0725 4b27 4df2
Package : ius-release-2-1.el7.ius.noarch (@/ius-release-el7)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : git224-core-2.24.3-1.el7.ius.x86_64 1/4
インストール中 : git224-core-doc-2.24.3-1.el7.ius.noarch 2/4
インストール中 : git224-perl-Git-2.24.3-1.el7.ius.noarch 3/4
インストール中 : git224-2.24.3-1.el7.ius.x86_64 4/4
検証中 : git224-core-doc-2.24.3-1.el7.ius.noarch 1/4
検証中 : git224-core-2.24.3-1.el7.ius.x86_64 2/4
検証中 : git224-2.24.3-1.el7.ius.x86_64 3/4
検証中 : git224-perl-Git-2.24.3-1.el7.ius.noarch 4/4

インストール:
git224.x86_64 0:2.24.3-1.el7.ius

依存性関連をインストールしました:
git224-core.x86_64 0:2.24.3-1.el7.ius git224-core-doc.noarch 0:2.24.3-1.el7.ius git224-perl-Git.noarch 0:2.24.3-1.el7.ius

完了しました!

これでバッチリインストールできました。

まとめ

ポイントは不足しているパッケージを個別にインストールすること。

今回のやり方ならば異なるパッケージでエラーが出ても対応できるはずです。

僕もいろんなblogやqiitaを参考にしました。参考にしすぎて後でどのページだったか忘れてしまいましたが覚えている範囲で参考になったリンクを張ります。

参考 【CentOS7】最新版gitインストールかくすけのいろいろ作るブログ 参考 CentOS7にGit2系をyumでインストールQiita 参考 CentOS7 に最新版の Git をインストールする方法Qiita

技術系の手順メモはすぐにやり方が古くなってしまうのでマジで厄介です。

さらに自分用のメモで書く人が多く、単純にコマンドを羅列しているだけのパターンが多くちょっと環境が違うとすぐNGになるので更に厄介です。

しかも大抵のページは書きっぱなしで放置される(割にはググると上位にヒットする)ので、超厄介です。

このページもいずれそうなるかも。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です