46 configure
所以我只是有一个简单的问题 可能会让我看起来很笨,但我正在学习
当我做一个
./configure --prefix/usr/bin/
Run Code Online (Sandbox Code Playgroud)
前缀是做什么的?这是否只是将软件包安装到该位置
并且回复是否可以为复杂的安装提供更多详细的答案,并详细解释与之配套的前缀和选项。
如果我要运行 apt-get 安装,我将如何将它安装到带有前缀的某个位置
我也看过
PREFIX=/tmp/installdir make
PREFIX=/tmp/installdir make install
Run Code Online (Sandbox Code Playgroud)
如果在 ./configure 中调用了前缀,为什么在这两个示例中总是使用它?
先感谢您!
Eli*_*gan 58
使用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感兴趣。
归档时间: |
|
查看次数: |
96590 次 |
最近记录: |