我正在尝试将软件安装到特定目录。我找到了几种方法,但不确定它们之间有什么区别。
./configure --prefix=***
make install DESTDIR=***
make install prefix=***
我对这三个的功能感到困惑。他们是否实现了相同的目标?
最佳答案
./configure --prefix=***
数字 1 决定了软件包在安装时的去向,以及在运行时查找相关文件的位置。如果您只是编译某些东西以在单个主机上使用,那么您应该使用它。
make install DESTDIR=***
数字 2 用于安装到临时目录,该目录不是运行包的位置。例如,这在构建 deb
包时使用。构建包的人实际上并没有将所有东西都安装到他自己系统上的最终位置。他可能已经安装了不同的版本并且不想打扰它,或者他甚至可能不是 root。所以他用
./configure --prefix=/usr
所以程序在运行时会期望安装在 /usr
中,然后
make install DESTDIR=debian/tmp
实际创建目录结构。
make install prefix=***
Number 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
中安装二进制文件。
https://stackoverflow.com/questions/11307465/