Установка Git на OS X - PullRequest
14 голосов
/ 22 мая 2009

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

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

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

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

Ответы [ 8 ]

12 голосов
/ 10 сентября 2009

Я недавно установил git-1.6.4.2 на CentOS 5.3. Создание мерзавца не составило труда, но попытка установить сопровождающие документы вызывала боль на каждом шагу. Версии xmlto и asciidoc из репозитория yum были старыми, поэтому я собрал их из исходного кода. Затем xmlto (в виде xmllint) пожаловался на отсутствие DocBook 4.5, и мне, наконец, удалось получить их вручную.

Пройдя так далеко, док-брелок радостно покачивается, пока

    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-репо, чтобы использовать эти цели, а главы ветвей 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 в git log origin/man.
  4. То же, что и выше, за исключением origin/html.
  5. Profit!
9 голосов
/ 23 мая 2009

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

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

3 голосов
/ 11 апреля 2013

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

make prefix=/my_prefix/git all doc info

Итак, следуя http://git -scm.com / book / ru / 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).

3 голосов
/ 26 мая 2009

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

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

2 голосов
/ 18 января 2010

Я только что нашел это хорошее решение проблемы цепочки руководств Git на 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

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

0 голосов
/ 17 июля 2010

Ранее на этой неделе у меня была похожая проблема сборки на Cygwin (сбой при попытке загрузить сетевой объект), и после некоторой охоты я смог обнаружить, что проблема заключалась в отсутствии xml-каталога. На Cygwin есть скрипт с именем build-docbook-catalog. Возможно, инструмент пытался запустить автоматически, но когда я запустил его вручную, он не работал из-за того, что каталог /etc/xml не существует.

Источник build-docbook-catalog, вероятно, здесь , но я не могу подтвердить это сейчас, так как у меня нет Windows или Cygwin.

Я понимаю, что на этот вопрос уже давно дан ответ, но я наткнулся на эту страницу, когда искал ответ на свою проблему, так что, надеюсь, это сэкономит время кому-то еще.

0 голосов
/ 07 апреля 2010

Если вы работаете с клоном репозитория git source, вы можете сделать что-то вроде этого:

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

Находится на http://johnreilly.tumblr.com/post/41241198/installing-git-man-pages - я уже некоторое время пользуюсь им, и он просто отлично работает.

0 голосов
/ 08 ноября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...