在以前的 Solaris 发行版中,创建软件包时无法在 pkgmap 文件中指定符号链接目标。这意味着在使用 pkgadd 命令添加软件包时,与软件包或修补程序相关的符号链接始终指向符号链接的源,而不是符号链接的目标。在升级更改符号链接目标所需的软件包或修补程序软件包时,这将产生问题。
现在,缺省行为是,如果软件包需要将符号链接的目标更改为其他内容,则 pkgadd 命令将检查符号链接的目标,而不检查符号链接的源。
不过,这意味着部分软件包可能符合或不符合新的 pkgadd 行为。
PKG_NONABI_SYMLINKS 环境变量将有助于在新旧 pkgadd 符号链接行为之间进行转换。如果此环境变量设置为 true,pkgadd 将指向符号链接的源。
如果在使用 pkgadd 命令添加软件包之前管理员已设置了软件包的行为,则设置此变量可使非一致的软件包恢复至原有行为。
新的 pkgadd 符号链接行为可能会导致使用 pkgadd 命令添加现有软件包失败。在此情况下,可能会看到以下错误消息:
unable to create symbolic link to <path> |
如果软件包因为此问题而未安装,请执行以下操作:
如果这是 Sun 提供的软件包,请致电解析中心并报告非一致性软件包的名称。
设置 PKG_NONABI_SYMLINKS 环境变量并尝试使用 pkgadd 命令再次添加软件包。
# PKG_NONABI_SYMLINKS=true # export PKG_NONABI_SYMLINKS # pkgadd pkg-name |