如何徹底刪除PPA軟件庫


添加一個PPA源

sudo add-apt-repository ppa:user/ppa-name

如添加cairo-dock到weekly update源

sudo add-apt-repository ppa:cairo-dock-team/weekly/ubuntu

 

刪除

rm對應文件

/etc/apt/sources.list.d

 

為什么要刪除某個PPA軟件庫?
1. 這個軟件因為其優秀的特性,已經被收錄進官方倉庫;
2. 因為不再需要這個軟件或對其失去了喜愛;
3. 一些位於國外的PPA軟件庫因為網絡原因,有時會拖慢我們的升級過程。

常規步驟

要使一個PPA軟件庫失效,做法很簡單,只需要使用add-apt-repository加上移除的參數-r (–remove) 即可。但是,這個命令總是有那么點不人性化的地方。試想,如果我們忘記了一個PPA軟件庫的名稱該怎么辦?

下面以Bazaar這個軟件的PPA為例,來看一看如何移除它。出於講解和實做的需要,我們先來再系統中添加它:


$ sudo add-apt-repository ppa:bzr/p
[sudo] password for user:
你將向系統添加如下 PPA:
This archive contains the latest release or release candidate of bzr, bzr-gtk and bzrtools, built for all currently supported Ubuntu releases.


更多信息: https://launchpad.net/~bzr/+archive/ppa
按回車繼續或者 Ctrl+c 取消添加

gpg: 鑰匙環‘/tmp/tmp_h2_5p/secring.gpg’已建立
gpg: 鑰匙環‘/tmp/tmp_h2_5p/pubring.gpg’已建立
gpg: 下載密鑰‘8C6C1EFD’,從 hkp 服務器 keyserver.ubuntu.com
gpg: /tmp/tmp_h2_5p/trustdb.gpg:建立了信任度數據庫
gpg: 密鑰 8C6C1EFD:公鑰“Launchpad PPA for Bazaar Developers”已導入
gpg: 沒有找到任何絕對信任的密鑰
gpg: 合計被處理的數量:1
gpg: 已導入:1 (RSA: 1)
OK

首先我們來看一下移除軟件包名要使用的完整命令:

$ sudo add-apt-repository -r ppa:repository-name/subdirectory

添加成功后,我們假設並不知道這個PPA軟件庫的名稱,看一看如何來獲取ppa:repository-name/subdirectory這個格式的內容。我們可以查看/etc/apt/sources.list.d/下面,有一個相應的PPA倉庫的文件:
$ ls /etc/apt/sources.list.d
bzr-ppa-raring.list

我們來看一下bzr-ppa-raring這個文件,raring表示添加於我們當前系統的版本代號分支,這一部分我們用不上。我們繼續看它的前一部分,叫做ppa,這一部分,是相當於ppa:repository-name/subdirectory這個格式中的subdirectory (子目錄) 部分,我們這時就可以將ppa這幾個字符套用進去,這時還差package (名稱) 部分了。除去directory部分,再向前面的所有內容,都屬於PPA名稱的內容,在這里,PPA的名稱為bzr。所以,我們需要執行以下命令:

$ ls /etc/apt/sources.list.d
bzr-ppa-raring.list
user@work:~$ sudo add-apt-repository -r ppa:bzr/ppa
[sudo] password for user:
即將從系統中刪除以下 PPA:
This archive contains the latest release or release candidate of bzr, bzr-gtk and bzrtools, built for all currently supported Ubuntu releases.

更多信息: https://launchpad.net/~bzr/+archive/ppa
按 [ENTER] 可繼續操作,按 ctrl-c 可取消其刪除操作

$

注:如果name部分有多個單詞,就會出現這樣的形式

maarten-baert-simplescreenrecorder-raring.list

此時我們需要采取相同的做法,凡除子目錄名稱的部分,其前面都屬於PPA軟件庫的名稱,這樣,刪除的命令就是:

$ sudo add-apt-repository -r ppa:maarten-baert/simplescreenrecorder

刪除完名bzr的PPA軟件庫后,我們會發現系統中還有兩處殘余。一是與這個PPA相應的apt密鑰環:

$ sudo apt-key list | grep -B 1 Bazaar
pub 1024R/8C6C1EFD 2009-01-19
uid Launchpad PPA for Bazaar Developers

另一處是/etc/apt/sources.list.d目錄下的兩個空文件:

$ cd /etc/apt/sources.list.d/
user@work:/etc/apt/sources.list.d$ ls
bzr-ppa-raring.list bzr-ppa-raring.list.save
$ cat bzr-ppa-raring.list bzr-ppa-raring.list.save
$

我們下面來清理這些殘余。由這面的命令我們可以得知,bzr這個軟件庫的密鑰ID為8C6C1EFD,通過這個keyid,我們就可以刪除它。

$ sudo apt-key del 8C6C1EFD
OK

另外兩個殘余的文件,就可以直接通過rm命令來刪除了。

$ sudo rm bzr-ppa-raring.list*

簡單步驟

寫到這里,聰明的你也許會發現,我們還可以使用另一種更為簡單的方式還清除PPA軟件庫,即只需要刪除/etc/sources.list.d/中相應的文件bzr-ppa-raring.list和apt的密鑰環就可以了。因此,上面的步驟可簡化為:

$ sudo rm bzr-ppa-raring.list

$ sudo apt-key del 8C6C1EFD

到這里,完整刪除PPA軟件庫的步驟就全部介紹完了。小編要開始吐槽了,由Ubuntu創建的用來添加PPA軟件庫的命令add-apt-repository可以將PPA及密鑰環導入,卻無法將他們完整刪除。這就好比一個軟件有安裝程序,卻無卸載程序,實在讓我等潔癖症患者無法忍受啊!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM