报错:make: *** No rule to make target `install'

前不久,朱老师让写一个spec。

我之前并没有写过spec,根本不知道这是什么,去网上查看了大量的关于spec的博客,遇到的坑很多,但是遇到最大的坑就是%install部分的make install。

网上的资料是这样说的:

本段是安装段,其中的命令在安装软件包时将执行,如make install命令。
%makeinstall 这不是关键字,而是rpm定义的标准宏命令。也可以使用非标准写法:引用make DESTDIR=$RPM_BUILD_ROOT install或引用make prefix=$RPM_BUILD_ROOT install
需要说明的是,这里的%install主要就是为了后面的%file服务的。所以,还可以使用常规的系统命令:
引用install -d $RPM_BUILD_ROOT/
cp -a * $RPM_BUILD_ROOT/

但是我每次使用make install时候都会报错make: *** No rule to make target 'install'。换成install -d的写好就可以,我也不明白是为什么。

后来发现,使用make install是在已经编写过Makefile的前提下进行的,报错中的install其实是Makefile中的写好的target。

举个例子,在Makefile中编写,如下:

install-oem:
    mkdir -p $(LIBDIR)/xsconsole/plugins-oem

则在%install中就可以这样写:

%install
make install-oem DESTDIR=$RPM_BUILD_ROOT

否则,当然会报错找不到target。

朱老师说现在使用Makefile已经有点过时了。我是觉得Makefile很烦,写错了,还要重新打包,生成压缩文件才行。改多了之后根本受不了,不如直接在%install里面直接写内容,这样改起来也方便。

【作为一个菜鸟真心不希望前辈们再不实践照抄他人博客,坑太多了】

原文地址:https://www.cnblogs.com/chenyaling/p/5806965.html