配置构建
当您具有通过./configure
和编译的源代码时,make
通常将使用make install
(或sudo make install
)进行安装。这会将文件从构建目录复制到安装位置。当您要安装的东西提供可执行命令时,通常会将这些可执行文件复制到其中的目录$PATH
或您应该考虑添加到的目录中
$PATH
。
尽管构建和安装软件通常就像运行./configure
,,make
有时make check
或make test
,然后是make install
或那样简单sudo make install
,但您有时仍希望将选项传递给configure
脚本以配置构建。特别是,作为pfnuesel说,你这是怎么配置
,其中该软件将被安装。即使该make install
步骤实际安装了软件,也通常会在该./configure
步骤中确定将安装所有内容的位置
。
最常见的选择是--prefix
。当您不知道configure
要使用什么时,默认前缀通常是/usr/local
。(有时,程序或库的源代码默认使用其他前缀。幸运的是,这种情况很少见。)
因此./configure
通常等于./configure --prefix=/usr/local
。要将软件安装在主目录中,可以使用./configure --prefix=/home/galahad
(如果/home/galahad
是主目录)或--prefix="$HOME"
。然后,当然您仍然必须使用来构建和安装软件make
。我应该说并不是所有以源代码形式分发的软件都是以这种方式构建的。您应该始终在提取的源代码档案中查找文档。
什么--prefix
意思
运行时,表示已将软件安装在
目录下。但这很少(如果有的话)将松散的文件放在中。相反,它将用于不同目的的文件放在的不同子目录中。如果这些子目录不存在,则会创建它们。./configure --prefix=directory
directory
directory
directory
可执行文件通常会进入directory/bin
,尽管directory/sbin
如果它们通常用于系统管理则可能会进入,或者,directory/games
如果它们是游戏,它们可能会(最近很少出现)进入
。库进入
directory/lib
另一个相似的目录,如
directory/lib32
。头文件进入
directory/include
。手册页进入
directory/man
。软件使用的数据文件进入
directory/share
。
这意味着什么directory
是一个前缀。它是父目录,其中包含将安装不同文件的位置。因此,它在大多数通过运行
或创建的文件和目录的绝对路径中显示为前缀。make install
sudo make install
这有一些例外。系统范围的配置文件(有时并不总是安装在安装将使用它们的软件时创建的)通常进入/etc
。这通常不受指定其他前缀的影响。即使您在中安装了很多软件/usr/local
,该软件仍将主要使用
/etc
,并且您的/usr/local/etc
目录可能不存在,为空或包含的文件很少。
在许多系统上,您可以通过运行来找到有关典型文件系统布局的更多信息man hier
。如果您使用的是GNU / Linux系统,则可能对Filesystem Hierarchy Standard感兴趣。