gitがホスティングサーバ上にインストールされてないけど、そのサーバ上のソースコードをgit pushしたいのでホームディレクトリ配下にgitをインストールした

私がこのブログを利用するのに(以外にもいくつか理由があるけど)契約しているinetdさんが、残念ながらホスティングサーバでのGitサポートをしていない。システムにインストールされてないけど、どうしても使いたい…。そこで、ソースからコンパイルしてホームディレクトリ配下にGitをインストールすることにした。

Gitを使っていろいろ管理

私はGit初心者である。
初心者、というか、gitを使うようになって数年は経過しているけど、
「いまだに効果的なgitの使い方ができていますか?」
と問われて自信がない。
仕事でばかり使っていたので別に自分用にgitで何か管理する気はなかったが、業務メモや言語学習メモなどを保存するのにBitbucketのプライベートリポジトリを使ってみようとなぜか思い立ったところから私の個人的git利用がスタートした。

それとは別に、実は昔からの白馬の定宿「Hakuba Acoustic」のウェブサイトもinetdさんで管理している。
Bitbucketは無料でプライベートリポジトリが作れるので、せっかくだからバージョン管理、というか、バックアップのために利用したいと思い始めた。

だけど、inetdさんのサーバにはgitがインストールされていない。
なので、これまではsftpでウェブサイトまるごとを自分のHDDに持って来て、ローカルマシンからGitリポジトリにpushするという、なんだか世紀末感漂うダメダメ手法を使っていた。

これじゃあかん!
ということで、自分のホームディレクトリにソースからインストールすることにした。
inetdさんに相談してもよかったんだけど、かならずOKがでるわけでもないだろうし、メンテナンスや管理上の問題でそもそもサポート対象外にしている可能性もある。
ということで、とりあえず自分のホームにGitをインストールして利用できればいいだろうということで作業をした。

ソースのダウンロード

まずはGitのソースコードのtarballをダウンロード
最新版はGitの公式サイトから辿ってね。GithubリポジトリからZIPダウンロードでもよいと思う。masterブランチではなくリリースタグが打たれた最新版を選ぶこと。この記事執筆時は2.14.0であった。

ビルド&インストール

tarballでもzipでも、まずは展開。
このバージョンのtarballを展開すると「git-2.14.0」というディレクトリが作成される。

ZIPの場合は、以下のとおり。

Gitのインストール先ディレクトリを作成。ホームディレクトリの直下にgitディレクトリを作って、ここに丸ごと放り込めば、消したいときはこのディレクトリを丸ごと消せば済む。
あとで説明するが、インストールすると、このディレクトリにはbin、lib、libexec、shareの4つのディレクトリが作成される。

ビルド(コンパイル)するには、展開したディレクトリ内に移動してgmakeを実行する。
INSTALLファイルの最初にコマンド実行例が書かれているので、headコマンドで確認しておく。

こんな感じで書かれている。

HTMLやらmanやらドキュメントやらは不要なので、「make prefix=/home/xxx install」の形式だけでいけそうな感じ。
もっと細かい調整をしたい場合などはデフォルトのMakefileではなくconfigureコマンドでMakefileを作り直す必要があるが、ここでは調整せずそのまま使う。

さて。足早にgmakeを叩く前に、ホームディレクトリを確認しておく。この記事ではホームディレクトリ直下のgitディレクトリに収めこむという内容なので、ホームディレクトリの位置が重要になる。
環境変数HOMEが使える場合は、make時にもこれを使えばいいだろう。

ダメならpwdすればいい。いまはgit-2.14.0ディレクトリにいるので、それを取り除いたディレクトリがホームディレクトリとなる。

で、ついでに環境変数HOMEを定義してあげればいいだろう。
私はcsh使いなので、setenv。

bash、shならこうか。

GitのMakefileはGNU make向けに書かれている。
ちなみにFreeBSDのmakeはgmakeではないAT&T由来のmakeなのでエラーでコンパイルができない。
幸いinetdさんのシステムにはGNU make(gmake)は入っていたので、これを使える。これがなかったら、面倒臭いがgmakeのインストールからやらなきゃならない。

これでコンパイルが開始する。マシンスペックにもよるが、おおむね10分もかからないだろう。
インストールが完了したら、git配下にbin、lib、libexec、shareの4つのディレクトリがあることを確認しよう。

環境変数PATHの設定

gitコマンドを使うときには「~/git/bin/git add README.md」みたく使ってもいいけど鬱陶しくてかなわんので、環境変数PATHに~/gitを設定しておく。
私が使っているシステムではlib配下のものはシステムの/usr/local/libに存在したので、libについてはパスを考える必要はなかった。もしない場合はLD_LIBRARY_PATHなどを~/git/libに設定する必要があると思うが、その他の実行環境にも大きく影響する可能性があるため、設定する場合は他のアプリケーションやWebサービスなどに問題がないか確認をしたほうがいいだろう。

ということで、vi/vimなどで.profile(shの場合)、.bashrc(bashの場合?)、もしくは.cshrc(cshの場合)を編集して、PATHに$HOME/git/binと$HOME/git/libexec/git-coreを追加してやれば良いだろう。
設定方法がわかっている人は、以下のとおりでなくても環境変数PATHの設定をしてあげればいいだけなので、適宜修正すればよい。

.csrhcならこう。

あとはsourceコマンドでドットファイルを再処理させればgitコマンドがシステムディレクトリにあるかのように使用可能なはずだ。

コメントを残す

メールアドレスが公開されることはありません。