在 Oracle Linux 6 上从 tarball 构建 DRBD 9 时出错

在 Oracle Linux 6 上从 tarball 构建 DRBD 9 时出错

目前,我正在尝试在 Oracle Linux 6 系统上测试 DRBD 9(drbd-9.0.21-1 和 drbd-utils-9.13.0)(与生产环境相同),并且它与外部网络隔离,因此使用 yum 是不可能的(而且我无法升级发行版,因为它将用于正在运行的生产环境)。目前,我正在使用 tarball 构建它。

文档没有提到所需的软件包和版本,因此,我执行make并获取所需的 rpm 并使用Centos 6 指南本 Centos 7 指南包。

最后,我使用Centos 6 指南(我知道那里的 DRBD 版本是 8.4,但由于没有其他适合我的指南,所以我只能用它了,而且本 Centos 7 指南非常相似,没有 drbdmanage(最近已被 linstor 取代)来构建它。

我可以很好地运行make kmp-rpm DRBD9 和drbd-utils,但是当我运行dbrd-utils 时,它给出了这个错误(我以 root 身份运行它):./configuremake rpm

RPM build errors:
    %defattr doesn't define directory mode so file mode defined in %defattr is used for directory: /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/lib/drbd
    File not found: /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/usr/sbin/drbdmon
    %defattr doesn't define directory mode so file mode defined in %defattr is used for directory: /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/usr/lib/drbd
    %defattr doesn't define directory mode so file mode defined in %defattr is used for directory: /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/var/lib/drbd
    %defattr doesn't define directory mode so file mode defined in %defattr is used for directory: /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/var/run/drbd
    File not found by glob: /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/usr/share/man/man8/drbdmon-*
make: *** [rpm] Error 1


# ls /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/lib/
drbd  udev

# ls /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/usr/sbin/
drbdadm  drbdmeta  drbdsetup

# ls /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/usr/lib/
debug  drbd  ocf

# ls /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/var/lib/
drbd

# ls /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/var/run/
drbd

# ls /root/rpmbuild/BUILDROOT/drbd-9.13.0-1.el6.x86_64/usr/share/man/man8/
drbd-8.3.8.gz     drbdadm-8.4.8.gz   drbdmeta-8.3.8.gz   drbdsetup-8.4.8.gz
drbd-8.4.8.gz     drbdadm-9.0.8.gz   drbdmeta-8.4.8.gz   drbdsetup-9.0.8.gz
drbd-9.0.8.gz     drbddisk-8.3.8.gz  drbdmeta-9.0.8.gz
drbdadm-8.3.8.gz  drbddisk-8.4.8.gz  drbdsetup-8.3.8.gz

据我所知,它找不到 drbdmon。有什么办法可以解决这个问题吗?是我遗漏了什么,还是无法在 EL6 上构建 DRBD 9?

答案1

我终于能够使用较新版本的 gcc 构建 drbd-utils。我的 oracle linux 的内置 gcc 版本是 4.4,没有 C++11。

我在用着本指南在 shell 中暂时使用较新的 gcc。

相关内容