进行安装,但不是默认目录?

我想运行“make install”,所以我有我需要的一切,但我想它安装在自己的文件夹中的东西,而不是系统的/ usr / bin等是可能的吗? 即使它引用/ usr / bin等工具?

这取决于包。 如果Makefile是由GNU autotools( ./configure )生成的,你通常可以像这样设置目标位置:

 ./configure --prefix=/somewhere/else/than/usr/local 

如果Makefile不是由autotools生成的,而是随软件一起发布的,只需在编辑器中打开它并进行更改即可。 安装目标目录可能在某个variables中定义。

既然不知道哪个版本的automake可以使用DESTDIR环境variables。
请参阅Makefile以确保。

例如:

  export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install 

这可能取决于您正在编译的模块所支持的内容。 如果你的makefile是使用autotools生成的,使用:

--prefix=<myinstalldir>

运行./configure时

一些软件包允许您在运行时也覆盖:

 make prefix=<myinstalldir> 

然而,如果你不使用./configure,只有这样才能知道是否打开makefile并检查。 它应该是顶部的前几个variables之一。

 make DESTDIR=./new/customized/path install 

这个快速命令为我在Ubuntu 16上的opencv版本3.2.0安装工作。DESTDIRpath可以是相对的,也可以是绝对的。

只要DESTDIR位置对用户具有正确的访问权限,这样的redirect也可以用于用户不具有pipe理权限的情况。 例如/ home //

尝试使用INSTALL_ROOT。

 make install INSTALL_ROOT=$INSTALL_DIRECTORY