読者です 読者をやめる 読者になる 読者になる

Motomichi Works Blog

その日学習したことについて書いている日記です。誰かの役に立ったらそれはそれで嬉しいです。

vagrantその13 yumでインストールしたgitのバージョンを上げるというか、アンインストールしてソースからインストールしなおす

参考にさせて頂いたページ

CentOS6.5にGitをソースコードからインストールする

Git on CentOS6.2 ( ソフトウェア ) - 猿ジニアの備忘録 - Yahoo!ブログ

CentOSに標準インストールされている古いgitのバージョンを最新版にあげる方法 - 手が震えたらBARに行こう

まず前提として

"vagrantその12 yumでgitをインストールする"は不要だったみたい。

vagrant sshでログイン

まずsshログインして、管理者権限でログイン

vagrant ssh
su
vagrant(パスワード)

gitのインストールに必要なパッケージを前もってインストールしておく

まずはじめにyum

  • curl-devel
  • expat-devel
  • gettext-devel
  • openssl-devel
  • zlib-devel
  • perl-ExtUtils-MakeMaker

をインストールしておく必要がある。

Git - Gitのインストールのページに書いてあるものだと、perl-ExtUtils-MakeMakerが足りない。

CentOSに標準インストールされている古いgitのバージョンを最新版にあげる方法 - 手が震えたらBARに行こうを参考にしつつ、

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker

を実行すると6個インストールできる。

ここからの手順は

CentOS6.5にGitをソースコードからインストールする

を参考に進めた。

yumでインストールした古いバージョンのgitをアンインストール

sudo yum remove git

gitのソースコードを取得

cd /usr/local/src/

で移動して

wget https://www.kernel.org/pub/software/scm/git/git-2.1.0.tar.gz

を実行してgit-2.1.0.tar.gzをダウンロード

tar xzvf git-2.1.0.tar.gz

を実行して、この場所に解凍

ls

すると

git-2.1.0  git-2.1.0.tar.gz

と表示されたので、解凍されたことがわかる。

cd git-2.1.0

設定ファイルを作成

./configure

コンパイル

make

コンパイルされたものをインストール

make install

git --versionしてみる

bash: /usr/bin/git: そのようなファイルやディレクトリはありません

と表示された。

gitがどこにインストールされているのか確認する

何回か

cd ../

をやって、最上位のディレクトリまで移動する。

そこで

find ./ -name git

を実行したら/usr/local/bin/gitにインストールされていることがわかった。

シンボリックリンクを作成する

ln -s /usr/local/bin/git /usr/bin/git

を実行すると、/usr/bin/gitから/usr/local/bin/gitへのリンクが作成される。

再度git --versionを実行する

git --version

を実行したら、ようやく

git version 2.1.0

と表示された。

不要なファイルを削除する

cd /usr/local/src/

で移動する。

rm -rf git-2.1.0

rm -f git-2.1.0.tar.gz

で削除する。

これで完了。

ここから下は、誰かが私と同じ感じでハマっていたら参考になるといいなと思うので書き残しておく。

ハマっていたこと

make

を実行したときに

/usr/bin/perl Makefile.PL PREFIX='/usr/local' INSTALL_BASE='' --localedir='/usr/local/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] エラー 2
make: *** [perl/perl.mak] エラー 2

というエラーが出た。

Git on CentOS6.2 ( ソフトウェア ) - 猿ジニアの備忘録 - Yahoo!ブログ

によるとどうやら

yum -y install perl-ExtUtils-MakeMaker

を実行して、perl-ExtUtils-MakeMakerをインストールしていないといけなかった。

ちょっと疑問に思っていること

CentOSに標準インストールされている古いgitのバージョンを最新版にあげる方法 - 手が震えたらBARに行こう

にあるような、

./configure --prefix=/usr/local/

make prefix=/usr/local all

make prefix=/usr/local install

のようなprefix付けた方が良いのかな?

とか、そうだとして

CentOSにGitをインストール

のように、

./configure –prefix=/usr/local

のときは付けた方が良くて、

make

make install

のときはいらないのかな?

これを上手くやれば、シンボリックリンクの設定は不要だったのかもしれない。