Package-Management

OpenSUSE:查找所有沒有儲存庫的包

  • October 7, 2017

我剛剛通過將我的所有儲存庫更改為目標 12.2(而不是 12.1)從 OpenSUSE 12.1 升級到 OpenSUSE 12.2。現在我已經升級了,我發現了一堆沒有儲存庫*的包,YaST 軟體管理器在版本列中用紅色文本標記了這些包。我可以滾動瀏覽這些並刪除每一個,但我想知道zypper搜尋 ( zypper se) 或軟體管理器是否有任何方法可以一次定位/選擇所有這些。

*- 這些包有一個儲存庫(OpenSUSE 12.1 的東西),但由於我用 12.2 儲存庫替換了這些儲存庫,它們不再具有儲存庫關聯。這不會造成問題,因為 12.2 儲存庫應該包含我執行系統所需的一切。

使用馬丁的回答/指導,我寫了一個快速腳本來刪除一串包,zremove.sh

#!/bin/sh

pkgs=""
while read line
do
       pkgs="$pkgs $line"
done

zypper rm $pkgs

在註意到我的所有“沒有儲存庫”的軟體包在rpm查詢中都有一個****openSUSE 12.1的分發版後,我發出了這個命令來定位並刪除所有這些軟體包:

rpm -qa --qf '%{DISTRIBUTION} : %{NAME}\n' | grep "openSUSE 12.1 :" | sed 's/openSUSE 12.1 : //' | sudo zremove.sh

這通常不能回答如何在沒有備份儲存庫的情況下查找所有包的問題,但它確實解決了我最初的問題。

rpm -qa --qf '%-30{DISTRIBUTION} %{NAME}\n'| sort

為您提供軟體包使用的所有儲存庫的列表。找到你不想要的那些留給讀者作為練習。:-).

引用自:https://unix.stackexchange.com/questions/53474