出錯提示“Command 'yum -y distro-sync' returned non-zero”
本文主要介紹在Linux操作系統(tǒng)遷移時,遷移任務(wù)出錯提示“Command 'yum -y distro-sync' returned non-zero”信息時的問題描述、問題原因及其解決方案。
問題描述
在使用SMC操作系統(tǒng)遷移時,遷移任務(wù)出錯提示“Command 'yum -y distro-sync' returned non-zero”信息。
問題原因
遷移至Anolis OS充分利用了yum distro-sync
機制來實施遷移,該命令將當前系統(tǒng)中所有CentOS提供的軟件包重裝為Anolis OS源上的包,涉及到軟件包的依賴解析、下載和安裝。該命令執(zhí)行耗時較長。如果該命令執(zhí)行過程中意外中斷,再次執(zhí)行時會直接報錯,導致遷移無法繼續(xù)。
解決方案
當
yum distro-sync
意外中斷時,需要按照命令執(zhí)行的階段來看問題現(xiàn)象。執(zhí)行升級過程前中斷
如軟件包依賴解析階段,下載階段,只要沒有開始執(zhí)行軟件包的安裝,此時再次執(zhí)行
yum distro-sync
能夠正常運行。軟件包開始安裝過程中意外中斷
軟件包沖突問題,此時再次執(zhí)行
yum distro-sync
會出現(xiàn)報錯信息。yum distro-sync
中斷時機不同,涉及到的報錯軟件也會有所不同,本示例以下圖報錯信息為例。執(zhí)行以下命令,查看報錯的軟件包nginx在系統(tǒng)中的安裝情況。
rpm -q nginx
查詢發(fā)現(xiàn)Nginx安裝了第三方倉庫的Nginx相關(guān)不兼容包,導致沖突。
執(zhí)行以下命令,卸載第三方倉庫的Nginx相關(guān)不兼容包。
rpm -e nginx*
卸載過程中如果出現(xiàn)依賴無法卸載,則可以將其依賴一起卸載。
執(zhí)行
yum distro-sync
查看是否有報錯。如果能正常執(zhí)行,執(zhí)行以下命令,繼續(xù)遷移。
當遷移到Anolis OS時
python3 /usr/sbin/centos2anolis.py -c
當遷移到Alibaba Cloud Linux時
python3 /usr/sbin/centos2alinux.py -c
如果還是報錯,則需要繼續(xù)解決報錯問題。
問題排查解決后,可參考查看和運行SMC客戶端,運行SMC客戶端命令
./go2aliyun_client --rerun --skipgrub
來重試。