【问题标题】:rpm spec call uname -rrpm 规范调用 uname -r
【发布时间】:2011-03-31 13:03:33
【问题描述】:

当我安装我的应用程序时,我想复制/lib/modules/KERNEL_VERSION/extra 中的一些文件。

问题当然是KERNEL_VERSION不固定。

我可以通过调用"uname -r" 找到它,但是如何在 rpm 规范文件中执行此操作?

另外,如果有更好的方法,我愿意接受。

【问题讨论】:

    标签: rpm specifications uname


    【解决方案1】:

    您可以将uname -r 的结果插入到目录中(在这里猜测):

    /lib/modules/`uname -r`/extra/
    

    【讨论】:

      【解决方案2】:

      当您尝试加载为不同内核编译的内核模块时,这个问题的答案可能会给您留下符号不匹配的问题。

      要在编译时放置内核模块,请按照 Delan 的回答:

      %files
      /lib/modules/`uname -r`/extra/*.ko
      

      要将先前编译的内核模块放置在当前运行的内核路径中,您必须在 %post 部分中做一些棘手的事情:

      %post
      cp /lib/modules/known/location/*.ko /lib/modules/`uname -r`/extra/*.ko
      
      %postun
      rm /lib/modules/... # hopefully they have not upgraded their current kernel..
      
      %files
      /lib/modules/known/location/*.ko
      

      这将安装可能无法在正在运行的内核上加载的内核模块。通常源 RPM 是这个确切问题的解决方案。

      【讨论】:

        【解决方案3】:

        这不是一个好主意,因为您应该使用 %triggerin 在客户端计算机上编译内核模块,这样它才能在内核升级后继续存在。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-03
          • 2013-08-09
          • 1970-01-01
          • 2018-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-26
          相关资源
          最近更新 更多