【问题标题】:Problem installing zmq on amazon linux (unable to find uuid)在 amazon linux 上安装 zmq 时出现问题(无法找到 uuid)
【发布时间】:2012-09-28 20:43:08
【问题描述】:

我正在尝试在 EC2 上组装一个 AMI,目前在构建 0mq 时停滞不前。

最初,我在运行 ./configure 时遇到此错误

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

我通过 yum 安装了 e2fsprogs-devel 和 linux-utils,我相信其中包含所需的库,但仍然出现上述错误。我随后用 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

在这一点上我很困惑。

【问题讨论】:

    标签: linux amazon-ec2 uuid zeromq


    【解决方案1】:

    正如https://bugzilla.redhat.com/show_bug.cgi?id=576296#c0 中指出的那样,使用 libuuid-devel 而不是 uuid-devel,

    $ sudo yum install libuuid-devel
    

    这为我解决了丢失的 /usr/include/uuid/uuid.h 文件。

    【讨论】:

      【解决方案2】:

      最终,我通过运行满足了依赖关系

      $ yum install uuid-devel
      

      另外值得注意的是,为了让 libzmq 链接到其他需要它的程序(例如 Mongrel2),我必须添加该行

      /usr/local/lib
      

      到 /etc/ldconfig.so.conf 并运行

      $ ldconfig -v | grep zmq
      

      (如果您在输出中没有看到 libzmq.so 的条目,则说明有问题)

      【讨论】:

      • 在构建某些东西时通常需要 -devel(或 Debian 系统上的 -dev)包,而不是仅仅安装二进制文件。这些包的名称几乎总是与在名称上添加 -devel 或 -dev 的二进制包相同。
      【解决方案3】:

      或者,阅读documentation 安装 zeromq! :)

      确保已安装 libtoolautoconfautomake。 检查您的系统上是否安装了 uuid-dev 软件包、uuid/e2fsprogs RPM 或同等产品。 解压缩 .tar.gz 源存档。 运行./configure,然后运行make。 要安装 ØMQ 系统范围运行 sudo make install。 在 Linux 上,安装 ØMQ 后运行sudo ldconfig

      如前所述,在 Amazon Linux 上,您可以通过以下方式安装 deps:

      sudo yum install uuid uuid-devel
      

      注意说明还提到了要做的要求:

      sudo ldconfig
      

      安装后。

      【讨论】:

        猜你喜欢
        • 2018-12-16
        • 1970-01-01
        • 2011-01-14
        • 2013-08-07
        • 2020-08-28
        • 1970-01-01
        • 1970-01-01
        • 2014-04-06
        • 2017-12-19
        相关资源
        最近更新 更多