目前我正在嘗試在 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?
答案1
我終於能夠使用較新版本的 gcc 來建立 drbd-utils 了。我的oracle linux內建的gcc版本是4.4,沒有C++11。