2011-06-10 88 views
1

在我作为SysAdmin的时候,我遇到了一些应用程序,它们不提供rpm包来安装在基于redhat的发行版上 - 只有一个源代码tarball 。源代码tarball不提供可以简化rpm包创​​建过程的spec文件。相反,源代码tarball只提供一个必须以root身份执行的bash/ksh /脚本,以在系统上安装应用程序。从源代码tarball创建一个rpm包 - 但tarball不包含spec文件,只是一个安装脚本

我试图创建一个rpm包,它基本上运行安装脚本来执行安装脚本。我还试图通过尝试以非root用户的身份执行软件包并尽可能修改安装脚本以确保脚本的安装目录指向rpm环境/宏,从而做正确的事情。但是,使用一个长达几百行的复杂安装脚本,它也会调用其他脚本......好吧,我在这个尝试中肯定会失败。

是否有更好的方法来打包这样的.spec-less源码tarballs?会更好的解决方案是:

  1. 安装
  2. 安装的源码包与所提供的安装脚本
  3. 采取系统快照安装后不知何故把应用程序之前的系统快照,确定安装所做的更改/添加
  4. 将更改/添加列表放在spec文件中,并以这种方式创建rpm包?

任何有用/相关/启发/有趣/深刻的意见和建议对这个问题将非常感激。

预先感谢您

回答

0

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

0

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

你最好打赌是要求一个适当的可安装包。阅读为什么一个软件包比配置更好; make; make-install,并且比这个install.sh废话更好。有了这一点,即使是谈论要点,也要尽量让他们进入第三个千年。这将是艰难的,但最终是最有价值的。

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

相关问题