我正在按照https://www.openldap.org/doc/admin24/quickstart.html在 RedHat 上安装 OpenLDAP。一切顺利,直到第 9 步:
导入配置数据库现在您可以通过运行以下命令导入配置数据库以供 slapd(8) 使用:
su root -c /usr/local/sbin/slapadd -n 0 -F /usr/local/etc/slapd.d -l /usr /local/etc/openldap/slapd.ldif
然后我收到错误:su: invalid option -- 'n'
然后我尝试仅运行,/usr/local/sbin/slapadd -n 0 -F /usr/local/etc/slapd.d -l /usr/local/etc/openldap/slapd.ldif
因为我已经以 root 用户身份登录,然后我收到此错误:
5bcca422 invalid config directory /usr/local/etc/slapd.d, error 2
slapadd: bad configuration directory!
我的安装前缀是默认的/usr/local/
我发现没有slapd.d
目录/usr/local/etc
。问题出在哪里?谢谢!
附加信息:当我make
在步骤5中运行时,出现错误:fatal error:ltdl.h: No such file or directory
,然后我用它安装它yum install libtool-ltdl-devel
,并重复步骤5。当我在步骤6中运行make test时,没有错误。我不知道这条附加信息是否有帮助。
答案1
配置文件的默认位置在构建配置选项中指定--sysconfdir
。默认值取决于所使用的值--prefix
。
$ ./configure --help
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
因此,您实际使用的内容取决于构建配置。
启动时拍打您还可以使用命令行选项指定要使用的配置,-f
用于静态配置或-F
用于保存动态配置的目录。这对于使用本地测试平台配置或完全避免在软件包安装过程中出现操作系统软件包混乱的情况非常方便。
手册页拍打(8)本地安装在系统上的版本将显示构建的实际默认值。请记住,OS 软件包提供的手册页与本地源代码构建不同。
我也建议不是使用 RHEL/CentOS 软件包。您应该使用由LDAP 工具箱项目。他们使用构建选项--prefix=/usr/local/openldap
,因此动态配置数据库将位于默认位置/usr/local/openldap/etc/openldap/slapd.d/。
也可以看看:拍打(8)
答案2
为了避免su: invalid option -- 'n'
错误,您可以像下面这样加上引号:
su root -c '/usr/local/sbin/slapadd -n 0 -F /usr/local/etc/slapd.d -l /usr
/local/etc/openldap/slapd.ldif'
请注意,我已将 -c 后面的部分放在引号内。
就 slapd.d 而言,创建目录对我有帮助:
sudo mkdir /usr/local/etc/slapd.d
CLI 会立即要求输入密码。之后,我的控制台上会显示以下内容:
_#################### 100.00% eta none elapsed none fast!
答案3
也许你可以尝试:mkdir /usr/local/etc/slapd.d