前回、 Cygwinにgitの新しいバージョンをインストールしようとしてapt-cyg を導入しましたが、結局現状のcygwinに含まれるgitがまだ古かったのでapt-cygでは 新しいものはインストール出来ませんでした。
仕方が無いので直接インストールします。
インストール
ソースからインストールしてみます。
$ cd /tmp
$ git clone https://github.com/git/git.git
$ cd git
$ make configure
$ ./configure --prefix=/home/$USER/usr/local
$ make all doc
...
SUBDIR git_remote_helpers
SUBDIR templates
MSGFMT po/build/locale/is/LC_MESSAGES/git.mo
/bin/sh: msgfmt: command not found
Makefile:2135: recipe for target `po/build/locale/is/LC_MESSAGES/git.mo' failed
make: *** [po/build/locale/is/LC_MESSAGES/git.mo] Error 127
というわけで、まずmsgfmt
が無い、とでました。
このコマンドはgettext
と言うパッケージに入っているみたいですが
1
cygwinには既にgettext-0.18.1がインストールされていました。
(この時点で/bin/msgfmt.py
というものはインストールされてましたがmsgfmt
というコマンドは無し。)
追記: 2013/11/10
msgfmtはcygwinのgettext
を入れただけでは入らず、gettext-devel
の方に入っているようです。
以下では0.18.2が必要、と書いてますが、
別途gettext
を入れなくても
apt-cygでgettext-devel
で入れれば
all
は通る様になります。
追記ここまで
どうももう一つ新しいバージョン0.18.2が必要らしいので、 直接インストールする必要があります。
$ cd /tmp
$ wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.2.tar.gz
$ tar xzf gettext-0.18.2.tar.gz
$ cd gettext-0.18.2
$ ./configure --prefix=/home/$USER/usr/local
$ make
# ...やたら時間がかかる
$ make install
makeに10分くらい?かかりましたが無事インストール。
無事~/usr/local/bin/msgfmt
があることを確認して、もう一度gitの方をmake。
そうすると次はasciidoc
が無い、と言われました。
これはapt-cygで確認すると。
$ apt-cyg find asciidoc
...
Searching for installed packages matching asciidoc:
Searching for installable packages matching asciidoc:
asciidoc
となり、インストールされていないがミラーサイトにはあるようなので、
$ apt-cyg install asciidoc
...
Running postinstall scripts
/etc/postinstall/pango1.0.sh: line 1: /etc/pango/pango.modules: No such file or directory
Package asciidoc installed
...
でインストール。
途中No such file or directory
と言う表示がありましたが、取り敢えず無視。
これで再びgitをmakeすると新たにxmlto
が無い、と。これapt-cygインストール。
$ apt-cyg install xmlto
再度gitをmakeすると
$ make all doc
...
xmlto: /home/USER/tmp/git/Documentation/git-update-ref.xml does not validate (status 3)
xmlto: Fix document syntax or use --skip-validation option
I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
/home/USER/tmp/git/Documentation/git-update-ref.xml:2: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
D DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
^
I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
Could not load the external subset "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
Document /home/USER/tmp/git/Documentation/git-update-ref.xml does not validate
Makefile:314: recipe for target `git-update-ref.1' failed
make[1]: *** [git-update-ref.1] Error 13
make[1]: Leaving directory `/home/USER/tmp/git/Documentation'
Makefile:2083: recipe for target `doc' failed
make: *** [doc] Error 2
と言った感じのエラー。xmltoのバージョンが悪いのかどこかで壊れたのかそれとも他が悪いのか、
この時点で面倒になってきて、
このmakeはdoc
の所でこけているだけなので、doc
を外してmake。
$ make all
とするとOKだったので
$ make install
でインストール出来ました。
途中docは飛ばしてしまいましたが、ソフトの本幹の方は正しくインストールされたと思うので 取り敢えずOKと言うことで。
こまた、docに関してはxmltoをインストールした後、INSALLに書いてある通り、
追記: 2013/11/10
gitのパッケージの中にあるINSTALLを見ると
$xmlcatalog --noout \
--add rewriteURI \
http://docbook.sourceforge.net/release/xsl/current \
/usr/share/sgml/docbook/xsl-stylesheets \
/etc/xml/catalog
$xmlcatalog --noout \
--add rewriteURI \
http://www.oasis-open.org/docbook/xml/4.5/xsl/current \
/usr/share/sgml/docbook/xml-dtd-4.5 \
/etc/xml/catalog
として/etc/xml/catalog
を書き換えてやるよう書いてありますが、
これをしても駄目で、この辺
Can’t build doc anymore (v1.7.3.2)
を一部追ってみましたがやはり上手く行かず。 やはり面倒になったのではっぱりdoc入りは断念。
追記ここまで
取り敢えずこれでcygwinもgit-1.8.3.1を手に入れました。
追記: 2113/07/05
上の様にただインストールしただけでは
error: cannot fork()
みたいなエラーが出たりして上手くいかない時があります。
その場合の対処法をこちらに
書いておきました。
追記ここまで