我知道有一系列标准的命令来编译和安装只作为源代码的软件包。 它是什么?
通常是这样的。
./configure
这个(在你的源代码所在的目录下执行的时候)会创build一个Makefile,其中包含用于构build程序的规则。 这是您可以更改编译行为的地方(即,使用非默认选项编译程序)。
make
这用Makefile中指定的规则构build程序。
make install
这通常以root用户身份执行(或使用sudo make install
来避免以root身份login),并将编译好的程序安装到系统中。
[编辑]
正如Mihai Limbasan指出的那样,通常可以将–prefix选项传递给./configure以确定程序的安装位置。 如果您在目标目录中拥有必要的权限,则甚至不需要使用sudo(或以root身份)运行make install。
例如,如果你这样做
--prefix=/home/username/whatever/directory/here
你应该可以在没有root权限的情况下安装这个程序。 我应该指出,这将限制程序的使用权限在你指定的目录上具有执行权限。 因此,如果您需要系统范围的安装,则应该使用默认解决scheme(以root用户身份运行make install)。
Mihai还提醒说,你可以通过运行删除已安装的程序
make uninstall
(再次,以root用户身份或者使用sudo,如果您在configuration中使用了默认选项),但是这要求您在安装程序之后保留构build目录。 也就是说,删除已经编译的程序的源代码目录并不是最好的做法,所以以后可以删除它。
我得到应用程序源码的第一件事就是阅读标准的README / INSTALL文件。 他们通常会告诉我我需要做什么。 他们告诉我,我将编译之前将要安装什么依赖项,以获得我想要的所有function。 他们告诉我我需要做什么来确保安装。
less INSTALL less README
花3-5分钟阅读这些文档,可以为您节省大量的时间。
这些步骤假定软件包编译正确,所有依赖关系都满足,并且“检查”目标存在并通过。
对于你的./configure,你可能要先使用./configure –help,因为这会显示可以传递给configuration的configuration选项。 如果您的编译出现问题,或者不希望包提供一些支持,这将特别有用。
使检查有时replace为testing以及。 我build议在安装前编译的任何软件上尝试这些。