Gangmax Blog

在Debian/Ubuntu中查找某文件所属的package并删除该package

今天我偶然发现自己的机器上有一个bcompare命令(/usr/bin/bcompare),这是因为我曾经通过deb文件安装过BeyondCompare for Linux。实际上自从我用了Meld之后基本上就没有使用BeyondCompare的需求了,而且我安装的是30天使用版,留着已经没有意义。那我该如何删除它呢?

如果是通过debian apt repository安装的package,直接用”apt-get remove “即可。而对于通过手动方式安装deb文件的package,删除可以使用以下办法:

1
2
~$ dpkg -S /usr/bin/bcompare
bcompare: /usr/bin/bcompare

以上命令是用于本地已安装文件的查询,以下命令可以用来查询在repository中某文件所属的package,也就是说,即使本地还没有安装的package也可以查询,apt-file需要单独安装:

1
2
3
4
~$ sudo apt-get install apt-file
# Build local cache in user's home directory.
~$ apt-file update
~$ apt-file search /usr/bin/svn

这个输出说明”/usr/bin/bcompare”文件属于名为”bcompare”的deb package。然后就可以运行以下命令删除bcompare package:

1
2
3
4
5
6
7
8
9
~$ sudo dpkg -r bcompare
(正在读取数据库 ... 系统当前总共安装有 405612 个文件和目录。)
正在删除 bcompare ...
正在处理用于 desktop-file-utils 的触发器...
正在处理用于 python-gmenu 的触发器...
Rebuilding /usr/share/applications/desktop.zh_CN.utf8.cache...
正在处理用于 shared-mime-info 的触发器...
正在处理用于 python-support 的触发器...
~$

很容易吧?在Debian下,一切关于软件的安装和删除就是这么容易。

我参考了这篇文章

Comments