rpm 패키지를 설치할 때 가끔 다음 메시지가 보고됩니다.
libc.so.6(GLIBC_2.3)(64bit) is needed by xxx.rpm
RPM이 이를 어떻게 파악하는지, 기호에 체크포인트를 추가하는 방법을 알고 싶습니다.
이는 rpmbuild 중에 완전 자동 프로세스인 것 같지만 확실하지 않습니다.
아는 사람 있나요?
답변1
새 rpm을 빌드할 때 이 rpmbuild
명령은 기본적으로 확인합니다.모든 종속성이 rpm에 속하는 바이너리(사용종속성 생성기). 일반적으로 도우미 스크립트1 이 있습니다 .find-requires
2%files%
rpms 섹션에서 모든 파일의 종속성을 확인합니다 .
$ echo /usr/bin/tree | /usr/lib/rpm/find-requires
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
그런 다음 rpm 메타데이터에 다음 요구 사항을 추가합니다.
$ rpm --requires -q tree | grep libc
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
다음 종속성을 사용하여 rpm 목록을 얻을 수 있습니다.
rpm --whatrequires -q 'libc.so.6(GLIBC_2.3)(64bit)'
어떤 패키지인지 확인할 수도 있습니다.공급(또는 충족) 다음 종속성을 충족합니다.
$ rpm --whatprovides -q 'libc.so.6(GLIBC_2.3)(64bit)'
glibc-2.22-114.22.1.x86_64
1 일반적으로 이 도우미 스크립트는 rpmbuild
.
2 스크립트는 다른 도우미 도구를 사용하여 요구 사항을 추출합니다.rpmdeps
또는elfdeps
:
$ /usr/lib/rpm/rpmdeps -R /usr/bin/tree
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
$ /usr/lib/rpm/elfdeps --requires /usr/bin/tree
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6()(64bit)