Установка Git на OS X

Я пытаюсь установить Git на Mac OS X Leopard. Я пытаюсь избежать маршрута MacPorts/Fink. Я также пытаюсь избежать установки в Google, потому что я получил очень далеко самостоятельно, но если мне придется, я пойду вперед и скачать установщик.

В любом случае, у меня установлен Git. /usr/local/bin/git. Проблема в том, что ни одна из документации не установлена, и Makefile никогда не потрудился сказать мне об этом. Так что теперь у меня есть Git, сидящий вокруг, ожидая, чтобы его использовали, как я пытаюсь установите для него manpages.

по какой-то ужасной причине manpages поддерживаются в виде текстовых файлов, которые должны быть обработаны программой AsciiDoc, которую я быстро установил. Но AsciiDoc преобразует эти текстовые файлы в XML.

затем Git использует другую программу под названием xmlto для преобразования XML, который AsciiDoc выплевывает на manpages (я думаю - я еще не дошел до этого). Проблема в том, что я получаю эту ошибку всякий раз, когда он начинает этот шаг (первая строка выводится из 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. Поэтому я хочу сделать последнюю отчаянную попытку понять, что не так. И "последнее усилие" означает " спросите переполнение стека."

8 ответов


возможно, не тот ответ, который вы хотите, но вы можете просто загрузить git-manpages-*.tar.gz и git-html-*.tar.gz, которые публикуются вместе с источником. Они опубликованы, потому что цепочка инструментов asciidoc, как известно, немного хрупкая, и значительные усилия, чтобы все установить и организовать.

вам понадобится, я считаю, возможно, целый пакет файлов поддержки docbook. Может, еще какие-нибудь таблицы стилей... хотя, если у вас установлен xmlto, вы должны были получить все это.


недавно я установил git-1.6.4.2 на CentOS 5.3. Строительство git не было проблемой, но попытка установить сопровождающие документы вызывала боль на каждом шагу. Версии xmlto и asciidoc из РЕПО yum были старыми, поэтому я построил их из источника. Тогда 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.

дно установить упоминает пару удобных make цели: быстрая установка-человек и быстрая установка-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)

Примечания:

  1. в этот момент git будет жить в /usr/local/bin.
  2. теперь у вас будет то же дерево, что и предыдущий шаг на отрезанная голова.
  3. SHA-1 происходит от последнего 1.6.4.2 commit в git log origin/man.
  4. то же, что и выше, кроме origin/html.
  5. профит!

Wincent Colaiuta поддерживает очень полезный база знаний на wincent.com/wiki, который является отличным источником информации о git на Mac OS X.

в частности, см. Эти две статьи:


Я был доведен до этого вопроса, когда я гуглил для"docbook2x-texi: команда не найдена" потому что у меня была эта проблема при создании git 1.8.2.1, полученного из репозитория git, с:

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).


Я только что нашел этого милого решение проблемы цепочки git manpages в 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

затем (как указывает Боблет) проверьте git manpath:

echo $MANPATH

и при необходимости отрегулировать:


случайная мысль; где установлены ваши git manpages? Я предполагаю в /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 Snow Leopard, поэтому HTH


Если вы работаете из Клона исходного репозитория 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. Инструмент, вероятно, пытался работать автоматически, но когда я запустил его вручную, он не удался из-за