2011-08-04 12 views
6

Próbuję połączyć AMI na EC2, a obecnie utknąłem na budowaniu 0mq.Problem z instalacją zmq na amazon linux (nie można znaleźć uuid)

początkowo, mam ten błąd podczas uruchamiania ./configure

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

zainstalowaniu e2fsprogs-devel i linux-utils poprzez yum, które moim zdaniem zawarte wymaganą bibliotekę, ale wciąż mam błąd powyżej. Następnie zainstalowałem uuid-devel z yum i nie mam już więcej.

Potem stworzyliśmy link poniżej:

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

i teraz ./configure kończy się szczęśliwie, ale pojawia się błąd, gdy biegnę zrobić

[...] 
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 

Poniżej jest początkiem /usr/include/uuid.h, jeśli jest to przydatne.

#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 

Jestem dość dobrze zaskoczony w tym momencie.

Odpowiedz

7

ostatecznie, że spełnione zależność uruchamiając

$ yum install uuid-devel 

Warto również zauważyć, że aby uzyskać libzmq połączyć się z innymi programami, które musiały go wzdłuż linii (Mongrel2, na przykład), musiałem dodać linia

/usr/local/lib 

do /etc/ldconfig.so.conf i uruchomić

$ ldconfig -v | grep zmq 

(i f nie widać wpis dla libzmq.so na wyjściu, od czegoś za)

+2

Powszechnie potrzeba pakietu -devel (lub -dev na systemach Debian) podczas budowania czegoś, a nie po prostu instalowania plików binarnych. Pakiety te są prawie zawsze nazywane tak samo jak pakiet binarny z -devel lub -dev dodanym do nazwy. –

0

Alternatywnie, przeczytaj documentation o instalacji zeromq! :)

tj

Upewnij się, że libtool, autoconf, automake są zainstalowane. Sprawdź, czy zainstalowano pakiet uuid-dev, uuid/e2fsprogs RPM lub odpowiednik w systemie. Rozpakuj archiwum źródłowe .tar.gz. Uruchom ./configure, a następnie make. Aby zainstalować cały system ØMQ sudo make install. W systemie Linux uruchom po zainstalowaniu ØMQ sudo ldconfig.

Jak już wspomniano, na Amazon Linux, można zainstalować deps wykonując:

sudo yum install uuid uuid-devel 

nbinstrukcje zawierają również wymóg wykonania:

sudo ldconfig 

po instalacji.