我正在尝试在Mac OS X Leopard上安装Git。我正试图避开MacPorts / Fink路线。我也试图避开谷歌上的installer,因为我自己走得很远,但如果必须,我会继续下载安装程序。
无论如何,我安装了Git。 /usr/local/bin/git
。问题是没有安装任何文档,Makefile从不打扰告诉我。所以现在我让Git坐在那里等待我尝试为它安装联机帮助页。
由于某些可怕的原因,联机帮助页被维护为文本文件,这些文件将由AsciiDoc程序处理,我很快就安装了该程序。但是AsciiDoc将这些文本文件转换为XML。
然后Git使用另一个名为xmlto的程序将AsciiDoc吐出的XML转换为联机帮助页(我想 - 我还没有那么远)。问题是,每当它开始该步骤时我都会收到此错误(第一行是从make输出,rest是错误):
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的机会之前的最后一步。所以我想做出最后的努力来理解什么是错的。而“最后努力”意味着“Ask Stack Overflow。”
因此,如果有人能够让我对这个错误意味着什么以及为什么会发生错误(以及我可以做些什么来修复它)给出任何见解,那就太棒了。如果没有,我会尝试使用Google安装程序。
答案 0 :(得分:12)
我最近在CentOS 5.3上安装了git-1.6.4.2。构建git没有问题,但是尝试安装随附的文档会在每一步都产生痛苦。来自yum repos的xmlto
和asciidoc
的版本是旧的,所以我从源代码构建它们。然后xmlto
(通过xmllint
)抱怨缺少DocBook 4.5,我终于设法手动获取了这些内容。
到目前为止,doc build快乐地推进,直到
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
目标:quick-install-man和quick-install-html。例如,它变成了那个
$ make prefix=/usr/local quick-install-man
相当于
$ ./Documentation/install-doc-quick.sh origin/man /usr/local/share/man
这有两个问题:我们需要一个git repo来使用这些目标,man
和html
分支的头部可能与您正在安装的版本不对应。
所以,一个快速而又脏的引导程序:
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)
注意:
/usr/local/bin
。git log origin/man
中的最后一次1.6.4.2提交。origin/html
除外。答案 1 :(得分:9)
也许不是您想要的答案,但您可以下载与源一起发布的git-manpages-*.tar.gz
和git-html-*.tar.gz
。它们的发布是因为已知asciidoc工具链有点脆弱,并且需要付出相当大的努力来安装和安排所有内容。
我认为,您可能需要一整套docbook支持文件。也许还有一些样式表......虽然如果你安装了xmlto,你应该已经拥有了所有这些。
答案 2 :(得分:3)
Wincent Colaiuta在knowledge base维护了一个非常有用的wincent.com/wiki,这是Mac OS X上git
的绝佳信息来源。
特别是,请看这两篇文章:
答案 3 :(得分:3)
当我搜索“ docbook2x-texi:command not found ”时,我被驱使到了这个问题,因为我在构建从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
成功了,我必须安装 git :
make prefix=/my_prefix/git install install-doc install-html install-info
此解决方法在Scientific Linux 6.1(Carbon)下进行了测试。
答案 4 :(得分: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
并在必要时进行调整:
答案 5 :(得分:0)
随机思考;您的Git联机帮助页安装在哪里?我在/usr/local/git/man
猜测。如果是这样,请检查它是否在$ MANPATH中:
echo $MANPATH
如果您没有git manpath,请通过TextMate或vi或其他内容将此文本添加到您$PATH
的任何位置(例如~/.bash_profile
};
export MANPATH=/usr/local/git/man:$MANPATH
或者只是从shell中使用此命令:
echo 'export MANPATH=/usr/local/git/man:$MANPATH' >> ~/.bash_profile
在完成Hivelogic Snow Leopard安装后,我自己就遇到了这个问题,所以HTH
答案 6 :(得分:0)
如果您正在使用git源代码库的克隆,您可以执行以下操作:
git archive origin/man | sudo tar -x -C /usr/local/share/man
发现于http://johnreilly.tumblr.com/post/41241198/installing-git-man-pages - 我已经使用了一段时间了,它的效果非常好。
答案 7 :(得分:0)
本周早些时候我在Cygwin上遇到了类似的构建问题(试图加载网络实体失败),并且通过一些搜索我能够发现问题是缺少xml目录。在Cygwin上有一个名为build-docbook-catalog
的脚本。该工具可能正在尝试自动运行,但是当我手动运行时,由于/etc/xml
目录不存在而失败了。
build-docbook-catalog
的来源可能是here,但我现在无法确认,因为我没有Windows或Cygwin可用。
我意识到这个问题早已回答,但我在寻找问题的答案时偶然发现了这个页面,所以希望这为其他人节省了一些时间。