다음을 사용하여 AIX 시스템을 업그레이드한 후NIM을 통해 mksysb 마이그레이션, AIX-rpm 가상 패키지는 이전 AIX 레벨에 남아 있습니다.
$ oslevel -r
7100-04
$ rpm -q AIX-rpm
AIX-rpm-6.1.7.0-7
이는 특정 AIX-rpm 버전에 의존하는 다른 RPM의 설치를 방지합니다. 예를 들면 다음과 같습니다.
$ sudo rpm -Uvh libgcc-6.3.0-2.aix7.1.ppc.rpm
error: failed dependencies:
AIX-rpm >= 7.1.0.0 is needed by libgcc-6.3.0-2
패키지의 종속성을 쿼리하여 이 상황을 사전 테스트할 수 있습니다.
$ rpm -qp --requires libgcc-6.3.0-2.aix7.1.ppc.rpm
AIX-rpm >= 7.1.0.0
AIX-rpm < 7.2.0.0
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
...또는 rpm --test
옵션을 사용하세요.
$ sudo rpm -Uvh --test libgcc-6.3.0-2.aix7.1.ppc.rpm
error: failed dependencies:
AIX-rpm >= 7.1.0.0 is needed by libgcc-6.3.0-2
다른 RPM을 강제로 설치하지 않고도 설치할 수 있도록 AIX-rpm을 올바른 레벨로 설치하거나 업그레이드하려면 어떻게 해야 합니까 --nodeps
?
답변1
AIX-rpm 가상 패키지를 올바른 운영 체제 레벨로 업데이트하려면 다음을 실행하십시오.
$ sudo /usr/sbin/updtvpkg
Please wait...
그런 다음 AIX-rpm 가상 패키지가 업그레이드됩니다.
$ rpm -q AIX-rpm
AIX-rpm-7.1.4.31-8
답변2
AIX-rpm은 시스템에 설치된 installp를 반영하는 "더미" 패키지입니다. 이는 rpm.rte가 설치될 때 /usr/sbin/updtvpkg 스크립트에 의해 생성되며 관리자가 선택하면 언제든지 실행할 수 있습니다(일반적으로 RPM 패키지의 특정 종속성을 충족하기 위해 installp를 사용하여 무언가를 설치한 후).
AIX-rpm에는 일부 버전 번호가 있어야 하므로 /usr/sbin/updtvpkg를 실행하는 시스템의 bos.rte 레벨만 반영합니다. 이는 정보 제공용일 뿐입니다. AIX-rpm 수준을 확인하면 안 됩니다.
AIX는 많은 소프트웨어가 설치된 일부 느린 시스템에서 /usr/sbin/updtvpkg가 오랜 시간이 걸릴 수 있기 때문에 무언가가 설치되거나 제거될 때마다 /usr/sbin/updtvpkg를 자동으로 실행하지 않습니다.
명령을 수동으로 실행하려면 다음을 수행하십시오.
/usr/sbin/updtvpkg
updtvpkg를 실행할 때 "조회를 위해 20760에서 헤더를 읽을 수 없습니다"와 유사한 오류가 발생하는 경우 rpm을 실행하여 데이터베이스를 다시 구축하십시오.
rpm --rebuilddb
updtvpkg를 실행한 후 rpm -qa를 실행하여 새 AIX-rpm 패키지를 볼 수 있습니다.