从源代码构建软件时如何找到依赖项?

从源代码构建软件时如何找到依赖项?

这是我所做的。我下载了 foxtrotgps.1.1.1.tar.gz,因为它是最新的 /home/crash/usr/local.src,我将其解压到我的 /home/crash/usr/local/src 作为目录 /foxtrotgps.1.1.1

然后,我检查了所有必需的包是否达到正确的级别,如果它们存在或者缺失,我就添加它们。

然后我转到 FTGPS 目录并执行 ./configure,然后它会到达它所说的位置;

No package 'gtk+-2.0' found
No package 'gdk-2.0' found
No package 'gthread-2.0' found

但是 gtk+-2.0 在那里,但我找不到 gdk 或 gthread。它停止了,什么也没发生。我做错了什么 - 我缺少哪些软件包依赖项?

答案1

附则

我假设你正在使用较新版本的 Ubuntu,例如 12.04。存储库中的版本被视为稳定的- 因此也许您希望使用该版本。

但是,如果您喜欢走在前沿 - 从 PPA 编译或安装是最佳选择。请记住,这种方式可能会让您的系统处于潜在的不稳定状态。

如何编译

安装所需的依赖项如下:

sudo apt-get install autotools-dev intltool libbluetooth-dev libcurl4-gnutls-dev libexif-dev libgconf2-dev libglade2-dev libgps-dev libgtk2.0-dev  libsoup2.4-dev  libsqlite3-dev libxml2-dev

记得还要安装包,build-essential

sudo apt-get install build-essential

我怎么知道的

......好吧,我有点作弊了。

搜索packages.ubuntu.comfoxtrotgps对于您的包-我在 Quantal 存储库中查找。

在此处输入图片描述

查看资源并查找 debian.tar.xz 文件。单击它 - 它将会在存档管理器中打开。导航到controldebian 文件夹中的文件。

在此处输入图片描述

build-depends 部分是 Launchpad 构建源所需的软件包 - 它与您需要安装的软件包相同。

答案2

有时,您可以不使用源依赖项的 PPA 来编译新版本,并使用build-depUbuntu 中的强大功能。确保您已选择源包,并在 sources.list 文件中包含此行:

deb-src http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse

您可以在终端中输入进行检查cat /etc/apt/sources.list

我已经通过获取依赖项成功编译了Stellarium 0.11.3、和其他文件;例如:Scummvm 1.5.0build-dep

sudo apt-get build-dep scummvm

对于存储库中已有的包,您可以使用以下命令检查依赖关系:

apt-cache show foxtrotgps

比较它包含新版本所需的依赖项,将在程序的网站上列出,或在源代码下载的自述文件中列出。

通常,当通过方法获取依赖项时,build-dep您必须下载稳定的源代码来自程序的站点,而不是开发或 git 版本。它将不是总是可以通过这种方式编译新版本,但值得一试。(例如,Gimp 2.8 需要更高版本的 Gtk,而使用 Precise 的源文件无法满足这一要求。)

然而,我已经build-dep成功地使用过这个方法狐步舞;只需按照以下步骤操作即可(假设您已经安装了build-essential):

  • 从以下网址下载最新的稳定源代码(目前版本为 1.1.1)Foxtrot 网站

  • 打开终端并输入sudo apt-get build-dep foxtrotgps

  • 将下载的源代码用tar xzvf <file>和解压cd到 foxtrot 文件夹。然后运行以下三个命令:
  • ./configure
  • make
  • sudo checkinstallcheckinstall如果没有,请安装,或使用sudo make install

下面是编译后的程序 foxtrotgps 的屏幕截图:

狐步舞

相关内容