Answers:
./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
。
mv usr/local/* . && rmdir usr/local && rmdir usr
典型的方式来修复目录结构-使用起来prefix=
要好得多!
DESTDIR=/tmp/foo make install
;对于基于cmake的项目,我可以运气cmake -DCMAKE_INSTALL_PREFIX=/tmp/test1 -P cmake_install.cmake
更好 /tmp/foo/{bin,...}
;有关示例,请参见github.com/opencv/opencv/issues/11833#issuecomment-401164056。
DESTDIR
和prefix
可以一起使用make install
,即make install DESTDIR=/foo/bar/tmp perfix=/local
。
这可以帮助说明DESTDIR
and --prefix
(从此处开始)的用法:
使用--prefix和DESTDIR进行多次安装:
在配置时,为每个版本分隔一个不同的--prefix位置/选项。例如:
untar petsc tar ball ./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
cmake -DCMAKE_INSTALL_PREFIX=/foo/bar/baz -P cmake_install.cmake
在build目录中运行来模拟“案例4”(用于存储等)。