たまには開発日誌らしいことを。
さくらインターネットのレンタルサーバには、最初から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にて管理されているので、そこから探しました。
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のバグだそうです。別のバージョンを使いましょう。