【问题标题】:Cannot install opendkim because cannot find bsd/string.h无法安装 opendkim,因为找不到 bsd/string.h
【发布时间】:2014-06-30 06:22:34
【问题描述】:

我尝试在 AWS 上安装 OpenDKIM 2.9.2 以生成 DKIM 公钥和私钥。当我在 opendkim 源代码文件夹下运行sudo ./configure --with-openssl=/usr/include/openssl 时,它给了我以下错误消息。

checking bsd/string.h usability... no
checking bsd/string.h presence... no
checking for bsd/string.h... no
checking for strlcat... no
checking for library containing strlcat... no
checking for library containing strlcpy... no
checking for strlcpy... no
checking for library containing strlcat... (cached) no
checking for library containing strlcpy... (cached) no
configure: error: no strlcpy/strlcat found

我搜索了系统,发现 string.h 文件位于以下文件夹中

/usr/include/bits/string.h
/usr/include/string.h
/usr/include/linux/string.h

我在/usr/include (/usr/include/bsd) 下创建了一个名为bsd 的文件夹,并创建了一个指向/usr/include/string.h 的软链接。然后安装过程可以找到string.h 文件,但它仍然找不到该文件中的strlcatstrlcpy 函数。所以我想我需要安装libbsd。然后我运行“whereis libbsd”并得到“/usr/lib64/libbsd.a”。所以我猜这个lib已经安装好了。

所以现在我不知道如何解决这个问题并从源代码安装 OpenDKIM。

请帮助我。提前致谢。

【问题讨论】:

    标签: linux email installation dkim


    【解决方案1】:

    你需要安装libbsd-dev

    如果你使用的是 ubuntu

    sudo apt-get install  libbsd-dev
    

    如果你使用的是centOS

    sudo yum install  libbsd-devel
    

    希望对你有帮助

    【讨论】:

    • 可能 AWS EC2 服务器没有使用 redhat yum 存储库列表。当我运行yum info libbsd-dev 时,YUM 找不到匹配项。有没有办法可以手动安装该库?
    • 我找到了 libbsd-dev 的源代码并安装了它。然后我再次安装opendkim,现在安装过程可以找到string.h文件,但仍然找不到功能。我猜.h 文件只定义了函数名称,并且因为 AWS EC2 使用 redhat 操作系统并且它不是 bsd 操作系统,所以没有这些函数的实现。我对吗?如果我无法解决这个问题,是否有用于 redhat 的 opendkim 包? (Linux 版本 3.10.35-43.137.amzn1.x86_64 (mockbuild@gobi-build-31002) (gcc 版本 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC)) #1 SMP Wed Apr 2 09:36 :59 UTC 2014)
    • 编译器好像找不到libbsd,请重新安装
    • 非常感谢您的回复。我从 libbsd-dev 检查了 string.h 文件的内容,它不包含函数体。我将尝试创建一个本地 repo 并让 yum 搜索依赖项。也许我没有安装依赖项。
    • 我已经想出办法了。因为我只需要生成密钥,所以我没有检查其他东西,而是“opendkim-genkey”命令。首先,我在 AWS EC2 上安装了“libbsd-0.6.0-3.fc21.x86_64.rpm”和“libbsd-devel-0.6.0-3.fc21.x86_64.rpm”,然后安装了“sendmail-devel”。最后,获取“opendkim-2.9.2.tar.gz”并像其他linux软件包一样安装它。然后“opendkim-genkey”命令已经安装并且可以工作了。
    【解决方案2】:

    我意识到已经选择了一个答案。但这对我在 DigitalOcean 上安装新的 CentOS 6.x 有效。

    1. 安装 RHEL EPEL 存储库

      wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

    2. libbsd-devel 的百胜

      yum install libbsd-devel

    参考: Installing RHEL EPEL Repo on Centos 5.x or 6.x, pkgs.org

    【讨论】:

      【解决方案3】:

      还有一个说明,即使这已关闭 - Amazon EC2 Linux 也需要 EPEL 存储库...

      yum-config-manager --enable epel > /dev/null
      yum update
      yum install libbsd-devel
      

      【讨论】:

        猜你喜欢
        • 2018-10-18
        • 2023-03-24
        • 1970-01-01
        • 2016-03-16
        • 1970-01-01
        • 2014-05-11
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多