昨天别的项目同事遇到一个编译遇到在不同linx版本下编译erLang的源码时,其中有一个版本的编译出现在./configure时加入---prefix指定编译后的安装目录,总会在指定的安装另前多了/usr/local的目录,导致无法源码安装到普通用户指定的目录
安装步骤:
1. 进入otp_src_20.1目录
./configure --prefix=指定目录 --without-javac
2. 编译安装
make && make install
出现如下图的报错
如下图所示:
然后通过输出的报错找到Makefile的对应位置进行原因反找:
通过反向查找后发现是虽然编译步骤没有设置参数给INSTALL_PREFIX 赋值,但却INSTALL_PREFIX却被赋值为/usr/local ,导致直接make install时,没办法按./configuire –prefix=指定目录 进行安装。
解决处理方法:
就是在make install时,将INSTALL_PREFIX赋值为空值,这样源码编译安装的目录就可以按照./configuire –prefix=指定目录 进行安装
make install INSTALL_PREFIX=
如下图所示:
此时就可以安装到--prefix指定的目录下