所以我有一个简单的问题,可能会让我看起来很愚蠢,但是我正在学习
当我做一个
./configure --prefix/usr/bin/
前缀在做什么?这只是将软件包安装到该位置吗
对于复杂的安装,答复是否可以给出更详尽的答案,并详细说明其附带的前缀和选项。
如果我要运行apt-get安装,如何将其安装到带有前缀的特定位置
我也看过
PREFIX=/tmp/installdir make
PREFIX=/tmp/installdir make install
如果在./configure中调用了prefix,那么为什么在这两个示例中总是使用它?
先感谢您!
使用make install
或安装软件时sudo make install
,会将不同的文件放在不同的目录中。提供用户要运行的命令的可执行文件通常位于bin
目录中,库通常位于lib
目录中,手册页通常位于man
目录中,依此类推。
运行时./configure
,该--prefix
选项可让您指定这些目录的位置。--prefix
之所以这样称呼它,是因为它使您可以在将要安装的程序或库中的文件安装到每个目录的路径中提供前缀。大多数configure
脚本都支持--prefix
,并且省略它并仅运行./configure
通常等效于./configure --prefix=/usr/local
。
为了更全面地回答这个问题,我已经转载两段从我的回答对如何安装tar文件“全球”?(在Unix和Linux上),它专门解决了这个问题:
配置构建
当您有通过运行
./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感兴趣。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句