Установка Git на OS X
Я пытаюсь установить Git на Mac OS X Leopard. Я пытаюсь избежать маршрута MacPorts/Fink. Я также стараюсь избегать installer в 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. Поэтому я хочу сделать последнее попытку понять, что случилось. И "последнее действие" означает "Спросить переполнение стека".
Итак, если кто-нибудь может дать мне представление о том, что означает эта ошибка и почему она происходит (и что я могу сделать, чтобы ее исправить), это было бы потрясающе. Если нет, я попробую установщик Google.
Ответы
Ответ 1
Возможно, не ответ, который вы хотите, но вы можете просто загрузить git-manpages-*.tar.gz
и git-html-*.tar.gz
, которые будут опубликованы вместе с источником. Они опубликованы, потому что средство связывания asciidoc, как известно, немного хрупко и прилагает значительные усилия, чтобы все было установлено и организовано.
Похоже, вам понадобится целый пакет файлов поддержки docbook. Возможно, некоторые таблицы стилей... хотя, если у вас установлен xmlto, у вас должно получиться все это.
Ответ 2
Недавно я установил git -1.6.4.2 на CentOS 5.3. Построение git было без проблем, но попытка установить сопровождающие документы вызвала боль на каждом шагу. Версии 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 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)
Примечания:
- В этот момент git будет жить в
/usr/local/bin
.
- Теперь у вас будет то же дерево, что и предыдущий шаг на
Ответ 3
Wincent Colaiuta поддерживает очень полезную в wincent.com/wiki, который является отличным источником информации о git
в Mac OS X.
В частности, см. эти две статьи:
Ответ 4
Меня отвели на этот вопрос, когда я googled для "docbook2x-texi: command not found", потому что у меня была эта проблема при построении 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).
Ответ 5
Я нашел это приятное решение для проблемы с цепочкой 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
Затем (как указывает Бобле), проверьте manpath Git:
echo $MANPATH
и при необходимости отрегулируйте:
Ответ 6
Случайная мысль; где установлены ваши Git manpages? Я предполагаю в /usr/local/git/man
. Если это так, проверьте, что это в вашем $MANPATH:
echo $MANPATH
Если у вас нет manpath Git, добавьте этот текст через 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
Ответ 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 существует script с именем build-docbook-catalog
. Инструмент, вероятно, пытался запустить автоматически, но когда я запускал его вручную, он терпел неудачу из-за не существующего каталога /etc/xml
.
Источник build-docbook-catalog
, вероятно, здесь, но я не могу подтвердить это прямо сейчас, так как у меня нет Windows или Доступен Cygwin.
Я понимаю, что этот вопрос уже давно ответил, но я наткнулся на эту страницу, ища ответ на мою проблему, поэтому, надеюсь, это сэкономит время для кого-то другого.