ソースダウンロード先:Google Code Archive - Long-term storage for Google Code Project Hosting.
gitの1.8.2.1をソースからコンパイルする際にエラーが発生しました。
make[2]: `GIT-VERSION-FILE' is up to date. GEN git-instaweb SUBDIR git-gui SUBDIR gitk-git SUBDIR perl SUBDIR git_remote_helpers 'import site' failed; use -v for traceback 'import site' failed; use -v for traceback 'import site' failed; use -v for traceback Traceback (most recent call last): File "setup.py", line 5, in ? from distutils.core import setup File "/home/guest/lib/python2.7/distutils/core.py", line 12, in ? import os File "/home/guest/lib/python2.7/os.py", line 49, in ? import posixpath as path File "/home/guest/lib/python2.7/posixpath.py", line 315 slash, dot = (u'/', u'.') if isinstance(path, unicode) else ('/', '.') ^ SyntaxError: invalid syntax
pythonの3項演算子の構文が間違っているというエラーですが、インストールされているpythonは2.7だし、問題ないと思うのですが。。英語でぐぐってもなかなかそれらしい回答がない。pythonをユーザーフォルダでインストールしているのがいけないのか…?
そこで、バージョンを変えてgit-1.8.1.6をコンパイルしてみる。
SUBDIR git_remote_helpers 'import site' failed; use -v for traceback Traceback (most recent call last): File "setup.py", line 5, in ? from distutils.core import setup File "/home/guest/lib/python2.7/distutils/core.py", line 12, in ? import os File "/home/guest/lib/python2.7/os.py", line 49, in ? import posixpath as path File "/home/guest/lib/python2.7/posixpath.py", line 315 slash, dot = (u'/', u'.') if isinstance(path, unicode) else ('/', '.') ^ SyntaxError: invalid syntax
バージョン1.8.3でも。
SUBDIR git_remote_helpers 'import site' failed; use -v for traceback Traceback (most recent call last): File "setup.py", line 5, in ? from distutils.core import setup File "/home/guest/lib/python2.7/distutils/core.py", line 12, in ? import os File "/home/guest/lib/python2.7/os.py", line 49, in ? import posixpath as path File "/home/guest/lib/python2.7/posixpath.py", line 315 slash, dot = (u'/', u'.') if isinstance(path, unicode) else ('/', '.') ^ SyntaxError: invalid syntax
またか…。どうやらpythonのインストールの仕方が悪いようだ。マシン自体にインストールされているpythonは2.4だったので、三項演算子が使えない。どういうわけか2.4がどこからか呼ばれているみたいです。
そこで、もうこのgit_remote_helpersはインストールしないことに。
Makefileの1637行目
ifndef NO_PYTHON $(QUIET_SUBDIR0)git_remote_helpers $(QUIET_SUBDIR1) PYTHON_PATH='$(PYTHON_PATH_SQ)' prefix='$(prefix_SQ)' all endif
ここを削除してmake install。今度はうまくいきました。とりあえずこれで使ってみる。