Derzeit versuche ich, DRBD 9 (drbd-9.0.21-1 und drbd-utils-9.13.0) auf einem Oracle Linux 6-System (dasselbe für die Produktion) zu testen. Es ist vom externen Netzwerk isoliert, sodass die Verwendung von Yum nicht in Frage kommt (und ich kann die Distribution nicht aktualisieren, da sie in der laufenden Produktion verwendet wird). Derzeit erstelle ich es mithilfe des Tarballs.
Die Dokumentationerwähnt nichts über erforderliche Pakete und Versionen, also führe ich make
die benötigten RPMs aus und hole sie ab und verwendedieser Centos 6-LeitfadenUnddieser Centos 7-LeitfadenPakete.
Schließlich verwende ichdieser Centos 6-Leitfaden(Ich weiß, dass die DRBD-Version dort 8.4 ist, aber ich muss mich damit begnügen, da es keinen anderen Leitfaden für meinen Fall gibt, unddieser Centos 7-Leitfadenist ziemlich ähnlich, ohne drbdmanage, das vor Kurzem durch linstor ersetzt wurde), um es zu erstellen.
Ich kann es make kmp-rpm
für DRBD9 und ./configure
für drbd-utils problemlos ausführen, aber wenn ich es make rpm
für dbrd-utils ausführe, erhalte ich diesen Fehler (ich führe es als Root aus):
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
Meines Wissens konnte drbdmon nicht gefunden werden. Gibt es eine Möglichkeit, das zu lösen? Übersehe ich etwas oder ist es nicht möglich, DRBD 9 auf EL6 zu erstellen?
Antwort1
Ich kann die drbd-utils endlich mit einer neueren Version von gcc erstellen. Die integrierte gcc-Version meines Oracle Linux ist 4.4 und hat kein C++11.
Ich benutzeDiese Anleitung dient der vorübergehenden Verwendung des neueren GCC in der Shell.