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

Nit*_*ist 47 compiling source software-installation

这个问题确实限制了我对 Linux 的享受。如果应用程序不在存储库中,或者它没有安装程序脚本,那么我真的很纠结在哪里以及如何从源代码安装应用程序。

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

那么,您是否对此有任何提示或说明,或者是否有任何网站明确解释了从源代码安装 Linux 程序的方式、原因和位置?

San*_*ndy 27

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

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

  1. 下载 tarball(tar.gz 或 tar.bz2 文件),它是特定版本源代码的发布
  2. 使用类似tar zxvf myapp.tar.gzgzipped 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 参数来指定软件的安装位置。我建议查看我应该把自己编译的软件放在哪里?有关安装定制软件的最佳位置的建议。

  • @Matt,当然有道理,但我认为评论更多的是针对 Sandy 现在让它看起来好像在每个 git'd/svn'd 主干中都有一个 autogen.sh 的事实。 (2认同)

hol*_*lms 6

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

在 BSD 系统中ports使用 Ports Collection

在 Debian 中,apt-get包管理器也可以从源代码安装:APT HOWTO:使用源代码包(同样适用于 Ubuntu、Linux-mint 和基于 Debian 的所有其他东西)

Gentoo 发行版使用portage包管理器,它仅从源代码编译整个系统:Portage Introduction

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

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