原文链接:信创系统报command not found怎么办?
Hello,大家好啊,今天给大家分享一个在Linux日常运维中极其好用,但却被严重低估的命令—— apt-file。很多人都有过这种经历:
明明知道有这个命令,但系统报:command not found
文件路径存在,但不知道属于哪个包
想装依赖,却连包名都不知道从哪下手
这个时候,apt-file 就是你的救命神器。
一、apt-file是什么?
用来查询“某个文件或命令属于哪个软件包”,即使该包还没安装。它是apt生态里一个非常强大的辅助工具,和apt、apt-get配合使用,让排错和安装变得又快又准。
二、apt-file适合解决哪些问题?
缺少命令,不知道要装哪个包
只有一个文件名,不知道它来自哪个软件
运维排错时,精准定位依赖包
做系统裁剪、定制系统镜像时进行文件溯源
这些场景,apt-file 都可以轻松搞定。
三、安装方法
pdsyw@pdsyw1024:~/Desktop$ sudo apt update pdsyw@pdsyw1024:~/Desktop$ sudo apt install apt-file -y

首次使用前必须构建索引,这一步非常关键,否则搜索不到任何结果。
pdsyw@pdsyw1024:~/Desktop$ sudo apt-file update

四、常用技巧
1、查询某个命令属于哪个包
pdsyw@pdsyw1024:~/Desktop$ apt-file search ifconfig net-tools: /sbin/ifconfig
说明:ifconfig来自net-tools包。

2、查询某个文件属于哪个包
比如查一个库文件:
pdsyw@pdsyw1024:~/Desktop$ apt-file search libcrypto.so.1.1 deepin-wine-runtime: /opt/deepinwine/runtime-i386/usr/lib/i386-linux-gnu/libcrypto.so.1.1 deepin-wine-runtime: /opt/deepinwine/runtime-i386/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 libssl1.1: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1

3、查看某个包包含哪些文件
pdsyw@pdsyw1024:~/Desktop$ apt-file list openssh-client

4、精确匹配完整路径
pdsyw@pdsyw1024:~/Desktop$ apt-file search -x '^/usr/bin/python3$' python3-minimal: /usr/bin/python3
非常适合排查冲突文件。

5、查找头文件
pdsyw@pdsyw1024:~/Desktop$ apt-file search stdio.h libc6-dev: /usr/include/stdio.h

五、apt-file和dpkg的区别
很多人会混淆这两个:
| 工具 | 能查什么 |
|---|---|
| dpkg -S | 只查已安装的软件文件 |
| apt-file | 仓库中所有软件包(已装+未装) |
对比示例:
pdsyw@pdsyw1024:~/Desktop$ dpkg -S /usr/bin/curl curl: /usr/bin/curl

pdsyw@pdsyw1024:~/Desktop$ apt-file search /usr/bin/curl curl: /usr/bin/curl curlftpfs: /usr/bin/curlftpfs libcurl4-gnutls-dev: /usr/bin/curl-config libcurl4-nss-dev: /usr/bin/curl-config libcurl4-openssl-dev: /usr/bin/curl-config

六、运维场景
报错信息:
pdsyw@pdsyw1024:~/Desktop$ lsb_release bash: lsb_release:未找到命令

快速定位方法:
pdsyw@pdsyw1024:~/Desktop$ apt-file search lsb_release cdist: /usr/lib/python3/dist-packages/cdist/conf/explorer/lsb_release lsb-release: /usr/bin/lsb_release lsb-release: /usr/lib/python2.7/dist-packages/lsb_release.py lsb-release: /usr/lib/python3/dist-packages/lsb_release.py lsb-release: /usr/share/man/man1/lsb_release.1.gz lsb-release: /usr/share/pyshared/lsb_release.py

立刻安装:
pdsyw@pdsyw1024:~/Desktop$ sudo apt install lsb-release -y

七、常见问题汇总
搜索不到结果怎么办?一般是没有执行:
sudo apt-file update
数据库太大?可以定期清理缓存:
sudo apt-file purge sudo apt-file update
总结
apt-file是Linux运维排错路上的“显微镜”,能让你快速定位文件来源,装包不再盲目。

2156

被折叠的 条评论
为什么被折叠?



