MBAに入れてるgitのアップデート手順のメモ。
環境
- Mac OSX Lion 10.7.4
- Xcode 4.1
- git version 1.7.4.4
gitをcloneしてv1.7.10.4をcheckout
githubからgitのリポジトリをcloneして、v1.7.10.4をチェックアウト。
$ git clone https://github.com/git/git.git $ cd git $ git checkout v1.7.10.4
makeとmake install
INSTALLによると、普通にmake & make insstallとすると~/binにインストールされるが、
prefixを指定することで/usr/local等にインストールすることが出来る。
今回は、/usr/localにインストールすることにした。
$ make prefix=/usr/local all doc info
makeのエラー対応1
docをmakeする際にエラーが発生。
/bin/sh: asciidoc: command not found make[1]: *** [git-add.html] Error 127 make: *** [doc] Error 2
これは単にasciidocがインストールされてないだけなので、asciidocをbrewでインストール。
$ brew install asciidoc $ asciidoc --version asciidoc 8.6.7
makeのエラー対応2
再度makeすると次のエラーが発生。。
/bin/sh: xmlto: command not found make[1]: *** [git-add.1] Error 127 make: *** [doc] Error 2
これも単にxmltoがインストールされていないだけなので、xmltoをbrewでインストール。
$ brew install xmlto
makeのエラー対応3
再々度makeすると次のちょっと厄介なエラーが発生。。。
xmlto: /Users/satojkovic/projects/git/Documentation/git-add.xml does not validate (status 3) … I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd … make[1]: *** [git-add.1] Error 13 make: *** [doc] Error 2
git-add.xmlのvalidationでdtdのロードが出来なくてエラーになっているようだけど、何が原因でロードが出来ないのか?
検索してみると、ずばりの解決策があった。ここ。
XML Catalogが用意されてないとこのエラーが出るということのよう。ここのやり方を参考に、/etc/xml/catalogを作る。
$ sudo xmlcatalog --noout --create /etc/xml/catalog $ sudo mkdir -p /usr/local/share/docbook/xsl $ cd /usr/local/share/docbook/xsl/ $ sudo wget http://sourceforge.net/projects/docbook/files/docbook-xsl/1.77.1/docbook-xsl-1.77.1.tar.bz2 $ sudo tar xjvf docbook-xsl-1.77.1.tar.bz2 $ sudo xmlcatalog --noout --add 'nextCatalog' '' 'file:///usr/local/share/docbook/xsl/docbook-xsl-1.77.1/catalog.xml' --create /etc/xml/catalog $ cd /usr/local/share/docbook/ $ sudo mkdir -p xml/4.5 $ cd xml/4.5/ $ sudo curl -LO http://www.oasis-open.org/docbook/xml/4.5/docbook-xml-4.5.zip $ sudo unzip docbook-xml-4.5.zip $ sudo xmlcatalog --noout --add 'nextCatalog' '' 'file:///usr/local/share/docbook/xml/4.5/catalog.xml' --create /etc/xml/catalog
/etc/xml/catalogはこのような内容。
<?xml version="1.0"?> <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <nextCatalog catalog="file:///usr/local/share/docbook/xsl/docbook-xsl-1.77.1/catalog.xml"/> <nextCatalog catalog="file:///usr/local/share/docbook/xml/4.5/catalog.xml"/> </catalog>
改めてmake & make install
$ make prefix=/usr/local all doc info $ sudo make prefix=/usr/local install install-doc install-html install-info $ /usr/local/bin/git --version git version 1.7.10.4
まとめ
事前準備として
- asciidoc, xmltoをインストール
- /etc/xml/catalogを作成
をしてから、make & make installでLatest stable release(1.7.10.4)にアップデート出来ました。