安装,但不是默认目录?

时间:2010-07-13 16:40:39

标签: linux gcc makefile autotools

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

7 个答案:

答案 0 :(得分:172)

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

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

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

答案 1 :(得分:31)

由于不知道哪个版本的automake可以使用 DESTDIR 环境变量。
请参阅Makefile以确定。

例如:

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

答案 2 :(得分:16)

它可能取决于您尝试编译的模块支持的内容。如果使用autotools生成makefile,请使用:

--prefix=<myinstalldir>

运行./configure

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

make prefix=<myinstalldir>

但是,如果你没有使用./configure,只有这样才能确定是打开makefile并检查。它应该是顶部的前几个变量之一。

答案 3 :(得分:14)

make DESTDIR=./new/customized/path install

这个快速命令对我来说非常适合在Ubuntu 16上安装opencv 3.2.0版.DESTDIR路径既可以是相对路径,也可以是绝对路径。

只要DESTDIR位置对用户具有正确的访问权限,用户就没有管理员权限,这种重定向也很有用。例如/ home //

答案 4 :(得分:2)

如果包提供Makefile.PL - 可以使用:

perl Makefile.PL PREFIX=/home/my/local/lib LIB=/home/my/local/lib
make
make test
make install

*进一步说明:https://www.perlmonks.org/?node_id=564720

答案 5 :(得分:-1)

我尝试了上述解决方案。没有工作。

最后我打开了Makefile文件并手动将前缀路径更改为所需的安装路径,如下所示。

PREFIX ?= "installation path"

当我尝试--prefix,&#34; make&#34;抱怨没有这样的命令输入。但是,也许有些软件包接受--prefix,这当然是一个更清洁的解决方案。

答案 6 :(得分:-6)

尝试使用INSTALL_ROOT。

make install INSTALL_ROOT=$INSTALL_DIRECTORY