0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【CentOS】Gitの指定バージョンをダウンロードしてビルドする

Last updated at Posted at 2020-12-27

あまりにも毎回忘れるのでスクリプトを作りました。

結論

以下のようにバージョン名を指定してGitをインストールできるプログラムを公開しました。
リポジトリ:Polarbear08/centos-git-installer

# ./installer.sh 2.29.2

詳細はREADMEを参照してください。

モチベーション

  • Gitは時々脆弱性が発表されてアップデートを促してくる割にはパッケージマネージャでは最新版が入らない
  • 最新版を入れるためにソースからビルドする方法を毎回検索していてよろしくない
  • 多分探せば類似リポジトリはあるけれどシェルスクリプトの練習をしたい

スクリプトの内容

installer.sh
#!/bin/bash

# verify input
VERSION=$1
if [[ $VERSION =~ [1-9]+\.[0-9]+\.[0-9] ]]; then
        GIT_DIR=git-$VERSION
        GIT_TAR=$GIT_DIR.tar.gz
        URL="https://mirrors.edge.kernel.org/pub/software/scm/git/$GIT_TAR"
else
        echo -e "Usage:\t $0 <VERSION>"
        echo -e "e.g.)\t $0 2.29.2"
        exit 1
fi

# install wget for downloading git
yum install -y wget

# confirm installation
wget -q --spider $URL
if [ $? = 0 ]; then
        echo "install git version $VERSION"
else
        echo "something seems wrong with URL: $URL"
        exit 1
fi

# install dependencies
yum install -y \
        curl-devel \
        expat-devel \
        gettext-devel \
        openssl-devel \
        perl-devel \
        zlib-devel \
        gcc \
        make

# download and install git
mkdir -p /usr/local/src
cd /usr/local/src
wget https://mirrors.edge.kernel.org/pub/software/scm/git/${GIT_TAR}
tar xf ${GIT_TAR}
rm -f ${GIT_TAR}

cd ${GIT_DIR}
make prefix=/usr/local all
make prefix=/usr/local install

# completion notice
git version > /dev/null  && echo "$(git version) was successfully installed"

文字コードで変なエラー踏んだら嫌なのでASCII文字だけにしています。

参考

  • セマンティック バージョニング 2.0.0
    セマンティックバージョニングに従ったバージョン名を識別する正規表現が記載されています。
    今回はそんないかついパターンは必要なかったですが参考にしました。
  • Gitのインストール
    公式ドキュメントです。gitのビルドに必要な依存関係が示されています。gccとmakeは載ってないんですが必要でした。DockerHubのcentosイメージを使ったため普通はデフォルトで入っているパッケージが入っていなかったのかもしれません。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?