【问题标题】:Creating an rpm package from source tarball - but tarball contains no spec file, just an install script从源 tarball 创建一个 rpm 包 - 但 tarball 不包含规范文件,只是一个安装脚本
【发布时间】:2011-09-12 04:45:16
【问题描述】:

在我担任 SysAdmin 期间,我遇到过一些应用程序不提供 rpm 包以安装在基于 redhat 的发行版上 - 仅提供源 tarball。源 tarball 不提供可以简化 rpm 包创建过程的规范文件。相反,源 tarball 只提供了一个 bash/ksh/ 脚本,必须以 root 身份执行才能在系统上安装应用程序。

我试图创建一个 rpm 包,它基本上运行安装脚本来执行安装脚本。我还尝试通过尝试以非 root 用户身份 rpmbuild 软件包并尽我所能修改安装脚本以确保脚本的安装目录引用 rpm 环境/宏来做正确的事情。但是对于一个几百行长的复杂安装脚本,它还会调用其他脚本......好吧,我注定要失败。

有没有更好的方法来打包这种无 .spec 的源 tarball?更好的解决方案是:

  1. 在安装应用程序之前以某种方式拍摄系统快照
  2. 使用提供的安装脚本安装源 tarball
  3. 安装后拍摄系统快照,并确定安装所做的更改/添加
  4. 将更改/添加列表放入规范文件中,并以这种方式创建 rpm 包?

任何有用的/相关的/指导性的/有趣的/深刻的意见和建议将不胜感激。

提前谢谢你

【问题讨论】:

    标签: packaging rpm rpmbuild rpm-spec software-packaging


    【解决方案1】:

    我认为最好的解决方案是请求上游提供应用程序的规范文件。另一种方法是请求经验包维护者来打包应用程序。或者您可以探索checkinstall,因为它使用 Makefile 跟踪安装文件。如果你想自己打包,你应该阅读这个link,因为它提供了解释和许多例子。

    【讨论】:

      【解决方案2】:

      我见过很多像你提到的脚本,我想我可以肯定地告诉你公司卖给你这些可怕的安装。

      最好的办法是请求一个合适的可安装包。阅读为什么一个包比 configure;make;make-install 更好,并且比这个 install.sh 废话更好。有了这一点,即使它是谈话要点,也要尝试让它们进入第三个千年。这将是艰难的,但最终会带来最大的回报。

      除此之外,您将需要构建该软件包(现在您已经了解了原因)。不幸的是,有些应用程序和供应商的有效负载无法打包,因为他们编译、查询目标主机、查找许可证、编译更多内容等。我在这里的偏见是很好的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-22
        • 1970-01-01
        • 1970-01-01
        • 2014-04-21
        相关资源
        最近更新 更多