高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

さくらインターネットレンタルサーバにGitをインストールする

たまには開発日誌らしいことを。

さくらインターネットレンタルサーバには、最初からGitがインストールされています*1。自分はいままでそちらを使ってGitからCMSをダウンロードしたりして使っていたのですが、あるときから「git submodule」コマンドを利用したときに、以下のメッセージが表示されるようになってしまいました。

fatal: git was built without support for git-submodule (NO_PERL=1).

ということで、さくらインターネットのサポートに聞いてみると、「このGitはユーザーの利用を想定したものではないので、必要であれば独自にインストールして使うこと(意訳)」という回答が返ってきました。

この質問についてはちゃんと掲載許可をもらいましたので、ここに手順を掲載します。


とはいってもGitをさくらインターネットにインストールして使っている例はたくさんあるようで、インターネット検索でいくらでも出てきます。
今回は、検索した中で比較的日付が近かった以下の記事を参考に。

motomichi-works.hatenablog.com

といっても上記記事で使っているGitのバージョンは古かったので、最新版にアレンジします。

最新のGitソースコードを探す

最新のGitソースコードを探します。現在GitのソースコードGithubにて管理されているので、そこから探しました。

github.com

2016/03/25現在一番新しいのはv2.8.0-rc4でしたので、こちらのtar.gzのURLをクリップボードにコピーします*2

インストール作業

適当なSSHクライアントでさくらインターネットレンタルサーバにログインします。自分はRemote TerminalというWindowsストアアプリを利用しました。
www.microsoft.com

ここから先はそのコマンドです。作業用には$HOME/tempを、インストール先には$HOME/binを使用します*3

以下自分がやったコマンドをそのまま書きます。利用される方は各自読み替えて御利用ください。

$ wget https://github.com/git/git/archive/v2.8.0-rc4.tar.gz
$ tar xjvf v2.8.0-rc4.tar.gz
$ cd git-2.8.0-rc4/
$ gmake configure
$ ./configure --prefix=$HOME/bin
$ gmake all install

以上のコマンドで、gitが$HOME/bin/binにインストールされます*4

なお、参考になるコマンドは以下のサイトに掲載されていますが、さくらインターネットレンタルサーバFreeBSDでは一部動かないコマンドがありますので、適宜読み替えます(また、2.8.0は翻訳が未完成だからなのか、install-docは使えないようです)。

自分でインストールしたGitにパスを通す

そして次に、さくらインターネットレンタルサーバに最初から入ってるGitを使わず、自分のインストールしたGitを使うようにパスを変更します。
.bashrcなどのPATHの先頭に、$HOME/bin:を追記します*5(編集がおわったらsourceコマンドでbashrcを読み直すことを忘れずに)。

そして、動作確認。whichコマンドあたりがよいでしょう。

$ which git
/home/userid/bin/bin/git
$ git --version
git version 2.8.0-rc4

無事インストール完了。ちゃんとgit submoduleコマンドも動作するようになりました。

おまけ v2.7.4がインストールできなかったわけ

あとあとのためにいちおうかいておきます。

ちなみに当初はRC版ではないということでv2.7.4をインストールしようとしましたが、以下のメッセージがでてgmake allで失敗しました。

[combine-diff.o]エラー1

少し上の行に「combine-diff.c:1391: internal compiler error: Segmentation fault: 11」とかいてあったため、「git combine-diff.c:1391: internal compiler error: Segmentation fault: 11 」でインターネット検索すると、割とまんまな記事が。
groups.google.com
というわけで、git 2.7.4がさくらインターネットレンタルサーバで使われているFreeBSDにインストールできないのGitのバグだそうです。別のバージョンを使いましょう。

*1:ひょっとしたらサーバーごとに違うのかもしれませんが

*2:なお、最初は正式版であるv2.7.4のほうがよいかと思ったのですが、後述の理由でインストールできませんのでこちらはスキップ

*3:なお、これまた後述の理由により、$HOME/binではなく$HOME/localとした方が良かったです。自分の環境ではもう遅いですが

*4:binがふたつ並ぶのが気持ち悪いと言う人は、$HOME/binでなく$HOME/localなどにインストールすればいいと思います。たぶんどちらにしても実害はありません

*5:このへん、最初に書いたパスを優先で探すのはWindowsと同様ですね