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 は含まれていません。

私は使用していますこのガイドでは、シェルで新しい gcc を一時的に使用するためのものです。

関連情報