Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
14
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

CentOS7で最新バージョンのgitをインストール

目的

GitLab CI環境を構築するところで、gitのバージョンが古すぎてdeployが失敗するケースが発生した。
CentOS7で設置されるgitのバージョンは1.8.xなので、2.xに上げないと行けない。
source compileしてインストールすることよりできればyumでインストールしたい。

git 2.x系をインストール

色々とググって見たけど、qiitaとか他の日本語のWEBで見つけたやり方では様々な依存性の問題が発生した。

ここのやり方では一発で行けたので、紹介する。

$ sudo yum remove git*
$ sudo yum -y install https://repo.ius.io/ius-release-el7.rpm
$ sudo yum-config-manager --disable ius
$ sudo yum -y install git2u-all --enablerepo=ius

Ansibleで既存のplaybookを修正した。

- name: install development yum packages
  yum: name={{ item }} state=present
  with_items:
    - gcc
    - gcc-c++
#    - git
    - openssl-devel
    - readline-devel
    - unzip
    - yum-utils

# - name: install yum packages in order to install the newest git
#   yum: name={{ item }} state=present
#   with_items:
#     - emacs-filesystem
#     - libsecret
#     - pcre

- name: install yum repository in order to install the newest git
  yum:
    name: 'https://repo.ius.io/ius-release-el7.rpm'
    state: present
  register: ius_repository

- name: disable ius repository
  shell: yum-config-manager --disable ius
  when: ius_repository.changed

- name: install the newest git
  yum:
    name: git2u-all
    enablerepo: ius
    # disablerepo: base,epel,extras,updates
    state: present

依存性の問題を解決する為にエラーで指摘されたpackageをインストールして見たけど、切りがない。
次々と他の問題が出てくる。
それでコメントアウトしておいた。

最新バージョンのgitを設置する時、他のrepositoryをdisableにしたら、また失敗した。
他のrepositoryから必要なpackageもあるみたいなので、その部分もコメントアウトした。

$ git --version
git version 2.16.5
$ sudo cat /etc/yum.repos.d/ius.repo
[ius]
name = IUS for Enterprise Linux 7 - $basearch
baseurl = https://repo.ius.io/7/$basearch/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7

[ius-debuginfo]
name = IUS for Enterprise Linux 7 - $basearch - Debug
baseurl = https://repo.ius.io/7/$basearch/debug/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7

[ius-source]
name = IUS for Enterprise Linux 7 - Source
baseurl = https://repo.ius.io/7/src/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7

これでOK。意外と最新バージョンのgitのインストールって難しいね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
14
Help us understand the problem. What are the problem?