在Ubuntu上编译软件时如何解决依赖性
在Linux上编译软件最困难的部分是找到其依赖项并进行安装。 Ubuntu具有apt命令,该命令可自动检测,查找和安装依赖项,为我们完成艰苦的工作。
最近,我们从Ubuntu上的源代码中涵盖了编译软件的基础知识,因此,如果我们刚刚开始,请查看我们的原始文章。
自动适应
当我们通过它运行./configure命令时,自动apt会监视并等待。当./configure尝试访问不存在的文件时,自动apt会将./configure进程置于保留状态,安装适当的软件包,并让./configure进程继续进行。
首先,使用以下命令安装自动apt:
sudo apt-get install auto-apt
安装完成后,运行以下命令下载自动适配所需的文件列表。此过程将花费几分钟。
sudo auto-apt update
完成第一个命令后,运行以下命令以更新其数据库。这些命令也将花费几分钟。
sudo auto-apt updatedb && sudo auto-apt update-local
完成自动apt数据库的构建后,我们可以使用以下命令启动./configure过程:
sudo auto-apt run ./configure
附件文件
如果我们看到一条错误消息,提示缺少特定文件,则可能不知道要获取该文件必须安装的软件包。使用Apt-file,我们可以使用单个命令查找包含特定文件的软件包。
首先,我们必须自己安装apt-file:
sudo apt-get install apt-file
安装后,运行以下命令从配置的apt资料库下载文件列表。这些都是大列表,因此下载它们将花费几分钟。
sudo apt-file update
运行以下命令,将example.pc替换为文件名,该命令将准确告诉我们需要安装哪个软件包:
apt-file search file example.pc
使用标准的apt-get install命令安装软件包:
sudo apt-get install package
我们也可以从Ubuntu软件包搜索网站上执行文件搜索。使用页面上的"搜索软件包内容"部分来搜索特定文件。
它会为我们提供与apt-file相同的结果,并且我们无需下载任何文件列表。
Apt-Get Build-Dep
我们在最初的文章中介绍了apt-get build-dep。如果我们要安装的程序的早期版本已经在Ubuntus软件包存储库中,则Ubuntu已经知道它所需的依赖项。
键入以下命令,用packagege的名称替换package,然后apt-get将安装所需的依赖项:
sudo apt-get build-dep package
Apt-get提示我们安装所有必需的依赖项。
如果程序的较新版本需要不同的依赖性,则可能必须手动安装一些其他的依赖性。
所有这些命令都使用apt-get,因此我们也可以在Debian,Linux Mint和任何其他使用apt-get和.deb软件包的Linux发行版中使用它们。