美文网首页
openldap、keepalived源码编译、kerberos

openldap、keepalived源码编译、kerberos

作者: _火山_ | 来源:发表于2020-11-04 16:57 被阅读0次

    开始编译前,可以先通过configure --help查看该软件都支持哪些参数,各个参数都有什么作用,如果缺少了必要的参数,编译出来的包可能会缺少某些功能。

    编译bdb

    编译bdb报错:
    1、所执行命令:
    ../dist/configure --prefix=/opt/test/bdb

    错误详情:

    configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details
    

    原因:缺少编译工具。

    解决方法:
    安装gcc工具。
    如x86下使用yum install -y gcc


    继续执行命令:
    ../dist/configure --prefix=/opt/test/bdb

    错误详情:
    configure: error: cannot guess build type; you must specify one

    解决方法:
    需要指定编译环境:
    如果是arm环境,需要指定arm-linux;
    如果是x86环境,可以不用指定;
    我本次是在arm环境编译的,所以需要指定arm-linux。
    --build=arm-linux
    --host=arm-linux

    完整命令:
    ../dist/configure --prefix=/opt/test/bdb --build=arm-linux --host=arm-linux

    2、make && make install
    3、将部署目录的文件打包,做成解压可用的绿色版。

    编译openldap

    openldap的编译依赖于bdb,所以openldap编译前需要先编译好bdb。

    1、所执行命令:
    ./configure --prefix=/home/security/software/openldap --enable-debug --enable-syslog --enable-proctitle --enable-ipv6 --enable-local --enable-modules --enable-bdb --enable-hdb --enable-ldap --enable-mdb --enable-overlays CPPFLAGS=-I/opt/test/bdb/include/ LDFLAGS=-L/opt/test/bdb/lib/ --libdir=/opt/test/bdb/lib/ --includedir=/opt/test/bdb/include/

    编译报错,错误详情:
    configure: error: could not locate libtool ltdl.h

    解决:
    安装 libtool-ltdl libtool-ltdl-devel就可以了。
    arm环境,可以使用apt源安装;
    x86环境,可以使用yum源安装。

    其实这种做法是治标不治本的,当一个新环境没有安装libtool-ltdl libtool-ltdl-devel依赖时,则编译后的openldap的包还是会缺相关的依赖:

    根本的解决方法是将libtool相关的依赖打到要编译的包里,openldap缺少libltdl.so文件的解决方法:
    1)编译libtool源码,把编译后得到的libltdl.so文件拷贝到openldap包的指定目录下;
    2)然后设置全局的环境变量export LD_LIBRARY_PATH="/xxx/xxx";
    3)或者设置临时环境变量,但是需要在每次执行slapd命令之前都得重新定义一遍:export LD_LIBRARY_PATH="/xxx/xxx";
    4)设置了环境变量后,再执行ldd openldap/libexec/slapd就可以正常找到libltdl.so文件了。

    2、所执行命令:
    ./configure --prefix=/home/security/software/openldap --enable-debug --enable-syslog --enable-proctitle --enable-ipv6 --enable-local --enable-modules --enable-bdb --enable-hdb --enable-ldap --enable-mdb --enable-overlays CPPFLAGS=-I/opt/test/bdb/include/ LDFLAGS=-L/opt/test/bdb/lib/ --libdir=/opt/test/bdb/lib/ --includedir=/opt/test/bdb/include/

    编译报错,错误详情:
    checking for Berkeley DB library and header version match... Berkeley DB version mismatch
    header: Berkeley DB 5.3.21: (May 11, 2012)
    library: Berkeley DB 5.3.28: (September 9, 2013)
    no
    configure: error: Berkeley DB version mismatch

    解决办法:
    export LD_LIBRARY_PATH="/opt/test/bdb/lib"

    3、之前编译openldap源码缺少密码策略模块的问题:
    原因:缺少编译参数,如上命令configure过程添加--enable-overlays这个参数可以解决。

    4、configure操作通过之后,执行命令:
    make depend

    5、执行:
    make && make install

    6、编译完成后,将安装目录下的文件全部打包,得到解压可用的绿色版组件包。


    keepalived编译

    1、./configure --prefix=/opt/xinghai/keepalived
    注:本过程缺少参数,导致编译后日志配置不生效;需要加参数,所加参数为:--enable-log-file;
    完整命令为:
    ./configure --prefix=/opt/xinghai/keepalived --enable-log-file
    此处执行报错了:
    关键错误:
    “configure: error: libnfnetlink headers missing”
    错误详情:
    checking for nl_socket_modify_cb in -lnl... yes
    checking for linux/rtnetlink.h... yes
    checking libnfnetlink/libnfnetlink.h usability... no
    checking libnfnetlink/libnfnetlink.h presence... no
    checking for libnfnetlink/libnfnetlink.h... no
    configure: error: libnfnetlink headers missing
    解决方法:
    安装libnfnetlink-devel依赖;
    arm环境选择apt源安装;
    x86环境选择yum源安装;
    如果不想通过源安装,可自行下载rpm包安装。

    2、make && make install

    3、编译完成后,将安装目录下的文件全部打包,得到解压可用的绿色版组件包。


    kerberos源码编译

    1、./configure --prefix=/home/security/software/kerberos --enable-dns-for-realm
    --enable-dns-for-realm 支持ipv6的解析

    2、make && make install

    3、编译完成后,将安装目录下的文件全部打包,得到解压可用的绿色版组件包。

    相关文章

      网友评论

          本文标题:openldap、keepalived源码编译、kerberos

          本文链接:https://www.haomeiwen.com/subject/codivktx.html