目前我正在尝试在 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 和./configure
drbd-utils 运行就好了,但是当我make rpm
为 dbrd-utils 运行时,它给了我这个错误(我以 root 身份运行):
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?
我终于能够通过使用更新版本的 gcc 来构建 drbd-utils。我的oracle linux的内置gcc版本是4.4,没有C++11。
我正在使用本指南在 shell 中临时使用较新的 gcc。