Package-Management
OpenSUSE:查找所有沒有儲存庫的包
我剛剛通過將我的所有儲存庫更改為目標 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
為您提供軟體包使用的所有儲存庫的列表。找到你不想要的那些留給讀者作為練習。
:-)
.