• 报错: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里面直接写内容,这样改起来也方便。

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

  • 相关阅读:
    基于p2p聊天室的原理介绍.个人学习笔记
    一个可移植数据库操作组件的简单介绍
    常见任务
    sql常用语句
    认真写写SQLAlchemy
    Jenkins 安装与使用手册
    Ajax
    支持主流注册中心,SolarMesh发布新版本 SolarMesh
    API标准化对Dapr的重要性
    企业数字化转型,你知道有哪些关键要素吗?
  • 原文地址:https://www.cnblogs.com/chenyaling/p/5806965.html
Copyright © 2020-2023  润新知