1

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

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

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

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

对此问题的任何有用/相关/指导性/有趣/深刻的输入和建议将不胜感激。

先感谢您

4

2 回答 2

0

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

于 2011-06-10T06:29:55.183 回答
0

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

您最好的选择是请求一个适当的可安装包。阅读为什么一个包比一个 configure;make;make-install 更好,并且比这个 install.sh 废话更好。有了这一点,即使它是谈话要点,也要尝试让它们进入第三个千年。这将是艰难的,但最终是最有意义的。

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

于 2014-10-25T04:35:39.847 回答