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

  • 相关阅读:
    react路由(标签属性、Hooks、路由跳转、传值、守卫、懒加载)总结大全
    react嵌套路由(结合新版Hooks-useRouteMatch, useParams)
    react 路由封装使用(同vue)
    【转载】最小割
    专题训练之最大流
    服务器版本更新与客户端不同步的问题
    springboot整合mq接收消息队列
    跨域问题的解决方案
    1小时轻松上手springmvc,视频网站后台开发
    linux部署服务器遇到tomcat already start
  • 原文地址:https://www.cnblogs.com/guke/p/3981805.html
Copyright © 2020-2023  润新知