2011-08-04 44 views
6

我試圖在EC2上安裝一個AMI,並且目前在建立0mq時停滯不前。在亞馬遜linux上安裝zmq時出現的問題(找不到uuid)

起初,我同時運行./configure

checking for uuid_generate in -luuid... no 
configure: error: cannot link with -luuid, install uuid-dev. 

我安裝了這個錯誤的e2fsprogs-devel的和linux-utils的通過yum,我相信包含所需的庫,但仍得到了上述錯誤。隨後我用yum安裝uuid-devel並沒有進一步的瞭解。

然後,我創建瞭如下鏈接:

sudo ln -s /lib64/libuuid.so.1.3.0 /lib64/libuuid.so 

現在的./configure愉快地完成,但是當我運行make

[...] 
CXX libzmq_la-signaler.lo 
CXX libzmq_la-socket_base.lo 
In file included from socket_base.cpp:50: 
uuid.hpp:31:23: error: uuid/uuid.h: No such file or directory 
In file included from socket_base.cpp:50: 
uuid.hpp:92: error: 'uuid_t' in namespace '::' does not name a type 
make[2]: *** [libzmq_la-socket_base.lo] Error 1 
make[2]: Leaving directory `/home/this/infrastructure/zeromq2-2/src' 
make[1]: *** [all] Error 2 
make[1]: Leaving directory `/home/this/infrastructure/zeromq2-2/src' 
make: *** [all-recursive] Error 1 

以下是初,我得到一個錯誤/usr/include/uuid.h,如果這很有用。

#ifndef __UUID_H__ 
#define __UUID_H__ 

/* workaround conflicts with system headers */ 
#define uuid_t  __vendor_uuid_t 
#define uuid_create __vendor_uuid_create 
#define uuid_compare __vendor_uuid_compare 
#include <sys/types.h> 
#include <unistd.h> 
#undef uuid_t 
#undef uuid_create 
#undef uuid_compare 

在這一點上,我很不錯。

回答

7

最終,我通過運行

$ yum install uuid-devel 

也滿足值得注意的依賴是讓libzmq鏈接到一個需要它的路線的其他程序(Mongrel2,例如),我不得不添加行

/usr/local/lib 

到/etc/ldconfig.so.conf和運行

$ ldconfig -v | grep zmq 

(ⅰ F你沒有看到在輸出libzmq.so的條目,有什麼地方關閉)

+2

當您構建某些東西時,通常需要-devel(或Debian系統上的-dev)包,而不是僅安裝二進制文件。這些軟件包幾乎總是與名稱上添加-devel或-dev的二進制軟件包命名相同。 –

0

或者,閱讀安裝zeromq的documentation! :)

確保libtoolautoconfautomake安裝。 檢查系統中是否安裝了uuid-dev軟件包,uuid/e2fsprogs RPM或等效軟件。 解壓縮.tar.gz源文件。 運行./configure,然後是make。 安裝ØMQ系統範圍的運行sudo make install。 在Linux上,安裝ØMQ後運行sudo ldconfig

如前所述,在亞馬遜的Linux,你會做安裝DEPS:

sudo yum install uuid uuid-devel 

注:說明中還提到要做的事情:

sudo ldconfig 

安裝後也是如此。