是否有一些指导方针,或者是否有人对我应该如何打包需要同时安装多个版本的东西提出建议?
答案1
我不确定这是否符合您想要完成的任务,但在我从事的一个项目中,我们首先规定了一个目录结构,如下所示:
/usr/local/[project_name]/[version]
其中project_name
是项目的“基本名称”,version
是特定标记的版本。然后我们使用任意数字作为 RPM 版本(单调递增),以便同一标记或分支内的版本可以进行 RPM 升级,而不会与其他标记/分支冲突。这意味着您需要在 RPM 名称标头中的某个位置编码版本号,而不是版本,例如
Name: foobar-1.0
Version: 1234
Release: 1
# ...etc...
在这种情况下,RPM 可能会安装到路径下/usr/local/foobar/1.0
,后续版本将被命名为“foobar-2.0”并以类似的方式安装。
“foobar-1.0”这个名字意味着你需要其他系统,不是RPM 系统,用于跟踪版本号 - 我们使用了一个 shell 脚本,该脚本只需根据需要生成 specfile 即可获得标记的版本。这可能有点麻烦,但它可以让你灵活地以通用方式安装软件包的多个版本,并能够同时使用多个版本。
这只是一个建议,显然 YMMV 也有可能存在。
答案2
只需赋予包不同的名称,并确保它们将文件安装到不同的位置。
或者将所有版本捆绑到单个包中。