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 및 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를 사용합니다.

관련 정보