2009-05-22 230 views
14

我想在Mac OS X Leopard上安装Git。我试图避免MacPorts/Fink路线。我也试图避免谷歌上的installer,因为我自己已经非常努力,但如果我必须继续下载安装程序。在OS X上安装Git

无论如何,我已经安装了Git。 /usr/local/bin/git。问题是没有安装任何文档,并且Makefile从来没有打扰过告诉我这一点。所以现在我有Git坐在等待被使用,因为我试图为它安装manpages。

出于某种可怕的原因,manpages被保存为文本文件,这些文件将由我迅速安装的AsciiDoc程序处理。但是AsciiDoc将这些文本文件转换为XML。

然后Git使用另一个名为xmlto的程序将AsciiDoc吐出的XML转换为manpages(我想 - 我还没有得到那么多)。问题是,我得到这个错误,每当它启动步骤(第一行是从make输出,剩下的就是错误):

XMLTO git-apply.1 
I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd 
/Users/chrislutz/prog/sources/git-1.6.3.1/Documentation/git-apply.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" 

所以基本上它只是通过每一个文件,并给了我这个错误对所有的人。

我曾尝试在一个点下载文件http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd,将它放在目录中,然后将XML文件中的所有引用更改为目录中的文件,但这给了我更多和更奇怪的错误。如果我有一个正常的解决方案来工作,它可能仍然会给我那些陌生的错误,这意味着整个事情都搞砸了,我只会使用Google安装程序。

但是,我自己已经(偶然发现)了这么远,我觉得这是松了一口气和使用Git的机会之前的最后一步。所以我想尽一切努力去理解错误。而“最后努力”意味着“请求堆栈溢出”。

所以,如果任何人都可以告诉我有关错误意味着什么以及它发生的原因(以及我可以做些什么来修复它),那就太棒了。如果没有,我会尝试Google安装程序。

回答

9

也许不是您想要的答案,但您可以下载与源一起发布的git-manpages-*.tar.gzgit-html-*.tar.gz。它们的发布是因为asciidoc工具链已知有点脆弱,并且需要付出相当大的努力来安装和安排所有的东西。

你需要,我相信,可能是一整套docbook支持文件。也许一些样式表,尽管如果你有xmlto安装你应该得到所有这些。

+0

在这一点上,我想要的答案是最好的答案。我不想重新安装Git来获取手册,而且这个工作非常完美。我希望我早点检查了他们的索引。总之,谢谢! – 2009-05-23 14:35:13

+1

araqnid,HTML文档存档的名称实际上是`git-htmldocs - *。tar.gz`,而不是`git-html- * tar.gz`。 (请参阅http://www.kernel.org/pub/software/scm/git/)。自从您编写答案以来,Git存储库维护人员可能会重命名这些文件。 – 2011-03-09 21:44:03

12

我最近安装了在CentOS 5.3上的d git-1.6.4.2。构建git并不麻烦,但试图安装随附的文档会在每一步都产生痛苦。来自yum回购的xmltoasciidoc的版本是旧的,所以我从源码构建它们。然后xmlto(通过xmllint)抱怨缺少DocBook 4.5,我终于设法手动获取这些文件。

得到这个地步,商务部构建愉快trundles沿​​着直到

 DB2TEXI user-manual.texi 
/bin/sh: line 1: docbook2x-texi: command not found 
make[1]: *** [user-manual.texi] Error 127

但docbook2x安装!嗯,命令是不同的:

$ rpm -q --filesbypkg docbook2x | grep bin.\*texi 
docbook2x     /usr/bin/db2x_docbook2texi 
docbook2x     /usr/bin/db2x_texixml

即使想手动运行它,我仍然觉得不快乐:

$ db2x_docbook2texi user-manual.xml --encoding=UTF-8 --to-stdout >user-manual.texi++ 
docbook2texi:/book: no description for directory entry 
/usr/bin/db2x_texixml:-::node: fatal error: node belongs to a different file 
Died at /usr/bin/db2x_texixml line 959.

INSTALL底部提到了一些方便make目标:快速install- man和quick-install-html。事实证明,例如,指出

$ make prefix=/usr/local quick-install-man

相当于

$ ./Documentation/install-doc-quick.sh origin/man /usr/local/share/man

这有几个问题:我们需要一个git仓库使用这些目标,元首manhtml分支可能不对应于您正在安装的版本。

所以,一个快速和肮脏的引导:

tar xfz git-1.6.4.2.tar.gz 
cd git-1.6.4.2 
make prefix=/usr/local all 
sudo make prefix=/usr/local install # (1) 

cd .. 
git clone git://git.kernel.org/pub/scm/git/git.git 
cd git 
git checkout v1.6.4.2 # (2) 

# (3) 
./Documentation/install-doc-quick.sh \ 
    c8b9e605d51dd2f0c7ce6a363df31171af16534c \ 
    /usr/local/share/man 

# (4) 
./Documentation/install-doc-quick.sh \ 
    35b47ca5285a4059792ba937f8e09b2ab4a7adf4 \ 
    /usr/local/share/doc/git-doc 

git init --help # (5)

注:

  1. 在这一点上,git会住在/usr/local/bin
  2. 现在您将拥有与上一步detached head相同的树。
  3. SHA-1来自git log origin/man中的最后一个1.6.4.2提交。
  4. 与上述相同,但从origin/html除外。
  5. 利润!
0

随机想法;你的Git手册页在哪里安装?我在/usr/local/git/man猜测。如果是这样,检查,这是在$ MANPATH:

echo $MANPATH 

如果你没有在那里的git MANPATH,通过TextMate的或vi或添加一些这个文本,无论你有你的$PATH(如在~/.bash_profile);

export MANPATH=/usr/local/git/man:$MANPATH 

或者刚刚从外壳使用这个命令:

echo 'export MANPATH=/usr/local/git/man:$MANPATH' >> ~/.bash_profile 

刚把这个问题我自己做Hivelogic雪豹安装后,所以HTH

2

我刚刚发现这个不错solution to the Git manpages chain problem on OS X。为了方便起见,这里是(取代:git-manpages-1.6.6.tar.bz2与您的版本的Git,并/usr/local/到哪里安装在您的git):

$ curl -O http://kernel.org/pub/software/scm/git/git-manpages-1.6.6.tar.bz2 
$ sudo tar xvf git-manpages-1.6.6.tar.bz2 -C /usr/local/man 

然后,(如Boblet指出的),检查git的MANPATH:

echo $MANPATH 

,必要时调整:

+1

谢谢 - 清晰,可理解的作品。 – jongala 2010-01-31 18:47:42

0

本周早些时候,我在Cygwin上有一个类似的构建问题(尝试加载网络实体时失败),并且通过一些狩猎,我发现问题是缺少xml目录。在Cygwin上有一个名为build-docbook-catalog的脚本。该工具可能试图自动运行,但是当我手动运行它时,由于/etc/xml目录不存在而失败。

build-docbook-catalog的来源可能是here,但由于我没有Windows或Cygwin可用,我无法确认。

我意识到这个问题早已回答了,但是我一直在寻找问题的答案时偶然发现了这个页面,所以希望这可以为别人节省一些时间。

3

我被驱动到这个问题时,我用Google搜索“docbook2x-TEXI:找不到命令”,因为我有这个问题,同时建立从Git仓库中获得的git 1.8.2.1,与:

make prefix=/my_prefix/git all doc info 

所以,下面我http://git-scm.com/book/en/Getting-Started-Installing-Git推出:

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 

但对于make完成我安装下一个软件包:

yum install asciidoc xmlto docbook2X 

正如阅读最多的答案指出的,最后一个提供了db2x_docbook2texi命令,但不是所需的docbook2x-texi。然而,一个简单的符号链接解决了这个问题:

ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi 

现在,make是成功的,我安装混帐有:

make prefix=/my_prefix/git install install-doc install-html install-info 

这种变通方法下的科学的Linux 6.1进行测试(碳)。