2009-05-22 26 views
14

Sto cercando di installare Git su Mac OS X Leopard. Sto cercando di evitare la rotta MacPorts/Fink. Sto anche cercando di evitare lo installer su Google perché sono arrivato molto lontano per conto mio, ma se devo devo andare avanti e scaricare il programma di installazione.Installazione di Git su OS X

In ogni caso, ho installato Git. /usr/local/bin/git. Il problema è che nessuna documentazione è stata installata e il Makefile non si è mai preso la briga di dirmelo. Così ora ho Git seduto in attesa di essere usato mentre provo ad installare le manpage per questo.

Per qualche motivo orribile, le pagine man sono mantenute come file di testo, che devono essere elaborati dal programma AsciiDoc, che ho prontamente installato. Ma AsciiDoc converte questi file di testo in XML.

Quindi Git utilizza un altro programma chiamato xmlto per convertire l'XML che AsciiDoc sputa nelle pagine di testo (credo - non sono ancora arrivato così lontano). Il problema è che ottengo questo errore ogni volta che si avvia quel passo (prima riga viene emesso dal make, resto è errore):

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" 

Quindi, in pratica si va solo attraverso ogni file e mi dà questo errore per tutti loro .

Ho provato a un certo punto per scaricare il file http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd, inserirlo nella directory e quindi modificare tutti i riferimenti nei file XML nel file nella directory, ma questo mi ha dato più e strani errori. Se avessi una soluzione normale per funzionare, potrebbe comunque darmi quegli strani errori, il che significa che tutto è fregato e che userò semplicemente il programma di installazione di Google.

Tuttavia, ho ottenuto (inciampato) così lontano da solo, e sento che questo è un ultimo passo prima di un sospiro di sollievo e la possibilità di usare Git. Quindi voglio fare un ultimo sforzo per capire cosa c'è che non va. E lo "sforzo estremo" significa "Chiedi allo Stack Overflow".

Quindi, se qualcuno potesse darmi qualche idea su cosa significhi quell'errore e perché si stia verificando (e cosa potrei essere in grado di fare per risolverlo), sarebbe fantastico. In caso contrario, proverò con il programma di installazione di Google.

risposta

9

Forse non è la risposta che si desidera, ma si potrebbe semplicemente scaricare il git-manpages-*.tar.gz e git-html-*.tar.gz che vengono pubblicati insieme con la fonte. Sono pubblicati perché la toolchain di asciidoc è nota per essere un po 'fragile e uno sforzo considerevole per far installare e organizzare tutto.

È necessario, credo, possibilmente un intero pacchetto di file di supporto per docbook. Forse anche alcuni fogli di stile ... anche se se hai installato xml devi avere tutto questo.

+0

A questo punto, la risposta che voglio è la risposta che funziona meglio. Non volevo dover reinstallare Git solo per ottenere le manpage, e questo ha funzionato perfettamente. Vorrei aver controllato il loro indice prima. In breve, grazie! –

+1

araqnid, il nome dell'archivio della documentazione HTML è in realtà 'git-htmldocs - *. Tar.gz', non' git-html- * tar.gz'. (Vedi http://www.kernel.org/pub/software/scm/git/.) Forse i manutentori del repository Git hanno rinominato i file da quando hai scritto la tua risposta. –

12

Recentemente ho installato d git-1.6.4.2 su CentOS 5.3. Costruire git non è stato un problema, ma il tentativo di installare i documenti di accompagnamento ha prodotto dolore ad ogni passo. Le versioni di xmlto e asciidoc da repository yum erano vecchie, quindi li ho creati dal sorgente.Quindi xmlto (tramite xmllint) si è lamentato per la mancanza di DocBook 4.5 e alla fine sono riuscito a inserirli manualmente.

Ottenere fino a questo punto, la build doc trundles felicemente insieme fino

 DB2TEXI user-manual.texi 
/bin/sh: line 1: docbook2x-texi: command not found 
make[1]: *** [user-manual.texi] Error 127

Ma DocBook2X è installato! Ah, il comando è diverso:

$ rpm -q --filesbypkg docbook2x | grep bin.\*texi 
docbook2x     /usr/bin/db2x_docbook2texi 
docbook2x     /usr/bin/db2x_texixml

Anche il tentativo di eseguire manualmente, ho ancora trovato nessuna gioia:

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

La parte inferiore della INSTALL parla di un paio di comode make obiettivi: rapido-install- man e quick-install-html. Si scopre, per esempio, che

$ make prefix=/usr/local quick-install-man

è equivalente a

$ ./Documentation/install-doc-quick.sh origin/man /usr/local/share/man

che ha un paio di problemi: abbiamo bisogno di un repo git di utilizzare questi obiettivi, e le teste di le filiali man e html potrebbero non corrispondere alla versione che si sta installando.

Così, un bootstrap quick-and-dirty:

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)

Note:

  1. A questo punto, git vivrà in /usr/local/bin.
  2. Ora avrete lo stesso albero del passaggio precedente su un detached head.
  3. SHA-1 deriva dall'ultimo commit 1.6.4.2 in git log origin/man.
  4. Come sopra, eccetto da origin/html.
  5. Utile!
0

Pensiero casuale; dove sono installate le tue manpage Git? Sto indovinando in /usr/local/git/man. In tal caso, verificare che questo è nel vostro $ MANPATH:

echo $MANPATH 

Se non si dispone del manpath git in là, aggiungere questo testo via TextMate o vi o qualcosa da ovunque tu hai la tua $PATH (ad esempio, in ~/.bash_profile);

export MANPATH=/usr/local/git/man:$MANPATH 

In alternativa basta usare questo comando dalla shell:

echo 'export MANPATH=/usr/local/git/man:$MANPATH' >> ~/.bash_profile 

Proprio avuto questo problema io stesso dopo aver fatto il Hivelogic installare Snow Leopard, quindi HTH

2

Ho appena trovato questo bel solution to the Git manpages chain problem on OS X.Per comodità, qui è (sostituire: git-manpages-1.6.6.tar.bz2 con la versione di git, e /usr/local/ ovunque è installato il 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 

Poi, (come sottolinea Boblet), verificare la manpath git:

echo $MANPATH 

e regolare, se necessario:

+1

Grazie - chiaro, intelligibile, funziona. – jongala

0

Avevo un problema di build simile su Cygwin all'inizio di questa settimana (errore nel tentativo di caricare l'entità di rete), e attraverso un po 'di ricerca sono riuscito a scoprire che il problema era la mancanza di un catalogo xml. Su Cygwin c'è uno script chiamato build-docbook-catalog. Probabilmente lo strumento stava tentando di eseguire automaticamente, ma quando l'ho eseguito manualmente, non funzionava a causa della directory /etc/xml non esistente.

La fonte per build-docbook-catalog è probabilmente here, ma non posso confermarlo in questo momento poiché non ho Windows o Cygwin disponibili.

Mi rendo conto che questa domanda ha avuto risposta da tempo, ma mi sono imbattuto in questa pagina mentre cercavo una risposta al mio problema, quindi spero che questo faccia risparmiare tempo a qualcun altro.

3

Ho guidato a questa domanda quando ho cercato su google per "DocBook2X-texi: comando non trovato" perché ho avuto questo problema, mentre la costruzione git 1.8.2.1 ottenuto dal repository git, con:

make prefix=/my_prefix/git all doc info 

Così, seguendo http://git-scm.com/book/en/Getting-Started-Installing-Git ho lanciato:

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 

ma per il make per completare ho dovuto installare i prossimi pacchetti:

yum install asciidoc xmlto docbook2X 

Come indicato dalla risposta più letta, l'ultima fornisce il comando db2x_docbook2texi ma non il necessario docbook2x-texi. Tuttavia, un semplice link simbolico risolto il problema:

ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi 

Ora, il make era successo e ho avuto modo di installare git con:

make prefix=/my_prefix/git install install-doc install-html install-info 

Questa soluzione è stata testata sotto Scientific Linux 6.1 (Carbon).

+0

Grazie, questo è molto utile. Su Mac OS X 10.5.8, i percorsi sarebbero 'ln -s/usr/local/bin/db2x_docbook2texi/usr/local/bin/docbook2x-texi' –

+0

Grazie, grazie! Il link simbolico che hai citato ha permesso a Git di essere installato su CentOS 6.x. –