[Share Experiences] 【小技巧】用apt-file通过文件名查询软件包
Tofloor
poster avatar
enforcee
deepin
2023-05-03 19:46
Author

参考:https://wiki.debian.org/apt-file

其实这个东西应该是相当基础的,但是我也不确保各位坛友是否了解。

「通过文件名查询包含这个文件的软件包」是一个非常实用的功能。其他发行版的包管理器应该也都有类似的实现,而debian采用了一个扩展命令apt-file提供的这个功能。这个功能的实用场景有二:一个是想在系统中安装缺失的文件又不清楚到底是哪个软件包提供的;二是想删除系统目录中的文件而不知道被哪个软件包包含。

首先需要安装apt-file:

sudo apt install apt-file

然后更新apt-file的数据库:

sudo apt-file update(这个命令也可以不用root权限,生成单独用户的数据库)

完成以后只需要用apt-file搜索即可:

apt-file search <文件名>

搜索出来的软件包会显示在屏幕上。

另一种用法是用dpkg,但是只能搜索已经安装到系统上的文件(不能搜索软件源上的文件)

dpkg -S <文件名>(注意是大写S)

Reply Favorite View the author
All Replies
wlly-lzh
deepin
2023-05-03 19:51
#1

like

有用的小知识。

Reply View the author
阿尼樱奈奈
deepin
2023-05-03 19:54
#2

like

Reply View the author
buyike
deepin
2023-05-03 20:00
#3

这个好,我也看了很多,但是我不知道什么地方是系统的代码,什么是查出来的软件名。

直到看了一个教有案例的,我对比才知道,原来如此。

所以,大神,教授时请尽可能详细,图文案例一定要清晰,原理反而不那么重要。因为这种内容本就是给小白看,否则会出现高手不用看,小白看不懂。

最近装DEEPIN,遇了很多问题,看了很多资料,大部分是越看越晕。

Reply View the author
新手小白
deepin
2023-05-03 20:06
#4
It has been deleted!
enforcee
deepin
2023-05-03 20:09
#5

顺便说一点点心声吧

shamed

包管理器对GNU/Linux的系统管理员应该是相当基础的功能,但是我知道一些坛友对其了解不多,还在用原始的方式手动修改系统目录,这么做很容易影响系统的正常运行。

我写的一些内容确实热度不错,但是我并不知道大家底是真的学到了,还是早就会了只是来给我的写作捧场的。我写的内容很多都是网上不太容易查找到或是容易被大家忽略的知识,我自己在学习他们的时候也消耗了相当的气力。所以我尽量用简单的文字把他们记录下来,节省后人的宝贵时间。我知道很多坛友不愿意主动学习,太长不看,但是最后也多半是在陷阱和挫折中「被迫」学会了这些东西。(另一半可能是一直在陷阱里没出来。一点都不好笑。)

另外我帖子中的内容各位坛友可以随意保存、分享或者转发。尤其是编纂wiki或者写技术博客的坛友可能会需要这些。如果喜欢的话可以帮我署名。

Reply View the author
ljq790615
deepin
2023-05-03 20:29
#6

~$ apt-file update
正在读取软件包列表... 完成
E: 无法打开锁文件 /var/lib/apt/lists/lock - open (13: 权限不够)
E: 无法对目录 /var/lib/apt/lists/ 加锁
W: 用 unlink 删除文件 /var/cache/apt/pkgcache.bin 出错 - RemoveCaches (13: 权限不够)
W: 用 unlink 删除文件 /var/cache/apt/srcpkgcache.bin 出错 - RemoveCaches (13: 权限不够)

超级权限正常

Reply View the author
q77190858
deepin
2023-05-03 20:40
#7

apt-file 神器 啊,特别是编译报错找不到什么文件的时候

Reply View the author
enforcee
deepin
2023-05-03 20:45
#8
ljq790615

~$ apt-file update
正在读取软件包列表... 完成
E: 无法打开锁文件 /var/lib/apt/lists/lock - open (13: 权限不够)
E: 无法对目录 /var/lib/apt/lists/ 加锁
W: 用 unlink 删除文件 /var/cache/apt/pkgcache.bin 出错 - RemoveCaches (13: 权限不够)
W: 用 unlink 删除文件 /var/cache/apt/srcpkgcache.bin 出错 - RemoveCaches (13: 权限不够)

超级权限正常

可能是需要先更新apt的数据库

Reply View the author