pkgsurf - 映像包管理系统系统信息库版本信息集调整实用程序
/usr/bin/pkgsurf -s target_repo -r reference_repo [-n] [-p publisher_prefix]... [-i name]... [-c pattern]...
pkgsurf 是一个软件包发布工具,可用于替换目标系统信息库中自参考系统信息库中的最新发布版本以来尚未更改的软件包。结果是目标系统信息库中所有软件包的新版本信息集。
pkgsurf 操作不可逆。如果必须对 pkgsurf 操作进行恢复,则应当将目标系统信息库存储在其各自的 ZFS 数据集中,并在运行 pkgsurf 之前创建数据集的快照。
目标系统信息库中的软件包会与参考系统信息库中的软件包进行比较,通过分析比较结果可了解内容是否发生更改。对于每个软件包,如果未找到内容更改,则该软件包的清单将从目标系统信息库中删除并替换为参考系统信息库中同一软件包的清单。
目标系统信息库必须是基于文件系统的系统信息库。为了实现最佳性能,参考系统信息库也应当是基于文件系统的系统信息库。
目标系统信息库对于每个软件包应当仅包含一个版本。如果目标系统信息库中有一个软件包的版本大于参考系统信息库中的最新版本但小于目标系统信息库中最新版本,则将不针对该软件包执行任何软件包清单操作。
参考系统信息库对于每个软件包可以包含一个或多个版本。但是,仅使用最新的版本进行比较。
支持以下选项:
显示用法消息。
将其 FMRI 与 pattern 相匹配的每个软件包视为已更改而且不对它进行复原,即使内容未发生更改也是如此。可以多次指定此选项。
忽略其 name 字段设置为 name 的 set 操作以确定内容更改。将复原该软件包,即使此操作在目标版本和参考版本之间不同也是如此。可以多次指定此选项。
对该操作执行试运行而不对目标系统信息库进行任何更改。
指定要调整版本信息集的发布者的名称。可以多次指定此选项。
缺省情况下,将对目标系统信息库和参考系统信息库中找到的所有发布者的软件包进行版本信息集调整。
指定要用于进行清单比较的参考系统信息库的 URI。仅考虑每个软件包的最新版本。
指定目标系统信息库的路径。此系统信息库中的软件包将根据比较结果复原到参考系统信息库中存在的版本。目标系统信息库对于每个软件包应当仅包含一个版本。目标系统信息库必须是基于文件系统的系统信息库。
支持以下环境变量:
目标系统信息库的绝对路径。
对于目标系统信息库中符合以下条件的每个软件包进行复原:其内容与参考系统信息库中同一软件包的内容完全相同。
$ pkgsurf -s /path/to/target -r http://reference.example.com
目标系统信息库中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@2.0:20381001T163427Z dir group=sys mode=0755 owner=root path=usr
参考系统信息库中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@1.0:20381001T163427Z dir group=sys mode=0755 owner=root path=usr
在执行 pkgsurf 操作之后,目标系统信息库中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@1.0:20381001T163427Z dir group=sys mode=0755 owner=root path=usr
将返回以下退出值:
命令成功。
出现错误。
指定的命令行选项无效。
发生了意外的异常。
有关下列属性的说明,请参见 attributes(7):
|
《在 Oracle Solaris 11.4 中创建软件包系统信息库》
https://github.com/oracle/solaris-ips