SUSE12.3安装Puppet7提示systemd-sysv-convert数据库缺失如何解决
报错具体原因
- 该报错是SUSE 12.3的已知遗留bug:系统自带的
systemd-sysv-convert工具负责将SysV格式的服务转换为systemd可识别的配置,该版本系统默认不会提前创建/var/lib/systemd/sysv-convert/目录及内部的database文件,当puppetserver安装完成后触发服务转换的后置钩子时,就会触发文件不存在的报错。 - 你执行安装命令时的参数写法有误:SUSE的zypper包管理器中,自动确认的
-y参数需要放在install子命令之前,正确写法是zypper -y install puppetserver,你把参数放在末尾会被识别为待安装的包名,因此出现'-y' not found in package names的提示,但该问题不影响实际包安装流程,你后续手动确认继续后两个安装包已经实际部署完成,仅最后服务配置钩子执行失败。
修复方案
- 第一步:手动创建缺失的目录和文件,执行命令:
mkdir -p /var/lib/systemd/sysv-convert touch /var/lib/systemd/sysv-convert/database
- 第二步:重新触发puppetserver的安装后配置流程,补全服务配置:
rpm --reconfigure puppet-agent puppetserver
- 第三步:验证安装有效性,执行以下命令确认版本输出正常:
/opt/puppetlabs/bin/puppet --version /opt/puppetlabs/bin/puppetserver --version
- 可选操作:手动设置puppetserver开机自启并启动服务:
systemctl enable --now puppetserver
完成以上操作后Puppet7就已经完整安装在你的SUSE 12.3系统中,之前的报错不会影响Puppet的核心功能使用。
内容的提问来源于stack exchange,提问作者EisenWang
相关产品推荐
相关产品推荐

