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

退出打印视图

更新时间: 2014 年 7 月
 
 

重新发布软件包

使用 IPS 可轻松地重新发布包含所做修改的现有软件包,即使最初没有发布该软件包。您也可以重新发布已修改软件包的新版本,以便 pkg update 能够继续按用户预期方式工作。已修改的软件包将在映像中正确安装和更新。

当然,如果怀疑观察到的问题与修改的软件包之间存在任何关系,则运行包含已修改软件包的系统可能会对您的支持造成不利影响。

    使用以下步骤可修改并重新发布软件包:

  1. 使用 pkgrecv(1) 下载要以原始格式重新发布到指定目录的软件包。所有文件均由其散列值命名,而清单则命名为 manifest。请记住在 http_proxy 环境变量中设置所需的任何代理配置。

  2. 使用 pkgmogrify(1) 对清单做出必要的修改。从内部软件包 FMRI 中删除所有时间戳,以防止在发布期间出现混淆。

    如果更改很显著,请使用 pkglint(1) 验证生成的软件包。

  3. 使用 pkgsend(1) 重新发布软件包。请注意,此重新发布过程将去除软件包中存在的任何签名,并忽略由 pkg.fmri 指定的任何时间戳。要防止出现警告消息,请在 pkgmogrify 步骤中删除签名操作。

    如果您没有发布到软件包原始源的权限,请使用 pkgrepo(1) 创建系统信息库,然后使用以下命令在发布者搜索顺序中将新的发布者设置在原始发布者之前:

    $ pkg set-publisher --search-before=original_publisher new_publisher
  4. 如有必要,使用 pkgsign(1) 对软件包进行签名。要防止出现客户机高速缓存问题,请在安装软件包(即便是测试)之前对软件包进行签名。