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
    • 最新
    • 标签
主页 / user-412963

TheBloke's questions

Martin Hope
TheBloke
Asked: 2017-06-10 11:59:49 +0800 CST

Solaris IPS:pkg 依赖错误与实际问题无关/如何最好地诊断 IPS 依赖失败?

  • 3

我正在运行 Solaris 11.3(目前来自非合同版本 repo)。我有大量的 Solaris 10 经验,但我是 11 的新手,并且仍在努力提高对 IPS 的信心。

我的问题是我经常发现我在诊断包依赖失败时遇到了严重的问题,因为 的输出pkg install似乎与实际问题无关。事实上,我现在想知道这是否是由一些错误或存储库问题引起的,我将在最后解释。

以下是我最近遇到的两个问题示例,其中失败pkg命令的输出似乎与实际问题完全无关。在第一个例子中,这导致我花了几天时间追逐红鲱鱼,直到我最终偶然发现了所需的修复。

全局版本是 Oracle Solaris 11.3.1.5.1(pkg/entire版本0.5.11-0.175.3.1.0.5.1。)全局是从 USB 文本安装程序安装的,从那时起,我已经解锁并更新了默认情况下安装在全局中的所有 FOSS 包(根据Oracle docs here),并额外安装了一些额外的支持包(vim、screen、tmux等)

在写这篇文章时,我从新安装的solaris-small-server区域的位置重新创建了两个示例,没有其他更改;我上面描述的 FOSS 更新仅发生在全局中,而不发生在用于重新运行以下示例并捕获错误输出的区域中。下面列出的命令实际上是从默认区域 AI 清单创建后在测试区域中运行的第一个命令。

示例 1:我一直在尝试在非全局区域中安装一个正常工作的 Gnome 桌面,而不必在我的全局中安装我一直希望保持精简和干净的包。

  1. zlogin zone pkg install --accept -v solaris-desktop: 失败,因为driver/audio/audio-usb说它还必须安装在全局区域中。
  2. 我创建了一个solaris-desktop名为 called的自定义版本,solaris-desktop-zone它删除了所有driver/*包,以及任何依赖于全局的包(我通过调用pkg contents -mr每个包的脚本删除了它并删除了任何引用的包feature/package/dependency/self。)我将它安装到我的本地 repo,它是. pkg/mirror_http://pkg.oracle.com/solaris/release/
  3. 安装我修改过的包会导致这个 pastebin中显示的一长串依赖失败,这些似乎主要与 Python 包有关。
  4. 我花了一天的时间来解决这些错误:手动和递归地分析各种 Python 包及其依赖项,并删除我在solaris-desktop-zone包中可以找到的任何提及它们的内容。最终,我只好删除成群的包,直到找到一个可以通过 Solver 阶段的版本,然后从那里向后工作以识别一个包并最终了解原因。

解决方案? x11/server/xorg/driver/xorg-video这取决于也具有feature/package/dependency/self依赖关系的 NVidia 驱动程序。事后看来,我可以通过递归搜索该自依赖来更快地发现这一点 - 即不仅检查我的包所依赖的所有solaris-desktop-zone包,还检查它们的所有依赖项。但是我当然陷入了困境,从错误中相信问题与 Python 包或依赖于它们的包有关。

示例 2:gcc-5

zlogin testdesktop pkg install --accept -nv gcc-5产生这个输出。

同样的奇怪 Python 错误列表,同样,解决方案完全不相关:我需要解锁一些与 GCC 相关的版本:

pkg change-facet version-lock.system/library/gcc/gcc-c-runtime=false \
version-lock.system/library/gcc/gcc-c++-runtime=false \
version-lock.system/library/gcc/gcc-gfortran-runtime=false \
version-lock.system/library/gcc/gcc-gobjc-runtime=false

谢天谢地,我通过 Google 很快找到了这个(在 Unix StackExchange 上)。但是我仍然感到困惑,因为回答它的人描述的诊断与我所看到的不符 - 他的帖子中列出的 pkg 错误对问题给出了可以理解的描述(Reason: This version is excluded by installed incorporation..)。我的又出现了这些不相关的 Python 错误!

现在,当我写这篇文章时,我想知道在 Solaris 11.3 发行版存储库中是否发生了一些奇怪的事情,可能是由一个 SRU 修复的,我在获得合同之前无法访问。也许这就是为什么我得到这些奇怪的错误而不是可以理解的、可调试的错误?

在这方面,我确实注意到 Dbus Python 可能存在一些错误 - 我在两个示例中看到的错误之一都python-dbus-27与dbus-python-27. 但dbus-python-27在 repo 中不存在。所以这可能是一个回购问题。

但即使是这样,为什么我只有在遇到其他完全不相关的问题时才会看到这些错误?这是由回购问题引起的错误吗?

我将不胜感激确认是否是这种情况,并且总体上了解有关用于调试和解决包依赖性问题的建议方法和工具的更多信息。鉴于我得到的错误,我是否可以在不诉诸暴力检查每个依赖包的情况下更快地解决这个问题?

提前致谢。

solaris
  • 1 个回答
  • 1210 Views
Martin Hope
TheBloke
Asked: 2017-06-04 03:34:17 +0800 CST

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

  • 3

我有一个没有(目前)支持合同的 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 个回答
  • 725 Views

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