《Linux/UNIX OpenLDAP实战指南》——2.3 Linux平台安装

简介: 默认OpenLDAP采用Berkeley DB数据库作为后端存储引擎,而且OpenLDAP对Berkey DB的版本有一定要求,以OpenLDAP 2.4软件版本为例,需要Berkeley DB 4.4版本以上,所以在编译OpenLDAP源码包时需要先下载Brekeley DB源码包,并进行编译安装即可。

本节书摘来自异步社区《Linux/UNIX OpenLDAP实战指南》一书中的第2章,第2.3节,作者:郭大勇著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.3 Linux平台安装

2.3.1 yum用途及语法
yum仓库主要用于解决软件包依赖关系(这里以本地yum源为例进行配置)。

yum仓库配置文件的语法及参数如下。

1.yum配置文件语法
yum配置文件语法如下。

# cat /etc/yum.repos.d/define.repo
[repo_name]
name=
baseurl=
enabled=
gpgcheck=
gpgkey=

2. yum配置文件语法解释
yum配置文件的语法解释如下。

[repo_name]
含义:[  ]内是yum仓库的名称,用于区别不同yum仓库及功能
name=yum server    
含义:name=后面跟的是仓库描述的信息
baseurl=path  
含义:baseurl=后面跟仓库的路径
enabled=[0|1]   
含义:enabled=后面跟的数字表示是否启用该仓库,[1]表示启用,[0]表示禁用
gpgcheck=[0|1]
含义:gpgcheck=后面跟的数字表示是否检查软件包的md5sum,用于验证软件包的安全性,[1]表示检查,[0]表示不检查。
gpgkey=path 
含义:gpgkey=后面跟软件包所使用的签名,一般启用gpgcheck时才配置。例如:
gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

3.yum基本命令参数介绍
读者可以通过man yum来详细了解每个参数的具体说明,在此不做过多解释。

* install package1 [package2] [...]  
软件包的安装
* update [package1] [package2] [...]             
软件包的更新
* check-update    
检测最新的软件包         
* remove | erase package1 [package2] [...]
卸载安装的软件包
* list [...] 
查看安装的软件包列表
* info [...]                                    
查看软件包的相关信息
* provides | whatprovides feature1 [feature2] [...]
查看文件由哪个软件包提供
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 
清除缓存信息
* makecache    
重建缓存文件,一般新建yum仓库时以及使用clean参数时,使用makecache重建缓存
* groupinstall group1 [group2] [...]  
以组的形式安装软件包组件                     
* groupupdate group1 [group2] [...]                   
更新组相关软件包
* grouplist [hidden] [groupwildcard] [...]                
获取已安装和没安装的软件包组件
* groupremove group1 [group2] [...]          
移除软件包组件
* groupinfo group1 [...]               
查看软件包组件相关信息  
* search string1 [string2] [...]                        
以软件包名称在仓库中进行搜索
* localinstall rpmfile1 [rpmfile2] [...]       
(maintained for legacy reasons only - use install)
本地安装软件包
* localupdate rpmfile1 [rpmfile2] [...]          
本地更新软件包

2.3.2 以软件包形式安装
为了简化OpenLDAP的安装复杂度,作者建议使用光盘自带的rpm软件包安装。除非有特殊需求,需要定制安装,才使用编译方式安装OpenLDAP。

1.安装操作步骤
要以软件包rpm形式安装OpenLDAP,步骤如下。

1)配置yum源。

2)安装OpenLDAP组件。

3)初始化OpenLDAP配置。

4)加载slapd进程。

5)获取slapd信息。

2.配置yum仓库
要配置yum仓库,需要先挂载光盘镜像,命令如下。

# mount /dev/cdrom /mnt
配置yun仓库的命令如下:

# cat  >>  /etc/yum.repos.d/rhel-source.repo << EOF
[source-cdrom]
name=software
baseurl=file:///mnt
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
EOF

3.清除缓存并创建缓存
清除和创建缓存的命令如下:

# yum clean all && yum makecache
4.安装OpenLDAP组件
安装OpenLDAP组件的命令如下。

# yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap –y

此时通过光盘自带的软件包安装OpenLDAP组件完成。

5.初始化OpenLDAP配置
初始化OpenLDAP配置的命令如下:

# cp /usr/share/openldap-servers/DB_CONFIG.example   /var/lib/ldap/DB_CONFIG
# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
# chown –R ldap.ldap /etc/openldap/
# chown –R ldap.ldap /var/lib/ldap

6.启动LDAP进程slapd
OpenLDAP软件安装完成后,要使用它,需要启动slapd进程来调用程序:

# service slapd restart
Stopping slapd:                                            [FAILED]
Starting slapd:                                            [  OK  ]
# chkconfig slapd on

7.获取OpenLDAP默认监听的端口
要获取OpenLDAP默认监听的端口,命令如下:

[root@mldap01 ~]# netstat -ntplu | grep -i :389
tcp        0      0 0.0.0.0:389         0.0.0.0:*       LISTEN      1567/slapd          
tcp        0      0 :::389              :::*            LISTEN      1567/slapd

默认OpenLDAP服务所使用的端口为389,此端口采用明文传输数据,数据信息得不到保障。所以可以通过配置CA及结合TLS/SASL实现数据加密传输,所使用端口为636,后面章节会详细介绍实现过程。

8.获取OpenLDAP进程的状态
要获取OpenLDAP进程的状态,命令如下:

[root@mldap01 ~]# ps aux | grep slapd | grep -v grep
ldap      1567  0.0  1.8 1128948 71880 ?       Ssl  Nov27   0:07 /usr/sbin/slapd -h  ldap:/// ldapi:/// -u ldap

至此,通过光盘自带的软件包安装OpenLDAP就结束了。后续的操作就是配置并添加条目,这部分在本章最后通过案例进行介绍。

2.3.3 通过源码编译安装
1.通过源码编译安装OpenLDAP软件准备工作
由于编译安装OpenLDAP需要数据库支持,因此OpenLDAP软件后端数据库可采用Berkeley DBBDB、Oracle、MySQL、MariaDB、GDBM等数据库软件实现数据的存储。默认OpenLDAP采用Berkeley DB数据库作为后端存储引擎,而且OpenLDAP对Berkey DB的版本有一定要求,以OpenLDAP 2.4软件版本为例,需要Berkeley DB 4.4版本以上,所以在编译OpenLDAP源码包时需要先下载Brekeley DB源码包,并进行编译安装即可。

Berkeley DB是由美国Sleepycat Software公司开发的开源数据库系统,具有高性能、嵌入式数据库编程库,可存取任意类型的键(key)/值(value)对,一键可以存储多个值,且支持在线并发量大的数据查询请求。

2.安装步骤
根据环境需求,读者可以下载相应的源码包进行编译安装,作者所使用的系统为红帽Linux 6.5版本,Berkey DB源码包版本为4.6.21。安装步骤如下。

1)获取源码包。

2)安装编译所依赖的环境。

3)解压并定义安装属性。

4)编译及编译安装源码包。

5)添加库文件及头文件。

3.编译安装Berkeley DB源码包
获取Brekeley DB源码包。
可以从http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads获取Berkeley DB源码包。

要点:
在编译安装任何开源软件时,解压完成后都会在相应的目录下生成INSTALLT和README文档,里面介绍安装方法以及注意事项,同样可以到官方文档查看软件的安装手册,提高用户安装的灵活性,降低编译复杂度。

编译安装前,先通过yum安装并解决编译OpenLDAP及BDB所依赖的软件包。
# yum install libtool-ltdl libtool-ltdl-devel gcc openssl openssl-devel -y 安装依赖的软件包
解压db-4.6.21软件包至指定目录。
# tar xfzv db-4.6.21.tar.gz -C /usr/local/src
解压Berkeley DB源码包到/usr/local/src目录下,此时会在该目录下生成build_unix目录,然后执行下列命令进行配置安装即可。

定义编译安装属性。

# cd /usr/local/src/db-4.6.21/build_unix  &&  mkdir  /usr/local/BDB
# ../dist/configure  --prefix=/usr/local/BDB
================================================================== //华丽的省略线
configure: creating ./config.status
config.status: creating Makefile
config.status: creating db_cxx.h
config.status: creating db_int.h
config.status: creating clib_port.h
config.status: creating include.tcl
config.status: creating db.h
config.status: creating db_config.h

通过--prefix指定Berkeley DB安装路径,读者可通过../dist/configure –help命令获取Berkeley DB详细的配置选项。

编译定义安装属性及编译安装到指定的属性中。

# make && make install     //编译并进行安装
========================================================================= //华丽的分割线
Installing DB utilities: /usr/local/BDB//bin ...
cp -p .libs/db_archive /usr/local/BDB//bin/db_archive
cp -p .libs/db_checkpoint /usr/local/BDB//bin/db_checkpoint
cp -p .libs/db_codegen /usr/local/BDB//bin/db_codegen
cp -p .libs/db_deadlock /usr/local/BDB//bin/db_deadlock
cp -p .libs/db_dump /usr/local/BDB//bin/db_dump
cp -p .libs/db_hotbackup /usr/local/BDB//bin/db_hotbackup
cp -p .libs/db_load /usr/local/BDB//bin/db_load
cp -p .libs/db_printlog /usr/local/BDB//bin/db_printlog
cp -p .libs/db_recover /usr/local/BDB//bin/db_recover
cp -p .libs/db_stat /usr/local/BDB//bin/db_stat
cp -p .libs/db_upgrade /usr/local/BDB//bin/db_upgrade
cp -p .libs/db_verify /usr/local/BDB//bin/db_verify
Installing documentation: /usr/local/BDB//docs ...

添加Berkeley DB相关库文件。
添加的库文件和头文件主要作为其他程序编译安装所调用的库文件和头文件。

# cat >> /etc/ld.so.conf.d/bdb.conf << EOF
/usr/local/BDB/lib/
EOF
# ldconfig  –v     //重新让内核读取库文件

通过在ld.so.conf.d目录下创建以.conf配置文件加载Berkeley DB的库文件,同样也可在ld.so.conf里面添加配文件进行加载,ld.so.conf是系统动态链接库配置文件。配置完成后,使用ldconfig –v重新加载库文件,使系统内核重新识别,然后在编译OpenLDAP时,才能找到Berkeley DB相关库文件。

添加Berkeley DB相关头文件。

# ln -sv /usr/local/BDB/include /usr/include/bdb
`/usr/include/bdb' -> `/usr/local/BDB/include'

至此,恭喜您!Berkeley DB编译安装到此就完成了。下面我们一起学习如何编译安装OpenLDAP软件。但读者一定注意,在编译安装OpenLDAP软件时,要确认后端数据库是否安装,例如Berkeley DB,否则会提示找不到数据库等错误。

4.编译安装OpenLDAP源码包
获取OpenLDAP源码包。
读者可通过http://www.openldap.org/software/download/获取OpenLDAP源码包。

解压OpenLDAP源码包至指定目录。

# tar xf openldap-2.4.15.tgz  -C /usr/local/src/
# cd /usr/local/src/openldap-2.4.15/
# ldconfig –v

编译安装OpenLDAP软件时,需要输出库文件(include和lib的路径),否则编译时会提示BDB数据库版本不兼容而中断编译操作。

定义编译安装属性。

# ./configure --prefix=/usr/local/openldap2.4
Making servers/slapd/backends.c
    Add config ...
    Add ldif ...
    Add monitor ...
    Add bdb ...
    Add hdb ...
    Add relay ...
Making servers/slapd/overlays/statover.c
    Add seqmod ...
    Add syncprov ...
Please run "make depend" to build dependencies
# make depend

编译安装OpenLDAP软件。

# make  && make test &> /dev/null && make install  
installing slapacl.8 in /usr/local/openldap2.4/share/man/man8
installing slapadd.8 in /usr/local/openldap2.4/share/man/man8
installing slapauth.8 in /usr/local/openldap2.4/share/man/man8
installing slapcat.8 in /usr/local/openldap2.4/share/man/man8
installing slapd.8 in /usr/local/openldap2.4/share/man/man8
installing slapdn.8 in /usr/local/openldap2.4/share/man/man8
installing slapindex.8 in /usr/local/openldap2.4/share/man/man8
installing slappasswd.8 in /usr/local/openldap2.4/share/man/man8
installing slaptest.8 in /usr/local/openldap2.4/share/man/man8
make[3]: Leaving directory `/usr/local/src/openldap-2.4.15/doc/man/man8'

make[2]: Leaving directory `/usr/local/src/openldap-2.4.15/doc/man'

make[1]: Leaving directory `/usr/local/src/openldap-2.4.15/doc'

执行make test时,可能需要花点时间进行检测,如果存在错误make test会提示错误类型。所以作者建议读者在编译安装时,一定要执行make test进行检测,从而保证软件的稳定性和可靠性。

添加OpenLDAP库文件。

# cat >> /etc/ld.so.conf.d/ldap.conf << EOF
/usr/local/openldap2.4/lib/
EOF
# ldconfig  –v

添加OpenLDAP头文件。

# ln -sv /usr/local/openldap2.4/include /usr/include/ldap2.4
`/usr/include/ldap2.4' -> `/usr/local/openldap2.4/include'

至此,恭喜您!OpenLDAP编译安装就完成了。

2.3.4 错误分析、解决
如果在执行make时报如下错误,可以通过以下方法进行解决。

getpeereid.c: In function `lutil_getpeereid’:
getpeereid.c:65: error: storage size of ‘peercred’ isn’t known
make[2]: *** [getpeereid.o] Error 1
make[2]: Leaving directory `/usr/local/src/openldap-2.4.15/libraries/liblutil'
make[1]: *** [all-common] Error 1
make[1]: Leaving directory `/usr/local/src/openldap-2.4.15/libraries'
make: *** [all-common] Error 1

错误分析
在编译时没有输出库文件和lib的路径,所以在编译时会出现Error,可通过下面的方法进行解决。

解决方法

# export CPPFLAGS="-I/usr/local/BDB/include  -D_GNU_SOURCE"
# make    //编译前准备相关属性,如果没有配置任何属性信息,就会使用默认定义的属性
# make install    //编译安装
相关文章
|
13天前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
15天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
100 20
|
9天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
98 7
|
16天前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
34 2
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
73 4
|
2月前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
221 0
|
Unix Linux 运维
《Linux/UNIX OpenLDAP实战指南》——1.9 本章总结
本章介绍了OpenLDAP产品、功能及优点、适用场景,让读者慢慢对陌生而强大的自动化账号管理软件进行系统的了解。并针对OpenLDAP的组织架构、OpenLDAP关键术语(schema、objectClass、attribute、LDIF)及相关实现方式进行详细介绍。
1587 0
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
124 8
|
2月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
492 6
|
2月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
100 3