【问题标题】:Installing Git on OS X在 OS X 上安装 Git
【发布时间】:2010-10-28 04:52:21
【问题描述】:

我正在尝试在 Mac OS X Leopard 上安装 Git。我试图避开 MacPorts/Fink 路线。我还试图避免在 Google 上使用 installer,因为我自己已经走得很远了,但如果必须,我会继续下载安装程序。

无论如何,我已经安装了 Git。 /usr/local/bin/git。问题是没有安装任何文档,而且 Makefile 从来没有费心告诉我。所以现在我让 Git 坐在那里等待使用,因为我尝试为其安装手册页。

出于某种可怕的原因,手册页以文本文件的形式维护,由我及时安装的 AsciiDoc 程序处理。但是 AsciiDoc 将这些文本文件转换为 XML。

然后 Git 使用另一个名为 xmlto 的程序将 AsciiDoc 吐出的 XML 转换为联机帮助页(我想 - 我还没有做到这一点)。问题是每当它开始该步骤时我都会收到此错误(第一行是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 macos version-control


    【解决方案1】:

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

    到此为止,文档构建愉快地进行,直到

     DB2TEXI 用户手册.texi
    /bin/sh:第 1 行:docbook2x-texi:找不到命令
    make[1]: *** [user-manual.texi] 错误 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: 没有目录条目的描述
    /usr/bin/db2x_texixml:-::node: 致命错误:节点属于不同的文件
    死于 /usr/bin/db2x_texixml 第 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 存储库来使用这些目标,而 manhtml 分支的头可能与您正在安装的版本不对应。

    所以,一个快速而肮脏的引导程序:

    tar xfz git-1.6.4.2.tar.gz
    cd git-1.6.4.2
    使前缀=/usr/local all
    sudo make prefix=/usr/local install # (1)
    
    光盘..
    git clone git://git.kernel.org/pub/scm/git/git.git
    cd 混帐
    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. 利润!

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 此时,我想要的答案是最有效的答案。我不想为了获取手册页而重新安装 Git,这非常有效。我希望我早点检查他们的索引。总之,谢谢!
      • araqnid,HTML 文档存档的名称实际上是git-htmldocs-*.tar.gz,而不是git-html-*tar.gz。 (请参阅kernel.org/pub/software/scm/git/.)也许 Git 存储库维护者在您写下答案后重命名了这些文件。
      【解决方案3】:

      Wincent Colaiuta 在wincent.com/wiki 维护了一个非常有用的knowledge base,它是Mac OS X 上git 的绝佳信息来源。

      具体看这两篇文章:

      【讨论】:

      • 知道我有多亲密有点令人沮丧。我自己一直走到最后一步,然后放弃了。
      【解决方案4】:

      当我在谷歌上搜索“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_docbook2texicommand,但没有提供所需的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) 下测试。

      【讨论】:

      • 谢谢,这很有帮助。在 Mac OS X 10.5.8 上,路径为 ln -s /usr/local/bin/db2x_docbook2texi /usr/local/bin/docbook2x-texi
      • 谢谢,谢谢!你提到的符号链接允许在我的 CentOS 6.x 上安装 Git。
      【解决方案5】:

      我刚刚发现这个不错的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
      

      并在必要时进行调整:

      【讨论】:

        【解决方案6】:

        随意的想法;你的 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

        【讨论】:

          【解决方案7】:

          如果您使用的是 git 源代码库的克隆,则可以执行以下操作:

          git archive origin/man | sudo tar -x -C /usr/local/share/man
          

          http://johnreilly.tumblr.com/post/41241198/installing-git-man-pages 找到 - 我已经使用了一段时间了,而且效果很好。

          【讨论】:

            【解决方案8】:

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

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

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

            【讨论】:

              猜你喜欢
              • 2015-03-01
              • 2011-04-07
              • 2013-09-13
              • 2013-12-21
              • 2013-08-23
              • 2014-12-14
              • 2011-10-22
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多