在OS X上安装Git
我想在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安装程序。
也许不是您想要的答案,但您可以下载与源一起发布的git-manpages-*.tar.gz
和git-html-*.tar.gz
。它们的发布是因为asciidoc工具链已知有点脆弱,并且需要付出相当大的努力来安装和安排所有的东西。
你需要,我相信,可能是一整套docbook支持文件。也许一些样式表,尽管如果你有xmlto安装你应该得到所有这些。
维森特Colaiuta保持一个非常有用的knowledge base在wincent.com/wiki这是信息的绝佳来源git
在Mac OS X
尤其是看到这两篇文章:
知道自己离我多么近,真让人沮丧。我一路走到最后一步,然后放弃了。 – 2009-05-26 01:25:52
我最近安装了在CentOS 5.3上的d git-1.6.4.2。构建git并不麻烦,但试图安装随附的文档会在每一步都产生痛苦。来自yum回购的xmlto
和asciidoc
的版本是旧的,所以我从源码构建它们。然后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仓库使用这些目标,元首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)
注:
- 在这一点上,git会住在
/usr/local/bin
。 - 现在您将拥有与上一步detached head相同的树。
- SHA-1来自
git log origin/man
中的最后一个1.6.4.2提交。 - 与上述相同,但从
origin/html
除外。 - 利润!
随机想法;你的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
我刚刚发现这个不错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
,必要时调整:
谢谢 - 清晰,可理解的作品。 – jongala 2010-01-31 18:47:42
如果你从Git的源代码库的克隆工作,你可以做这样的事情:
git archive origin/man | sudo tar -x -C /usr/local/share/man
找到http://johnreilly.tumblr.com/post/41241198/installing-git-man-pages - 我已经使用它一段时间了,它工作得很好。
本周早些时候,我在Cygwin上有一个类似的构建问题(尝试加载网络实体时失败),并且通过一些狩猎,我发现问题是缺少xml目录。在Cygwin上有一个名为build-docbook-catalog
的脚本。该工具可能试图自动运行,但是当我手动运行它时,由于/etc/xml
目录不存在而失败。
build-docbook-catalog
的来源可能是here,但由于我没有Windows或Cygwin可用,我无法确认。
我意识到这个问题早已回答了,但是我一直在寻找问题的答案时偶然发现了这个页面,所以希望这可以为别人节省一些时间。
我被驱动到这个问题时,我用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进行测试(碳)。
在这一点上,我想要的答案是最好的答案。我不想重新安装Git来获取手册,而且这个工作非常完美。我希望我早点检查了他们的索引。总之,谢谢! – 2009-05-23 14:35:13
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