当前位置: 首页 > 面试题库 >

make的DESTDIR和PREFIX

高山
2023-03-14
问题内容

我正在尝试将软件安装到特定目录。我发现了几种方法,但不确定它们之间有什么区别。

  1. ./configure --prefix=***
  2. make install DESTDIR=***
  3. make install prefix=***

我对这三个功能感到困惑。他们是否达到了相同的目标?


问题答案:

./configure --prefix=***

数字1 决定了程序包在安装时的运行位置以及运行时将在何处查找其关联文件。如果您只是编译要在单个主机上使用的东西,则应该使用它。

make install DESTDIR=***

2号
是用于安装到一个临时目录,而不是从中运行该软件包。例如,在构建deb软件包时使用它。构建软件包的人实际上并没有将所有内容安装到自己系统上的最终位置。他可能已经安装了其他版本,不想打扰它,甚至可能不是root用户。所以他用

./configure --prefix=/usr

因此该程序有望在/usr运行时安装在其中,然后

make install DESTDIR=debian/tmp

实际创建目录结构。

make install prefix=***

3号 将其安装到其他位置,但不会像创建那样创建所有目录DESTDIR=/foo/bar/baz。它通常与GNU存放通过

./configure --prefix=/usr/local && make && sudo make install prefix=/usr/local/stow/foo

,它将在中安装二进制文件/usr/local/stow/foo/bin。通过对比,

make install DESTDIR=/usr/local/stow/foo

会在中安装二进制文件/usr/local/stow/foo/usr/local/bin



 类似资料:
  • make和Makefile GNU make(简称make)是一种代码维护工具,在大中型项目中,它将根据程序各个模块的更新情况,自动的维护和生成目标代码。 make命令执行时,需要一个 makefile (或Makefile)文件,以告诉make命令需要怎么样的去编译和链接程序。首先,我们用一个示例来说明makefile的书写规则。以便给大家一个感兴认识。这个示例来源于gnu的make使用手册,在

  • 我的情况如下: 我正在使用Ubuntu 第一次安装时,我运行了: 这将Python 2.7安装到我的系统。它将在中创建一个链接python,链接到中的python2.7。所以当我输入

  • 下面是我的案例: 第一次安装的时候,我跑: 这将Python2.7安装到我的系统中。它将在中创建链接“python”,链接到中的。所以当我键入时,系统将为我启动Python 2.7.4,就像键入时一样。 但当我这样安装时: 中的链接“python”仍然存在,并且链接到这是默认的系统版本。当然,我可以移除它并创建一个新的链接到的软链接。 除了中的链接之外,命令“make install”和“make

  • 在maven模块中工作时,在intellij构建->Make Project和maven Projects->Root pom->Compile阶段有什么不同。 intellij调用Maven吗?它们都将源码编译到同一个地方吗?它们都复制资源文件吗?为什么我们需要两种选择?intellij是否会自动下载依赖项,并且我们只需调用project make,而无需使用maven Compile?

  • 一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让 make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用make命令的。 make的退出码 make命令执行后有三个退出码: 0 —— 表示成功执行。 1 —— 如果make运行时

  • 一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切 都是自动的。但也有时你也许只想让make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规 则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用make命令的。 make的退出码 make命令执行后有三个退出码: 0 表示成功执行。 1 如果make运行时出现任何错