zoukankan      html  css  js  c++  java
  • 如何彻底删除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及密钥环导入,却无法将他们完整删除。这就好比一个软件有安装程序,却无卸载程序,实在让我等洁癖症患者无法忍受啊!

  • 相关阅读:
    7.21 高博教育 数组 内存
    【基础扎实】Python操作Excel三模块
    PAT 甲级 1012 The Best Rank
    PAT 甲级 1011  World Cup Betting
    PAT 甲级 1010 Radix
    链式线性表——实验及提升训练
    循环程序设计能力自测
    链表应用能力自测
    PAT 甲级 1009 Product of Polynomials
    1008 Elevator (20分)
  • 原文地址:https://www.cnblogs.com/guke/p/3981805.html
Copyright © 2011-2022 走看看