AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 853789
Accepted
TheBloke
TheBloke
Asked: 2017-06-04 03:34:17 +0800 CST2017-06-04 03:34:17 +0800 CST 2017-06-04 03:34:17 +0800 CST

Solaris 11.3 非全局区域不继承 IPS 方面更改(到版本锁定)

  • 772

我有一个没有(目前)支持合同的 Solaris 11.3 系统。因此,我使用位于http://pkg.oracle.com/solaris/release/的 IPS 存储库,我现在已在本地使用pkgrecv.

我习惯于在大量软件包上pkg change-facet更改为 false,这样我就可以将这些软件包更新到最新版本。version-lock这工作正常。

“问题”是我的非全局区域没有继承这些更改的方面。因此,虽然在全局区域中我看到了更改的方面,并且可以升级受影响的包,但在我后来创建的任何非全局区域中都不是这样:它显示原始的、未更改的方面,并且无法升级受影响的包。

pkg(5)表示对构面的更改由子映像继承,例如从全局区域继承的非全局区域。但这对我来说并没有发生。

最初我认为这是一个问题,但经过进一步思考,我意识到实际上我可能不希望全局中的方面更改总是继承到非全局中。不久之后,我发现我想用基础软件安装测试区,而不改变这些方面,这向我证明了这一点。

尽管如此,我仍然对表明它们确实继承的文档感到困惑,并且我相信理想情况下应该有一种方法来配置某些方面以进行继承。

因此,我的问题是:

  1. 有没有办法让某些方面继承到所有非全局对象中——也许是通过创建一个新的 IPS 映像?
  2. 为什么 IPS 文档表明 facets确实继承 - 它只谈论某些类型的 facets 吗?

这就是我正在做的全部:

我一直在调查 Oracle 提供的新 FOSS 软件包的使用情况。我一直在遵循此处的指南:如何访问选定的 FOSS 评估包以供 Oracle Solaris 11.3 使用。

本指南说明version-lock在更新包之前必须将 facet 更改为 false,并且更新的 FOSS 包可以在版本号字符串匹配的版本号字符串中批量找到\*@\*-5.12.0.0.0.122。该文档建议操纵 的输出pkg list以创建pkg change-facet命令来解锁所有版本。

我已经在我的全局区域中完成了这项工作,随后pkg update --accept成功完成了大量升级包。

但是,如果我随后安装一个新的非全局区域,它将默认为这些包的基本版本。如果在我运行的那个全局区域中pkg facet,我将看到该区域中的方面没有变化。例如,这里的区域显示 Bash 未更改的 version-lock=True:

root@goldenzone:~# pkg facet -a | grep version-lock.shell/bash
version-lock.shell/bash                                          True  system

而其全局显示正确的、新更改的 version-lock=False:

root@magrathea:/system/zones# pkg facet -a | grep version-lock.shell/bash
version-lock.shell/bash                                          False local

解决方法:

根据我下面的评论,我现在通过使用自定义 auto_install 清单安装我的黄金区域来解决这个问题,其中包括<facet set="false">facet.version-lock.*</facet>.

这可以正常工作(尽管以解锁所有版本锁为代价,而不仅仅是那些具有 FOSS 更新的版本锁),但如果有办法让方面在全局和非全局之间继承仍然会很好,因为文件似乎表明他们应该这样做。

提前致谢。

solaris
  • 1 1 个回答
  • 725 Views

1 个回答

  • Voted
  1. Best Answer
    Shawn Walker-Salas
    2017-06-09T17:15:03+08:002017-06-09T17:15:03+08:00

    我是 Image Packaging System 的主要作者和设计者之一。

    我想您的困惑是由于对文档所述内容的误解。特别要注意 pkg(5) 中的这句话是怎么说的:

    ...非全局区域可以从全局区域继承一个方面。继承的方面在任何本地设置的方面之前进行评估,并优先于任何本地设置的方面。

    注意它说可以,不是会。因此,文档描述了当切面被继承时会发生什么,但故意(我相信)没有说明它们何时被继承。也就是说,它告诉您如何确定它们是否被继承(通过在“pkg facet”的 SRC 列中查找“parent”),而不是在什么条件下它们将被继承:

    https://docs.oracle.com/cd/E53394_01/html/E54739/glmke.html

    现在对于缺少的部分 - 通常,继承的方面通常只适用于包中使用的 facet.version-lock.* 方面,因为一些相关的包对自己有父依赖项,如下所示:

    依赖类型=父 fmri=功能/包/依赖/自我

    父依赖项,如上所示,简单说明要在非全局区域中安装此包,必须首先在全局区域中以相同版本存在相同的包。这用于必须在全局和非全局区域之间同步的包。

    简而言之,继承通常不适用于大多数方面。可以在此处找到确定哪些方面将被继承的逻辑:

    https://github.com/oracle/solaris-ips/blob/master/src/modules/client/linkedimage/common.py#L3462

    这是故意的,因为区域是一种容器技术,旨在允许管理员可以设置与全局区域不同的配置的隔离环境。

    话虽如此,如果您想对全局区域和所有非全局区域应用 change-facet 操作,可以通过使用“-r”(递归)选项来更改-facet:

    pkg change-facet -r ...

    (参见 pkg(1),显然我不能发布超过两个链接。)

    您甚至可以使用 -z 将其应用于特定区域。

    哦,最后,您真的不想将所有版本锁的构面设置为 False。这不仅会使系统的更新速度非常慢,而且您会失去所有确保您实际使用经过测试的组件组合的安全措施。

    • 1

相关问题

  • 从现有目录创建 zfs 的正确方法?

  • 在 Solaris lp 或 lpr 上打印

  • 如何将 ZFS ACL 从一个文件克隆到另一个文件?

  • Solaris DNS

  • 在 solaris 10 上为 mysql 设置 max_allowed_pa​​cket

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve