
我剛剛將幾台 PC 升級到 Ubuntu Trusty 14.04。為此,我曾經從頭開始安裝所有內容以獲得乾淨的系統,僅保留 /home (和 /etc 以供參考)。
不過,這次我使用升級工具進行了升級,我想知道我的電腦與標稱系統相比有什麼差異。因為我從不同的來源安裝了許多不同的軟體包,並且可能到處編輯了一些文件。當然,我知道 apt 應該自動神奇地處理所有事情,但我是偏執型的,我真的想確定一下。
基本上,我想要的是:
取得所有已安裝軟體包的清單以及每個軟體包的來源儲存庫(如果可用)。這基本上是
apt-cache policy
每個包的一個,但總結在一個整潔的清單中。對於來自「非官方來源」的軟體包,指示是否有來自官方來源的可用版本(我的意思是 /etc/apt/sources.list 中列出的儲存庫)。
有時我安裝了一些第三方的補丁包,但由於版本號衝突,該包沒有更新。我想要一個清單來告訴我回退到官方版本是否有意義。
檔案系統上來自已安裝軟體包(包括設定檔)但隨後被修改的所有檔案的列表。
檔案系統上所有非來自已安裝軟體套件的檔案的清單(不包括 /home,可能還包括 /etc)。
基本上,我想知道升級與全新安裝時我的系統有何差異,並根據具體情況決定這些差異是否會導致一些不穩定。
答案1
我的問題已經部分得到解答如何取得過時軟體包的清單?。
答案建議使用
apt-show-versions | grep 'No available version' # Show all package not coming from repo
aptitude search '~o' # Similar
我想我們也可以這樣做:
apt-show-versions | grep -v uptodate # All packages that are not up-to-date
這將提供不是最新的軟體包,即可以從啟用的儲存庫升級的軟體包,或不是來自此類儲存庫的軟體包。
要獲取此類軟體包的所有可用版本的列表,我們可以這樣做:
apt-show-versions -a $(apt-show-versions | grep -v uptodate | sed -r 's/:.*//')
我還發現了一個問題引用deborphan -a
(如何列出 apt 中已安裝但不受儲存庫支援的軟體包?)
deborphan -a # List all packages that have no reverse dependencies
總而言之,我對第 1 項和第 2 項有一些答案,但仍在尋找第 3 項和第 4 項:
apt-show-versions
是一個很好的答案- 同上,上面的命令組合之一。當然,這裡的關鍵步驟是先確保 /etc/apt.conf 中僅啟用官方儲存庫。
- ?
- ?