在我作为SysAdmin的时候,我遇到的应用程序没有提供rpm软件包来安装在基于redhat的发行版上 - 只有源代码tarball。源tarball不提供可以简化rpm包创建过程的spec文件。相反,源tarball仅提供bash / ksh /脚本,必须以root身份执行才能在系统上安装应用程序。
我尝试创建一个rpm包,它基本上运行安装脚本来执行安装脚本。我还试图通过尝试以非root用户的身份rpmbuild包来做正确的事情,并尽可能地修改安装脚本以确保脚本的安装目录引用rpm enviromentals / macros。但是有一个复杂的安装脚本长达几百行,这也会调用其他脚本......好吧,我在这方面的努力一定会失败。
有没有更好的方法来打包这样的.spec-less源码tarball?更好的解决方案是:
对此问题的任何有用/相关/指导/有趣/深刻的意见和建议将不胜感激。
提前谢谢
答案 0 :(得分:0)
我认为最好的解决方案是请求上游为应用程序提供spec文件。另一种方法是请求体验包维护者来打包应用程序。或者你可以探索checkinstall,因为它使用Makefile跟踪安装文件。如果你想打包自己,你应该阅读这个link,因为它提供了解释和许多例子。
答案 1 :(得分:0)
我见过很多像你这样的剧本,我怀疑我可以肯定地告诉你,公司会把这些可怕的装置卖给你。
您最好的选择是申请一个适当的可安装包裹。阅读为什么包比configure更好; make; make-install并且比这个install.sh废话更好。有了它,即使它的谈话要点,试着让它们进入第三个千年。这将是艰难的,但最终是最有益的。
除此之外,您将需要构建该软件包(现在您将了解原因)。不幸的是,有一些应用程序和供应商的有效负载无法打包,因为他们编译,查询目标主机,寻找许可证,编译更多等等。我的偏见在这里得到了很好的磨练。