현재 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에 대해 ./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이 없습니다.
나는 사용하고있다이 가이드에서는 쉘에서 임시로 최신 gcc를 사용합니다.