Come puntare autoconf / automake a pacchetti non standard
-
07-07-2019 - |
Domanda
Sto cercando di costruire ZooKeeper su un box RedHat Linux. (Probabilmente ciò che ZooKeeper è non è importante :-)
Quando seguo le istruzioni del pacchetto, ottengo:
$ autoreconf -if
aclocal:configure.ac:33: warning: macro `AM_PATH_CPPUNIT' not found in library
aclocal:configure.ac:33: warning: macro `AM_PATH_CPPUNIT' not found in library
configure.ac:33: error: possibly undefined macro: AM_PATH_CPPUNIT
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
Non riesco a installare CPPPUNIT nella posizione standard. (Non hai i privilegi di root, team di sistema ha una politica di "nessuna deviazione" dalla configurazione standard.)
Ho risolto il problema commentando i riferimenti a
AM_PATH_CPPUNI
T nel mio file configure.ac, ma cosa mi piacerebbe davvero fare
è installare CPPPUNIT nella mia directory personale e puntare ad esso, ma lo sono
non fare molti progressi nel capire come dire autoconf / auotmake
sistema per cercarlo in un posto non standard. Qualcuno ha qualche suggerimento
come farlo?
Soluzione
Desideri impostare la variabile di ambiente ACLOCAL_PATH.
ACLOCAL_PATH="/home/YOU/path/to/share/aclocal" autoreconf -if
Per capire a quale directory devi puntare ACLOCAL_PATH, dovrai trovare la directory che contiene il file .m4 che definisce AM_PATH_CPPUNIT.
Altri suggerimenti
Nel mio caso, ho riscontrato questo errore a causa della mancanza del pacchetto cppunit-devel. Dopo aver installato questo pacchetto sul mio server centos con yum -y install cppunit-devel
, tutto funziona bene.
Se la variabile del percorso non può essere aggiunta al tuo profilo o ambiente .. o cosa hai, puoi provare a " esportare " il percorso prima dell'esecuzione di autoconf. Questo imposterà tale opzione, almeno per quella sessione ...
export ACLOCAL_PATH=/home/YOU/path/to/share/aclocal
Inoltre, se push arriva a spingere, puoi .. (Questo cancella i tuoi Makefile da qualsiasi merda non funzionante che i comandi autoconf / configure ti hanno lasciato con ...)
make clean
E apri " ./ configura " script, ed è piccoli amici (tutto ciò che si chiama " configure. * ") .. in un editor di testo. Quindi, in qualche modo con attenzione " Trova e sostituisci " le istanze di qualunque cosa " cosa " ti sta incasinando. Una volta riparate le direttive negli script coNfigure ed eseguite di nuovo ... con un po 'di fortuna i tuoi file make funzioneranno nel tuo ambiente.
Nota: questo è ciò che faccio sul mio MAC, di solito per la compilazione di LINUX SW NON testato o pensato per essere eseguito su un Mac. Questo potrebbe essere il modo sbagliato di farlo, ma quando non ci sono molte opzioni, a volte devi solo entrare e lasciarti andare.
In caso di percorsi multipli, aggiungili con: separator. Come:
export ACLOCAL_PATH="/usr/share/aclocal/:/usr/local/share/aclocal"