Upgrade
在 AIX mksysb NIM 遷移升級後,虛擬包 AIX-rpm 與作業系統級別不同步
在通過 NIM 使用 mksysb 遷移升級 AIX 系統後,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
如何將 AIX-rpm 安裝或升級到正確的級別,以便無需強制安裝額外的 RPM
--nodeps
?
要將 AIX-rpm 虛擬包更新到正確的作業系統級別,請執行:
$ sudo /usr/sbin/updtvpkg Please wait...
然後將升級 AIX-rpm 虛擬軟體包:
$ rpm -q AIX-rpm AIX-rpm-7.1.4.31-8
AIX-rpm 是一個“虛擬”包,它反映了 installp 在系統上安裝的內容。它是在安裝 rpm.rte 時由 /usr/sbin/updtvpkg 腳本創建的,並且可以在管理員選擇的任何時間執行(通常在使用 installp 安裝某些東西後,以滿足 RPM 包的某些依賴性所需)。
由於 AIX-rpm 必須有某種版本號,它只反映了執行 /usr/sbin/updtvpkg 的系統上的 bos.rte 級別。它只是提供資訊 - 不應該檢查 AIX-rpm 的級別。
AIX 不會在每次安裝或解除安裝某些東西時自動執行 /usr/sbin/updtvpkg,因為在一些安裝了大量軟體的較慢系統上,/usr/sbin/updtvpkg 可能需要很長時間。
如果要手動執行命令:
/usr/sbin/updtvpkg
如果在執行 updtvpkg 時收到類似於“無法讀取 20760 處的標頭進行查找”的錯誤,請執行 rpm rebuilddb:
rpm –rebuilddb
執行 updtvpkg 後,您可以執行 rpm -qa 來查看新的 AIX-rpm 包。