stMind

about Tech, Computer vision and Machine learning

gitをgithubからcloneしてLatest stable release(1.7.10.4)にアップデート

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)にアップデート出来ました。