我正在尝试将软件安装到特定的目录。我找到了几种方法,但不确定它们之间的区别。
./configure --prefix=***make install DESTDIR=***make install prefix=***我对这三个的功能感到困惑。它们是否实现了相同的目标?
发布于 2012-07-03 17:09:20
./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 stow via一起使用
./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中安装二进制文件。
发布于 2018-04-27 22:31:14
这有助于说明DESTDIR和--prefix (来自here)的用法:
使用--前缀和DESTDIR:多次安装
在配置时为每个构建指定一个不同的--prefix位置/选项。例如:
/configure --prefix=/opt/ petsc / petsc -3.9.0-mpich --with-mpi-dir=/opt/mpich make make install DESTDIR=/tmp/petsc-pkg untar petsc tar ball。/configure --prefix=/opt/petsc/petsc-3.9.0-openmpi --with-mpi-dir=/opt/openmpi make make install DESTDIR=/tmp/petsc-pkg
发布于 2019-04-17 00:42:06
来自openssl/INSTALL
想要为标准位置配置库,但将包安装在其他位置以便可以轻松打包的
包构建者可以使用
$ make INSTALL_PREFIX=/tmp/package-root install
(或者指定"--install_prefix=/tmp/package-root“作为配置选项)。指定的前缀将作为所有安装目标文件名的前缀。
这是非标准的,但是在其他一些程序中使用了INSTALL_PREFIX。
这适用于1.1.x之前的OpenSSL版本。OpenSSL 1.1.x和更高版本能够识别普通的DESTDIR。
https://stackoverflow.com/questions/11307465
复制相似问题