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

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

  • 相关阅读:
    c#读取.config文件内容
    c# 读取配置文件方法
    C# Log4net详细说明
    C# 运算符集
    LeetCode 69_ x 的平方根
    LeetCode 172 _ 阶乘后的零
    LeetCode 171 _ Excel表列序号
    LeetCode 88 _ 合并两个有序数组
    LeetCode 581 _ 最短无序连续子数组
    LeetCode 283 _ 移动零
  • 原文地址:https://www.cnblogs.com/chenyaling/p/5806965.html
Copyright © 2020-2023  润新知