我的公司正在开发一种基于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
选项
-
拥有rpm数据库
-
使用
Prefix
机制在不同位置安装 -
可选:在rpm规范文件中使用
AutoReqProv: no
禁用自动库依赖项
使用这些功能/选项允许我们创建rpm包,可以使用 rpm
命令行工具作为非root用户进行安装 .
但是,我们真正希望看到的是通过带有 yum
或 zypper
的http存储库安装这些软件包 . 后者是基于SUSE的发行版中的首选工具 .
The problem we see is, that non of the tools is providing the required alternative rpm database option (--dbath in rpm) and prefix support required for a non-root installation.
Does anybody have a suggestion/ idea how to deal with this issue? Is there maybe a third package-tool with we're not aware of?
或者我们应该走一条完全不同的路线?我玩了一个GNU stow
并且在它周围写了一些非常简单的yum式逻辑 - 但是我基本上会启动我自己的包安装工具,我试图绕过它 .