在 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 和./configuredrbd-utils 就可以了,但是當我運行make rpmdbrd-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。

我在用著本指南在 shell 中暫時使用較新的 gcc。

相關內容