目前,我正在尝试在 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 身份运行它):./configure
make 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。