如何彻底删除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及密钥环导入,却无法将他们完整删除。这就好比一个软件有安装程序,却无卸载程序,实在让我等洁癖症患者无法忍受啊!
如何彻底删除PPA软件库的更多相关文章
- 在Ubuntu中添加和删除PPA的软件源
PPA,英文全称为 Personal Package Archives,即个人软件包档案.是 Ubuntu Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launchpa ...
- Ubuntu 添加,删除ppa
PPA,英文全称为 Personal Package Archives,即个人软件包档案.是 Ubuntu Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launchpa ...
- Ubuntu添加与删除PPA源
目录 PPA,英文全称为 Personal Package Archives,即个人软件包档案.是 Ubuntu Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launc ...
- Ubuntu13.10添加/删除PPA
什么是ppa ppa即Personal Package Archive(个人安装包文档),简单来说就是一些个人或者团体通过独立的网站发布的第三方的软件源.将这些软件源添加到你的电脑上后,你就可以像使用 ...
- ubuntu/linuxmint如何添加和删除PPA源
[添加] 1.sudo add-apt-repository ppa:user/ppa-name 2.sudo apt-get update (然后再安装软件sudo apt-get install ...
- ubuntu删除ppa源
cd /etc/apt/sources.list.d 都在这里了 drwxr-xr-x 2 root root 4096 5月 22 23:41 ./ drwxr-xr-x 6 root root 4 ...
- linux ubuntu ppa源
ubuntu10.04添加删除PPA源 增加ppa资源以后,今后的版本更新什么的都会从launchpad去下载,在国内访问launchpad速度比乌龟还慢 Ubuntu里,PPA代表一种非稳定版本 ...
- Ubuntu: repository/PPA 源
在Ubuntu中,每个PPA源是单独存放在/etc/apt/sources.list.d/文件夹中的,进入到该文件夹,使用ls命令查询即可列出当前系统添加的PPA源. 添加 sudo add-apt- ...
- Ubuntu PPA软件源
PPA,其英文全称为 Personal Package Archives,即个人软件包档案.是 Ubuntu Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launchp ...
随机推荐
- java08 Set
Set: 无序不可重复,重复则覆盖,判断是不是重复也是通过equals方法判断的.HashSet和TreeSet,HashSet底层是HashMap. public static void main( ...
- java07 map
map底层,数组加链表 集合: 是一个对象,只不过这个对象可以容纳别的对象.存放对象就是操作地址. List:是有序可重复的. Set:无顺序,不可重复,有重复则后面把前面的覆盖. Map:键值对. ...
- MVC - 布局
布局类似于APSX视图的母版页 用的是Razor的语法 创建布局 布局页面默认放在Shared目录 有几个自动生成的cshtml文件 删除它们 然后创建一个视图 命名为MyLayOut 取消勾选使用母 ...
- 【转】针对iOS VS. Android开发游戏的优劣——2013-08-25 17
http://game.dapps.net/gamedev/experience/8670.html 问题:如果你正在一个新工作室开发一款新的平板/手机游戏,你会选择iOS还是Android? 回答: ...
- 并发与多版本:update重启动问题
以下演示重启动问题,请注意 before触发器和after触发器的行为区别,因为before触发器会触发两次而导致重启动问题,因此使用after触发器更加高效,应该尽量避免在所有触发器中使用自治事务 ...
- asterisk webrtc使用SIPML5初体验
一直尝试,web呼叫xlite终端没有,主要是配置问题: 其中sip.conf配置如下: [general] context=public ; Default context for incoming ...
- RabbitMQ 原文译06--Remote procedure call(RPC)
在第三篇文章中, 我们学习了怎么使用队列在多了消息消费者当中进行耗时任务轮询. 但是如果我们想要在远程电脑上运行一个方法,然后等待其执行结果,这就是一个不同的场景,这种就是我们一般讲的RPC(远程过程 ...
- hadoop_集群安装_2
由于上一篇文章http://www.cnblogs.com/inuyasha1027/p/hadoop_cluster_install_1.html 截图太多,占用了太多的地方,所以将VMTools ...
- 计算Android屏幕解锁组合数
晚饭时和同事聊到安卓屏幕解锁时会有多少种解锁方案,觉得很有趣,吃完饭开始想办法解题,花了大概2个小时解决.思路如下: 使用索引值0-9表示从左到右.从上到下的9个点,行.列号很容易从索引值得到: 使用 ...
- Java线程间通信-回调的实现方式
Java线程间通信-回调的实现方式 Java线程间通信是非常复杂的问题的.线程间通信问题本质上是如何将与线程相关的变量或者对象传递给别的线程,从而实现交互. 比如举一个简单例子,有一个多线程的 ...