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=directorydirectorydirectorydirectory可执行文件通常会进入
directory/bin,但directory/sbin如果它们通常用于系统管理,它们可能会进入,或者directory/games如果它们是游戏,它们可能会进入(现在很少见) 。库进入directory/lib或另一个类似命名的目录,如directory/lib32. 头文件进去directory/include。手册页进去directory/man。软件使用的数据文件进入directory/share。这意味着什么
directory是一个前缀。它是包含将安装不同文件的位置的父目录。因此,它在通过运行 或创建的大多数文件和目录的绝对路径中显示为前缀。make installsudo make install有一些例外。系统范围的配置文件——有时在安装将使用它们的软件时创建,但并非总是如此——通常进入
/etc. 这通常不受指定不同前缀的影响。即使您在 中安装了很多软件/usr/local,它仍然主要使用/etc,并且您的/usr/local/etc目录可能不存在、为空或包含很少的文件。在许多系统上,您可以通过运行
man hier. 如果您使用的是 GNU/Linux 系统,您可能对Filesystem Hierarchy Standard感兴趣。
| 归档时间: |
|
| 查看次数: |
96590 次 |
| 最近记录: |