2009-09-15 12 views
5

Ich versuche, ZooKeeper auf einer RedHat Linux-Box zu bauen. (Genau das, was ZooKeeper ist wahrscheinlich nicht wichtig :-)Wie autoconf/automake auf Nicht-Standard-Pakete verwiesen wird

Wenn ich das Paket Anweisungen folgen, die ich erhalten:

$ 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 

ich nicht CPPPUNIT im Standard-Ort installieren können. (Keine root-Rechte hat, System Team hat eine Politik der „ohne Abweichungen“ von der Standardkonfiguration.)

Ich habe, um das Problem gearbeitet, indem die Verweise in meiner configure.ac Datei zu AM_PATH_CPPUNI T Auskommen , aber was ich wirklich gerne tun würde ist CPPPUNIT in meinem persönlichen Verzeichnis zu installieren und zeigen Sie darauf, aber ich bin nicht viel Fortschritt in herauszufinden, wie man das autoconf/auotmake System zu suchen, um es in ein nicht standardmäßiger Ort. Irgendwelche haben irgendwelche Hinweise auf wie man das macht?

+0

Sie sollten wahrscheinlich einen Fehlerbericht mit cppunit Datei, da sie auf autoNamensRaum sind stampfen. Namen (von m4-Makros) beginnend mit "AM_" sind für automake reserviert. –

+0

Wenn Sie nur das Paket installieren möchten, warum führen Sie autoreconf aus? Wenn Ihnen die Packaging-Anweisungen dies sagen und Sie nicht mit einem Tarball versorgen, der direkt erstellt werden kann, sollten Sie dies als Fehlerbericht ablegen. Sie sollten nicht verlangen, dass Sie sogar autoconf installiert haben, geschweige denn, dass Sie gebeten werden, es zu benutzen. –

Antwort

7

Sie möchten die Umgebungsvariable ACLOCAL_PATH setzen.

ACLOCAL_PATH="/home/YOU/path/to/share/aclocal" autoreconf -if 

Um herauszufinden, welches Verzeichnis Sie ACLOCAL_PATH an, dann müssen Sie das Verzeichnis, das die .M4 Datei enthält, die AM_PATH_CPPUNIT definiert Punkt benötigen.

1

Wenn die Pfadvariable nicht zu Ihrem Profil oder Ihrer Umgebung hinzugefügt werden kann ... oder Sie haben, können Sie versuchen, den Pfad vor dem Ausführen des Autoconf zu "exportieren". Dadurch wird diese Option gesetzt, zumindest für diese Sitzung ...

export ACLOCAL_PATH=/home/YOU/path/to/share/aclocal 

Auch, wenn es hart auf hart kommt, können Sie .. (Dies löscht Ihre Makefiles eines nicht funktionierenden Mist aus, dass die autoconf/configure Befehle links Sie mit ...)

make clean 

und Ihre „configure“ Skript öffnen, und es ist wenig Freunde (etwas namens ‚configure. *‘) .. in einem Texteditor. Dann, etwas vorsichtig "Finde und Ersetze" die Instanzen von was auch immer "Ding" ist verwirrend. Sobald Sie die Direktiven in den CoNfigure-Skripten behoben haben und sie erneut ausführen, werden Ihre Make-Dateien mit etwas Glück in Ihrer Umgebung funktionieren.

Hinweis: Dies ist, was ich auf meinem MAC, in der Regel für die Kompilierung von LINUX SW, die nicht getestet oder auf einem Mac ausgeführt werden soll. Das mag der falsche Weg sein, aber wenn es nicht viele Möglichkeiten gibt, muss man manchmal einfach reingehen und damit herumalbern.

5

In meinem Fall habe ich diesen Fehler wegen des fehlenden Pakets cppunit-devel bekommen. Nach der Installation dieses Pakets auf meinem Centos-Server von yum -y install cppunit-devel funktioniert alles gut.

+2

Ja, das hat mich dazu gebracht, mein verwandtes Problem zu beheben - Unter Ubuntu musste ich libcppunit-dev installieren. – Pierz

1

Bei mehreren Pfaden fügen Sie sie mit: separator hinzu. Like:

export ACLOCAL_PATH="/usr/share/aclocal/:/usr/local/share/aclocal" 
Verwandte Themen