apt-file:查找缺失的软件包文件

作者:Michael Reed

是否曾经因为缺少文件而导致源代码包构建失败?如果是这样,apt-file,一种用于在在线存储库中搜索特定文件的工具,可能会是解决方案。

偶尔,在从源代码构建软件包时,会发生灾难,并且由于缺少文件而导致整个过程停止。 幸运的是,由于 Linux 软件包管理的成熟和 Autoconf 配置脚本的普及,这种情况越来越少见。 但是,某些软件项目不使用 Autoconf,要么是因为维护人员更喜欢 CMake 等其他解决方案,要么是因为该程序太小而无法设置 configure 脚本。

幸运的是,在极少数情况下出现此问题时,可能有一种解决方案,那就是 apt-file:APT 软件包管理工具系列的一员。 此实用程序会汇编一个索引,其中包含您的发行版配置为使用的在线存储库中存储的所有文件,并允许您搜索单个文件。

案例示例:最近,我决定检查 KBackup,这是一个目前不在 Ubuntu 存储库中的 KDE 备份管理实用程序。 按照说明,我运行了 CMake 构建工具,但令人失望的是,构建过程停止并提示找不到名为“FindKDE4Internal.cmake”的文件。

为了解决这个问题,我通过命令行安装了 apt-file

sudo apt-get install apt-file

安装后,需要使用以下命令填充 apt-file 的内部索引

apt-file update

此过程需要一分钟左右才能完成,具体取决于您的 Internet 连接速度。 索引更新后,我搜索了丢失的文件

apt-file search FindKDE4Internal.cmake

apt-file 给出了单行输出,告诉我需要知道的一切

kdelibs5-dev: /usr/share/kde4/apps/cmake/modules/FindKDE4Internal.cmake

换句话说,我需要的文件位于“kdelibs5-dev”软件包中,我从命令行安装了该软件包

sudo apt-get install kdelibs5-dev

之后,我能够继续并完成正常的安装过程。


注意:如果您确实发现源代码包中存在疏忽,即使在成功运行 Autoconf configure 脚本之后,仍然需要使用 apt-file,请考虑告诉开发人员。

加载 Disqus 评论