编译安装缺包少文件,apt-file来帮忙

有的时候编译或者安装软件包,会提示缺少某个文件,如xxx.so文件等,虽然我们知道这是因为没有安装某个必须的软件包所致,却不知道具体是哪个软件包。

解决这样的问题,在fedora/RHEL 上,使用yum whatprovides 可以很轻松的查到。相应的,在ubuntu下面有什么解决方案?可使用apt-file工具。

apt-file是一个软件包查找工具,可以查看到某个文件是属于哪个软件包,非常方便。

首先安装apt-file

sudo apt-get install apt-file
apt-file update //更新软件包信息的数据库,如果使用了apt-get update 更新了软件源,相应的需要再使用apt-file update 更新一次。

用法:
apt-file search file_name //查找该文件存在于哪些软件包中。

apt-file list package_name //显示该软件包的文件

例如:

在安装WPS时,提示缺少libgthread-2.0.so.0

此时,输入apt-file search libgthread-2.0.so.0

输出:
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0

说明需要安装libglib2.0-0

apt-get install libglib2.0-0:i386 就可以了(:i386表示安装的是32位的)

是不是很方便呢~~~:loveliness:

补充个,dpkg -S 是查系统现有文件属于哪个包的 也很实用

恩,这两个命令都挺好用的,个人觉得dpkg更方便些:2_27:

dpkg -S只能查系统已经安装的包的文件,apt-file查的是整个源仓库中匹配的包

匹配范围还真没研究过,受教了,谢谢lz:3_48:

当你需要某个库,而系统中又没有时,apt-file search会帮你的大忙:lol:lol

学习了,好多东西现在慢慢的在我面前有复杂变简单了!

哈哈哈,慢慢积累吧,用得多了,就会了哈

这厮靠积累的

我觉得 aptitude 挺不错的