2009-09-15 25 views
5

Tôi đang cố gắng xây dựng ZooKeeper trên một hộp RedHat Linux. (Chính xác những gì Zookeeper là có lẽ không quan trọng :-)Cách trỏ autoconf/automake đến các gói không chuẩn

Khi tôi làm theo hướng dẫn gói, tôi nhận được:

$ 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 

Tôi không thể cài đặt CPPPUNIT ở nơi chuẩn. (Đừng có quyền root, hệ thống đội có một chính sách "không có độ lệch" từ cấu hình tiêu chuẩn.)

Tôi đã làm việc xung quanh vấn đề bằng cách cho ý kiến ​​ra các tham chiếu đến AM_PATH_CPPUNI T trong file configure.ac của tôi , nhưng những gì tôi thực sự muốn làm là cài đặt CPPPUNIT trong thư mục cá nhân của tôi và trỏ đến nó, nhưng tôi là không có nhiều tiến bộ trong việc tìm ra cách để báo cho hệ thống autoconf/auotmake tìm kiếm một nơi không chuẩn. Bất kỳ ai có bất kỳ gợi ý nào về cách thực hiện điều đó?

+0

Bạn có thể nên gửi báo cáo lỗi với cppunit, vì chúng đang dẫm lên không gian tên của tự động. Tên (của m4 macro) bắt đầu "AM_" được dành riêng để sử dụng bởi tự động. –

+0

Nếu bạn chỉ muốn cài đặt gói, tại sao bạn chạy autoreconf? Nếu hướng dẫn đóng gói của họ đang yêu cầu bạn làm điều đó thay vì cung cấp cho bạn một tarball có thể được xây dựng trực tiếp, thì bạn nên gửi nó như là một báo cáo lỗi. Họ không nên yêu cầu bạn thậm chí phải cài đặt autoconf, ít được yêu cầu bạn sử dụng nó. –

Trả lời

7

Bạn muốn đặt biến môi trường ACLOCAL_PATH.

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

Để tìm ra thư mục nào bạn cần trỏ đến ACLOCAL_PATH tại, bạn sẽ phải tìm thư mục chứa tệp .m4 định nghĩa AM_PATH_CPPUNIT.

1

Nếu biến đường dẫn không thể được thêm vào hồ sơ của bạn, hoặc môi trường .. hoặc những gì có bạn, bạn có thể thử "xuất" đường dẫn trước khi chạy autoconf. Điều này sẽ thiết lập tùy chọn đó, ít nhất là cho phiên ...

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

Ngoài ra, nếu nói đến xô đẩy, bạn có thể .. (Điều này gạt bỏ Makefiles của bạn của bất kỳ không làm việc tào lao mà autoconf/configure các lệnh đã để lại cho bạn ...)

make clean 

Và mở tập lệnh "./configure" và bạn bè nhỏ (bất kỳ tên nào "cấu hình. *") .. trong trình chỉnh sửa văn bản. Sau đó, hơi cẩn thận "Tìm và thay thế" các trường hợp của bất cứ điều gì "Thing" là rối tung bạn lên. Một khi bạn sửa chữa các chỉ thị iN các kịch bản coNfigure, và chạy chúng một lần nữa ... với bất kỳ may mắn của bạn làm cho các tập tin sẽ làm việc trong môi trường của bạn.

Lưu ý: Đây là những gì tôi thực hiện trên MAC của mình, thường để biên dịch LINUX SW không được kiểm tra hoặc chạy trên máy Mac. Đây có thể là cách sai lầm để làm điều đó, nhưng khi không có nhiều lựa chọn, đôi khi bạn chỉ cần có để có được ở đó và muck với nó.

5

Trong trường hợp của tôi, tôi gặp lỗi này vì thiếu gói cppunit-devel. Sau khi cài đặt gói này trên máy chủ centos của tôi theo yum -y install cppunit-devel, mọi thứ hoạt động tốt.

+2

Có điều này đã dẫn tôi đến sửa chữa vấn đề liên quan của tôi - Trên Ubuntu tôi cần cài đặt libcppunit-dev. – Pierz

1

Trong trường hợp có nhiều đường dẫn, hãy thêm chúng bằng: dấu phân cách. Giống như:

export ACLOCAL_PATH="/usr/share/aclocal/:/usr/local/share/aclocal" 
Các vấn đề liên quan