在 Oracle® Solaris 11.2 中使用映像包管理系统打包和交付软件

退出打印视图

更新时间: 2014 年 7 月
 
 

转换顺序

按在文件中遇到转换的顺序来应用这些转换。排序功能可用于简化转换的匹配部分。

假定交付到 /foo 中的所有文件都应该具有缺省组 sys,但交付到 /foo/bar 中的文件除外,这些文件应具有缺省组 bin

您可以编写复杂的正则表达式,用于匹配以 /foo 开始的所有路径(但以 /foo/bar 开始的路径除外)。使用转换的排序功能可使此匹配过程更为简单。

对缺省转换进行排序时,始终都是从最具体到最一般的顺序进行排序。否则,将永远不会使用后面的规则。

对于此示例,请使用以下两个规则:

<transform file path=foo/bar/.* -> default group bin>
<transform file path=foo/.* -> default group sys>

因为您需要查找与仅交付一次的每个软件包匹配的模式,所以使用转换难以添加使用上述匹配的操作。pkgmogrify 工具可创建合成操作以帮助解决此问题。由于 pkgmogrify 处理清单,所以对于每个设置了 pkg.fmri 属性的清单,合成 pkg 操作均由 pkgmogrify 创建。可以通过将 pkg 操作视为实际存在于清单中,来针对此操作进行匹配。

例如,假定您希望将包含 Web 站点 example.com(在该站点中可以找到已交付软件的源代码)的操作添加到每个软件包中。以下转换可实现此目的:

<transform pkg -> emit set info.source-url=http://example.com>