カラクリスタ

『輝かしい青春』なんて失かったヒトのブログ

さくらインターネットのスタンダードにgit 1.7.4.2をインストールした

概要: さくらインターネットにいれてあったgitをupdate


ソースの取得

$ cd local/src
$ wget http://kernel.org/pub/software/scm/git/git-1.7.4.2.tar.bz2
$ tar zxvf git-1.7.4.2.tar.bz2

configure

$ cd git-1.7.4.2
$ ./configure --prefix=$HOME/local/git --with-curl=/usr/local

NOTE:

--with-curlを付けてるのは、これを指定しないと、 どういうわけかgitconfigurelibcurlを見つけてくれないため。

多分だけど、curl一式が、/usr/localに入ってるのが原因だと思う。

コンパイルするためソースを修正

環境にもよるんだろうけど、gitの公式サイトからとってきたパッケージのソースは、 そのままでは途中でコンパイルエラーが出る。

具体的には、

sha1_file.c: In function 'open_packed_git_1':
sha1_file.c:718: error: storage size of 'lim' isn't known
sha1_file.c:721: warning: implicit declaration of function 'getrlimit'
sha1_file.c:721: error: 'RLIMIT_NOFILE' undeclared (first use in this function)
sha1_file.c:718: warning: unused variable 'lim'

という感じのエラー。

それで、storage size of 'lim' isn't knownで検索したところ、

というページが出てきて、このページの通りにソースを修正したら、コンパイルが通った。

具体的には、上記ページから引用すると、

diff --git a/git-compat-util.h b/git-compat-util.h
index 49b50ee..40498b3 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -118,6 +118,7 @@
 #endif
 #ifndef __MINGW32__
 #include <sys/wait.h>
+#include <sys/resource.h>

という感じになる。

コンパイル

gitMakefileは、FreeBSDのmakeではエラーが出るので、 代わりにgmakeを使う。

$ gmake
$ gmake install

以上

これでインストール作業は終わり。

メモは以上。