系统管理指南:高级管理

软件包符号链接问题疑难解答

在以前的 Solaris 发行版中,创建软件包时无法在 pkgmap 文件中指定符号链接目标。这意味着在使用 pkgadd 命令添加软件包时,与软件包或修补程序相关的符号链接始终指向符号链接的源,而不是符号链接的目标。在升级更改符号链接目标所需的软件包或修补程序软件包时,这将产生问题。

现在,缺省行为是,如果软件包需要将符号链接的目标更改为其他内容,则 pkgadd 命令将检查符号链接的目标,而不检查符号链接的源。

不过,这意味着部分软件包可能符合或不符合新的 pkgadd 行为。

PKG_NONABI_SYMLINKS 环境变量将有助于在新旧 pkgadd 符号链接行为之间进行转换。如果此环境变量设置为 true,pkgadd 将指向符号链接的源。

如果在使用 pkgadd 命令添加软件包之前管理员已设置了软件包的行为,则设置此变量可使非一致的软件包恢复至原有行为。

新的 pkgadd 符号链接行为可能会导致使用 pkgadd 命令添加现有软件包失败。在此情况下,可能会看到以下错误消息:


unable to create symbolic link to <path>

如果软件包因为此问题而未安装,请执行以下操作:

  1. 如果这是 Sun 提供的软件包,请致电解析中心并报告非一致性软件包的名称。

  2. 设置 PKG_NONABI_SYMLINKS 环境变量并尝试使用 pkgadd 命令再次添加软件包。


    # PKG_NONABI_SYMLINKS=true
    # export PKG_NONABI_SYMLINKS
    # pkgadd pkg-name