我的公司正在开发一种基于Linux的软件产品,该产品可以发送给不同的客户。 它自己使用的产品是由彼此交互的小软件组件构成的。
我们通常作为更新/新版本发布给客户的是不同软件组件的当前版本,例如compA-2.0.1,compB-3.2.3和compC-4.1.2
目前,我们为安装/升级过程使用了一个相当简单的shell脚本。但是,我们希望将forwarard转移到最先进的包装,主要是为了方便地交换不同版本的组件,跟踪文件及其所属的包,并为客户提供更轻松的服务。用于更新/安装的界面。
软件组件安装在不同的目录中,具体取决于客户的需求。所以它可能在/opt
,/usr/local
或完全不同的东西。
由于绝大多数客户使用基于rpm的Linux发行版运行,因此我们决定使用rpm-packages而不是dpkg。
以rpm为单位,我们的问题是非root安装。使用以下功能可以直接进行:
--dbpath
选项Prefix
机制AutoReqProv: no
禁用自动库依赖项使用这些功能/选项可以创建rpm包,可以使用rpm
命令行工具作为非root用户进行安装。
但是,我们真正希望看到的是通过带有yum
或zypper
的http存储库安装这些软件包。后者是基于SUSE的发行版中的首选工具。
我们看到的问题是,非工具提供了所需的备用rpm数据库选项(rpm中为--dbath
)和非root用户安装所需的前缀支持。 < / p>
有人有建议/想法如何处理这个问题?可能还有第三个包装工具我们不知道吗?
或者我们应该走一条完全不同的路线?我玩了一个GNU stow
,并在它周围编写了一些非常简单的类似yum的逻辑 - 但后来我基本上会启动自己的软件包安装工具,这是我试图规避的。