如何从源代码编译和安装程序

如何从源代码编译和安装程序

这个问题确实限制了我对 Linux 的享受。如果应用程序不在存储库中或者没有安装程序脚本,那么我真的很难从源代码安装应用程序的位置和方式。

与 Windows 相比,这很容易。您(几乎)需要使用一个安装程序应用程序来完成向导中的所有工作。对于Linux……没那么多。

那么,您对此有何建议或说明,或者是否有任何网站明确解释如何、为何以及在何处从源代码安装 Linux 程序?

答案1

通常,该项目会有一个网站,其中包含有关如何构建和安装它的说明。首先谷歌一下。

大多数情况下,您将执行以下任一操作:

  1. 下载 tarball(tar.gz 或 tar.bz2 文件),它是特定版本源代码的发布版本
  2. tar zxvf myapp.tar.gz使用 gzipped tarball 或tar jxvf myapp.tar.bz2bzipped tarball等命令提取 tarball
  3. cd 进入上面创建的目录
  4. 跑步./configure && make && sudo make install

或者:

  1. 使用 git 或 svn 或其他方式从其官方源代码库中提取最新的源代码
  2. cd 进入上面创建的目录
  3. 跑步./autogen.sh && make && sudo make install

configure 和 autogen.sh 都将接受 --prefix 参数来指定软件的安装位置。我建议查看我自己编译的软件应该放在哪里?有关安装定制软件的最佳位置的建议。

答案2

我只是想补充一点,有一些包管理器可以从源代码编译包,并处理所有包依赖项、标志等。

在 BSD 系统中它是ports使用 Ports 集合

在 Debian 中,apt-get包管理器也可以从源代码安装:APT HOWTO:使用源包(Ubuntu、Linux-mint 和其他所有基于 Debian 的系统也是如此)

Gentoo 发行版使用portage包管理器,它仅从源代码编译整个系统:波蒂奇简介

Slackware 可以编译包,但我不知道那里是否有任何包管理器..=)

无论如何,您始终可以像上面提到的 Sandy 一样手动编译软件包 =) 此外,还必须可以在任何其他发行版中使用软件包管理器apt-get...portage

答案3

我认为最好阅读您想要安装的特定程序或应用程序附带的文档。通常,压缩包(您通常可以下载的应用程序源存档)内有自述文件/自述文件,甚至可能有安装文件来阅读和了解安装所述应用程序的首选方式。简而言之:RTFM ;)

答案4

最近,我在从包管理器之外的源安装时开始使用“Checkinstall”。它从第 3 方 tarball 构建一个“包”,然后可以通过包管理器工具安装和管理(和卸载)该“包”。

看看这篇文章——http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

相关内容