Solaris 8 (SPARC 平台版本)1/01 发行说明更新

第 2 章 Solaris 运行时问题

本文档描述已知的运行时问题。

以下运行时错误描述是自本文档发布在 Solaris 8 1/01 文档 CD 和 Solaris 8 1/01 安装 CD 上的安装 Kiosk 上以来被添加到本章中的。


注意:

本产品的名称为 Solaris 8 1/01,但是代码和路径或软件包名称可能使用 Solaris 2.8 或 SunOS 5.8。请始终遵循所写的代码或路径。


安全性问题

csh 对 "here documents" 创建预期的 tmpfiles (4384080)

如果特许用户在 csh 中使用 "here documents" ("<<" 重定向),则有可能将潜在的安全漏洞暴露给非特许用户。

解决方法: 特许用户不要在 csh 中使用 "here documents"。

无盘客户机问题

无法在多头服务器上使用 smdiskless 命令创建无盘客户机 (4390236)

在多头服务器上安装无盘客户机时,请将无盘客户机安装在与无盘客户机位于同一子网的网络接口上。缺省情况下,无盘客户机使用服务器的本地主机接口安装其文件系统。

在多头服务器上,每个网络接口具有一个主机名和一个 Internet 协议 (IP) 地址。若要确定本地主机接口的主机名,请在服务器上键入 uname -n

使用 -D type/host_name/domain_name 选项指定管理域,其中:

如果不指定 -D 选项,则 SMC 假定为本地服务器上的文件域。

当名称服务服务器和 OS 服务器不是同一机器时,使用 -o host_name 选项指定 OS 服务器的名。如果不指定该选项,则 smdiskless 假定 OS 服务器与 -D 选项中指定的相同。

有关更多信息,请见 smdiskless(1M)

名称服务器范围

如果名称服务服务器与多头 OS 服务器相同,则 host_name 必须等于在该服务器上输入 uname -n 返回的主机名。使用与无盘客户机位于同一子网的网络接口的主机名指定 -o 选项。

如果名称服务服务器与多头 OS 服务器不同,则 host_name 必须等于在名称服务服务器上输入 uname -n 返回的主机名。使用与无盘客户机位于同一子网的 OS 服务器网络接口的主机名指定 -o 选项。

文件范围

如果多头 OS 服务器的"本地主机"接口在无盘客户机的子网上,而且您未指定 -D 选项(假定为文件范围),那么 smdiskless 可以正常工作。

如果多头 OS 服务器与无盘客户机没有位于同一子网,则必须编辑 OS 服务器和无盘客户机的数据库文件,如下所示:


注意:

所有项目都必须各自单独占有一行。


  1. 将以下服务器文件:


    /etc/bootparams
    
    diskless_client root=server:/export/root/diskless_client \
                      swap=server:/export/swap/diskless_client swapsize=:32 \
                      dump=server:/export/dump/diskless_client dumpsize=:32 \
                         boottype=:di

    其中 server = OS 服务器主机名,net_interface = 无盘客户机子网上的网络接口主机名,diskless_client = 无盘客户机主机名


    注意:

    "dump" 和 "dumpsize" 只有在您指定 "-x dump" 或 "-x dumpsize" 选项时才出现。


    更改为:


    diskless_client 
    root=net_interface:/export/root/diskless_client \
               swap=net_interface:/export/swap/diskless_client swapsize=:32 \
               dump=net_interface:/export/dump/diskless_client dumpsize=:32 \
                 boottype=:di


    注意:

    net_interface 主机名及其 IP 地址必须出现在 /etc/hosts 中。


  2. 重新启动服务器上的 in.rarpdrpc.bootparamd。使用 in.rarpd -a 或启动无盘客户机所用网络接口上的 rarpd 守护程序。

  3. 将以下客户文件:


     /export/root/diskless_client/etc/vfstab
    
         server :/export/root/diskless_client - / nfs - - rw
         server :/export/swap/diskless_client - /dev/swap nfs - - -
         server :/export/exec/Solaris_8_sparc.all/usr - /usr nfs - -ro

    更改为:


    net_interface:/export/root/diskless_client - / nfs - - rw
         net_interface:/export/swap/diskless_client - /dev/swap nfs - - -
         net_interface:/export/exec/Solaris_8_sparc.all/usr - /usr nfs - -ro

通用桌面环境 (CDE) 问题

在 Solaris 8 操作环境中编译 Motif 程序

当您连接到一个已经在 Solaris 2.4、2.5、2.5.1 或 2.6 操作环境中编译过的共享库并且此库也使用了 Motif 应用程序编程接口 (API) 时,则在 Solaris 8 操作环境中编译 Motif 程序会出现问题。

Motif 程序使用 Motif 2.1 版而旧的共享库使用 Motif 1.2 版时会发生核心转储。这不是二进制兼容性问题,因为在 Solaris 2.4、2.5、2.5.1、2.6 操作环境中编译的应用程序应当能够在 Solaris 8 操作环境中正常运行。

解决方法:如果您有一个直接链接到 Motif 库的旧的共享库,并且要在 Solaris 8 操作环境中编译同时链接到 Motif 和旧的共享库的程序,请使用以下行进行编译:


cc foo.c -o program -DMOTIF12_HEADERS -I/usr/openwin/include 
-I/usr/dt/include -lXm12 -lXt -lX11
其中 program 是您正在编译的程序名称。

通用桌面环境错误

卷管理器装载 CD-ROM 失败 (4355643)

带有不常见数据布局的 CD-ROM 可能不会自动装载。CD 插入驱动器以后,文件管理器窗口不会显示 CD-ROM 的内容。

解决方法:手动安装 CD-ROM :

  1. 成为超级用户。

  2. 停止卷管理器:


    /etc/init.d/volmgt stop
    

  3. 安装 CD-ROM:


    mount -F hsfs -r device_pathname /mnt
    

    其中 device_pathname 是 CD-ROM 驱动器连接的路径名。例如:/dev/dsk/c0t6d0s0.


    注意:

    CD-ROM 驱动器通常连接到 c0t6d0s0 或在工厂时连接到 c0t2d0s0,但是要让这个命令生效,您必须使用正确的路径。


  4. 重新启动卷管理器:


    /etc/init.d/volmgt start
    

OpenWindows 文件管理器装载软盘失败 (4329368)

如果将软盘插到带 SCSI 可删除媒体设备的系统上的软驱中,然后选择从 OpenWindowsTM“文件管理器”中的“文件”“文件管理器”将软盘安装在 /floppy 目录中,但它无法显示列示磁盘内容的“文件管理器”视图。

解决方法:选择以下解决方法之一。

要防止此问题,请应用补丁程序 109463-01。

PDASync 不能从桌面删除最后一项 (4260435)

从桌面删除最后一项后(例如,日历中的最后一个约会或者地址管理器中的最后一个地址),当您同步便携设备时,此最后一个项目会从便携设备恢复到桌面系统中。

解决方法:在同步前从便携设备中手动删除最后一项。

PDASync 不支持与多字节国际化的 PDA 设备之间的数据交换 (4263814)

如果您在 PDA 设备与 Solaris CDE 之间交换多字节数据,数据可能会在两种环境中都遭到破坏。

解决方法:在运行 PDASync 应用程序之前,使用 PDA 备份公用程序来备份个人计算机上的数据。如果您意外地交换了多字节数据并破坏了该数据,请从备份中恢复数据。

系统管理错误

rcm_daemon 错误信息 (4386436)

系统引导时,以下错误消息可能会被记录到系统日志文件中,该文件位于 /var/adm/messages


open(/var/run/rcm_daemon_lock) - No 
such file or directory
  rcm_daemon exit: errno = 2

它仅出现在 /var 为单个分区的情况下。

解决方法:忽略该信息。它对系统不会带来任何有害影响。

在帮助系统中仍然有旧文件 (4339515)

从前面板选择“帮助”->“信息”后,会返回旧文件的列表。正确的文件是 S8FCSreleasenotes

试图通过 WBEM 添加数据时会发生 CIM_ERR_LOW_ON_MEMORY 错误 (4312409)

当内存不足时会显示以下错误消息:


CIM_ERR_LOW_ON_MEMORY
当“通用信息模式 (CIM) 对象管理器”的运行导致内存不足时,不能再添加其它项目。 必须重置“CIM 对象管理器系统信息库”。

解决方法:重置“CIM 对象管理器系统信息”:

  1. 成为超级用户。

  2. 关闭“CIM 对象管理器”


    # /etc/init.d/init.wbem stop
    

  3. 删除 JavaSpaces 日志目录。


    # /bin/rm -rf /var/sadm/wbem/log
    

  4. 重新启动“CIM 对象管理器”。


    # /etc/init.d/init.wbem start
    


    注意:

    您将会丢失数据仓库中所有的所有权定义。必须使用 mofcomp 命令重新编译包含这些定义的 MOF 文件。例如:


    # 
    /usr/sadm/bin/mofcomp -u root -p root_password your_mof_file
    


请求 Solaris_FileSystem 实例时,导致 WBEM “公共信息模型对象管理器”崩溃 (4301275)

如果使用 CIM WorkShop 或 WBEM API 枚举 Solaris_FileSystem 类实例时,则 CIMOM 不再运行,并显示以下错误消息:


Attempted 
to complete RMI action enumInstances and received exception java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: java.io.EOFException

解决方法:在超级用户模式下,通过键入以下命令来重新启动 CIMOM:


# /etc/init.d/init.wbem 
start

64 位 Solaris 问题

SUNWcsxu 中缺少符号链接 (4391527)

64 位安全应用程序只能从安全目录 /usr/lib/secure/64 中预装。此符号链接 /usr/lib/secure/64 -> /usr/lib/secure/sparcv9 丢失。因而您可能收到如下错误消息:


% LD_PRELOAD=libfoo.so.1 setxid-app
ld.so.1: setxid-app: warning: libfoo.so.1: open failed: \
     No such file in secure directories

解决方法:为了防止出现该问题,请选择以下解决方法之一:

硬件配置错误

如果具有小容量内存配置的系统有几个 USB 设备,则在引导过程中该系统会出现紧急情况 (4359440)

如果具有小容量内存配置的系统中的几个 USB 设备进行了连接,则从软盘、CD 或网络引导该系统时可能会使该系统出现紧急情况。在这种情况下,将会显示以下应急消息之一:


panic[cpu0]/thread=1040800: main:: unable to fork init.


panic[cpu0]/thread=2a1000fdd40: BAD TRAP:: type=31 rp=2a1000fd0a0 addr=c0 mmu_fsr=0 occurred in module "genunix" due to a NULL pointer dereference

解决方法:如果系统拥有 4 个以上的 USB 设备,则仅让系统中的 USB 键盘和鼠标进行连接,然后引导该系统。在看到 Solaris 登录提示后再连接其余的 USB 设备。

Java 运行时问题

Java 插件支持

Java 插件 1.2 是缺省插件,它运行 Java 2 applet 但不能运行所有 Java 1.1 applet。若需要 Java 插件 1.1,可从 http://www.sun.com/solaris/netscape 下载。

如果选择在一个系统上同时安装 Java 插件 1.1 和 Java 插件 1.2,则必须遵循关于如何安装 Java 插件 1.1 的提示,并随后相应地配置环境。

这个过程在 Solaris Java 插件用户指南的“安装 Java 插件”一节中有摘要叙述,该用户指南可从 http://www.sun.com/solaris/netscape/jpis/usersguide_java_plugin.html 获得。

Java 运行时错误

使用 dlopen 时,libjvm.so 文件无法正确执行 (4270715)

如果使用 dlopen 将 libjvm.so 引入进程,则 libjvm.so 便无法正确执行。当创建目标码时,它必须被链接到可执行文件中。

解决方法:在创建一个可执行文件时,请明确地将 libjvm.so (-ljvm) 和 libjava.so (-ljava) 命名为关联文件。

AnswerBook2 错误

ab2admin 命令间歇性地指示 command failed,即使命令成功执行也是如此 (4242577)

ab2admin 命令失败,则错误消息中还会包括除 command failed 以外的其他信息。例如,它可能还包括 path not foundinvalid ID 等信息。

解决方法:如果出现 command failed 消息,请查明操作是否真的失败了。例如,如果您提交的命令本应该删除 AnswerBook2 数据库中的一个集合,请键入以下命令来检验该集合是否仍显示在此数据库中:


# ab2admin -o list
如果系统没有提供其他信息,常常可以忽略此 command failed 错误消息。

ab2cd 脚本显示一个不正确的错误消息 (4256516)

在 AnswerBook2TM 服务器启动期间,ab2cd 脚本可能显示以下不正确的错误消息。


sort: can't read 
/tmp/ab1_sort.XXX: No such file or directory 

此错误消息指出 ab2cd 脚本未找到 CD 上的任何 AnswerBook(显示 PostScriptTM)集合。

解决方法:忽略此错误消息。

本地化错误

使用字体下载程序从任何非 ISO8859-1 语言环境打印

请执行下列步骤来使用字体下载程序从任何非 ISO8859-1 语言环境打印。

  1. 登录到 CDE。

  2. 在命令行键入 fdl 以启动字体下载程序。

  3. 通过从打印机菜单选择“添加”来指定打印机。

  4. 从下载菜单选择“字体束”。

    于是字体束便被下载到指定的打印机,具体是什么字体束取决于打印所需的代码集。

本地化问题

kkcv.sh 日文语言环境中的信息转储 (4394340)

kkcv 是日文 BCP(4.x 二进制兼容性)应用程序的输入方法服务器。当您使用 LDAP 时,kkcv 重复不断地发生信息转储,并显示以下错误消息:


cssd: The process "kkcv.sh" has been killed by sig#134, core dumped 

在使用语言 CD 安装了 'ja' 语言环境的情况下,所有语言环境中都会出现该问题。

解决方法:如果不需要使用日文 BCP 功能,请配置您的服务器,使其不要启动用于 BCP 应用程序的输入方法服务器:

  1. 复制 /usr/lib/css.d/cs00.sh/etc/css.d


    # cp -p /usr/lib/css.d/cs00.sh /etc/css.d
    
  2. 编辑 /etc/css.conf 并使用 `#' 对行 /usr/lib/css.d 进行注释。


    # /etc/css.conf
    
  3. 重新启动 CS 监视守护程序。


    # sh /etc/init.d/loc.ja.cssd stop
    # sh /etc/init.d/loc.ja.cssd start
    

欧洲语言环境下的 Solaris 管理控制台 (SMC) 缺少工具 (4391812)

欧洲语言环境下的 SMC 工具箱在装入时不能显示全部工具。您可能收到以下错误消息:


** Parsing error, line 1, 
uri http://fubar:898/toolboxes/smc/smc.tbx
com.sun.xml.parser/P-076 Malformed UTF-8 char 
-- is an XML encoding declaration missing?

解决方法:运行smc edit 并更改缺省本地化工具箱或创建一个新的工具箱。

帮助概述终止亚洲语言环境下的 Solaris 管理控制台 (4398894)

在韩文、简体中文和繁体中文语言环境下,单击“SMC 概述”帮助项目导致 SMC 突然终止。单击“帮助”->“概述”->“SMC 概述”时便会出现这种情况。

解决方法:避免使用该链接,或在 C 语言环境下运行 SMC:


# env LANG=C smc

在亚洲语言环境中缺少某些 SMC 帮助信息 (4398893)

SMC 信息面板在韩文和简体中文 (zh) 语言环境中其内容为空。在繁体中文中,它会报告error: Unsupported encoding `x-euc-tw' for file ...

解决方法:在获取帮助信息前,在 C 语言环境中运行 SMC:


# env LANG=C smc

上下文相关帮助未本地化 (4391781, 4389039)

“Solaris 管理控制台”和“基于 Web 的企业管理”应用程序中的上下文相关帮助没有完全本地化。

UTF-8 版本的语言环境无法存取欧圆符号(4363812)

UTF-8 版本的语言环境,使用标准组合键 ALTGr+E,无法存取欧圆符号。

解决方法:登录到任何 ISO8859-15 语言环境,然后使用 Alt+E 存取欧圆字符。

从任何 UTF-8 语言环境中启动 Java 应用程序时可能出现警告消息 (4342801)

由于LucidaSansLat4 字体别名不存在,从任何 UTF-8 语言环境中启动 Java 应用程序时都可能出现相关的警告消息。

解决方法:登录到等效的 ISO-1 语言环境,然后启动 Java 应用程序。

有些希腊字符在 CDE 中不可用 (4179411)

一些死键组合在 CDE 中不能正常工作。此外,希腊语言环境的“日历管理器”中的月份名称也不能正常工作。

在所有部分语言环境的“日历管理器”中均不能打印扩展字符 (4285729)

若您在部分语言环境中使用“日历管理器”时尝试打印扩展字符,则不能正确打印扩展字符。

无法在阿拉伯文和 UTF-8 英文之间剪切和粘贴文本 (4287746)

无法在阿拉伯文输入模式的 en_US.UTF-8 下运行的应用程序或窗口和在阿拉伯输入模式的 ar_EY.ISO8859-6 下运行的应用程序或窗口之间剪切或粘贴阿拉伯文本。

欧洲语言环境中无法使用 CDE“附加”下拉式菜单 (4298547)

在某一欧洲语言环境的任何 CDE 应用程序中用鼠标右键单击时,“附加”下拉式菜单均不显示任何选项。

日文和亚洲 UTF-8 语言环境不支持 CTL (4300239)

en_US.UTF-8 和欧洲 UTF-8 语言环境已经实现了用于输入希伯来文、阿拉伯文和泰文的复杂文本语言 (CTL) 支持,但 ja_JP.UTF-8ko.UTF-8(又称为 ko_KR.UTF-8)、zh.UTF-8 (又称为 zh_CH.UTF-8)和 zh_TW.UTF-8 等语言环境不支持 CTL。

解决方法:在需要使用 CTL 输入泰文、阿拉伯文或希伯来文时,使用 en_US.UTF-8 语言环境。如果打算在亚洲和日文 UTF-8 语言环境中输入这些语言,请执行以下操作:

  1. 创建一个指向公共 CTL 模块的符号链接。以 ja_JP.UTF-8 为例:


    # cd 
    /usr/lib/locale/ja_JP.UTF-8
    # mkdir LO_LTYPE ; cd LO_LTYPE
    # ln -s ../../common/LO_LTYPE/umle.layout.so.1
     ja_JP.UTF-8.layout.so.1
    # mkdir sparcv9 ; cd sparcv9
    # ln -s ../../../common/LO_LTYPE/sparcv9/umle.layout.so.1
     ja_JP.UTF-8.layout.so.1
    

  2. 编辑 /usr/openwin/lib/locale/ja_JP.UTF-8/XLC_LOCALE 文件,从泰文、阿拉伯文或希伯来文项目中对 load_option delay_nocheck 行进行注释。以泰文为例:


    # fs14 class (Thai)
      fs14 {
          charset     TIS620.2533-0:GR
          font {
    	  # load_option delay_nocheck <--- comment out
    	  primary TIS620.2533-0:GR
          }
      }

应用程序 SmartCard 的一些屏幕没有进行本地化 (4304495)

应用程序 SmartCard 的一些屏幕没有全部进行本地化。

在希腊文语言环境中的 Solstice AdminTool 中不能添加、删除或修改用户 (4302983)

在 Solstice AdminTool 软件的希腊文语言环境中,“添加用户”、“修改用户”和“删除用户”屏幕的内容均为空。

解决方法:在超级用户模式下,复制下面的文件:


# cp 
/usr/openwin/lib/locale/C/app-defaults/Admin
 
/usr/openwin/lib/locale/el_GR.ISO8859-7/app-defaults/Admin
这时,您便可以在希腊文语言环境中添加、删除和修改用户信息了。

在意大利语言环境中,字体下载程序“添加”和“取消”按钮标记错误 (4303549)

当您在意大利语言环境中使用字体下载程序时,添加打印机对话框中的 添加取消 均标记错误;它们均被标为 A ....

缺失阿拉伯字符和 Sun 阿拉伯键盘和 Microsoft 阿拉伯键盘之间的不兼容性 (4303879)

下表描述 Sun 的 Solaris 阿拉伯文键盘和 Microsoft 的阿拉伯文键盘之间的区别。

表 2-1 Sun 和 Microsoft 的 阿拉伯文键盘之间的区别。

键 

Sun 键盘布局 

Microsoft 的键盘布局 

下方带有 Hamza 的阿拉伯文 Lam_alef 

右单引号 

阿拉伯文乘号 

阿拉伯文除号 

阿拉伯文 Kasra 

阿拉伯文 Kasratan 

波浪号 

阿拉伯文 Sukun 

阿拉伯文 Kasratan 

左花括号 

阿拉伯文 Kasra 

右花括号 

Sukun 

单下引号 

阿拉伯文逗号 

SEAM 应用程序显示未进行本地化的信息 (4306619)

SEAM 使用 Solaris 8 操作环境中的部分资源文件,不过只有在安装时选择了 Kerboros 设置才会出现这种情况。

UTF-8 和希腊文语言环境不能充分支持欧圆符号 (4306958、4305075)

UTF-8 语言环境中,按住 AltGr+E 组合键时不能生成欧圆符号。

解决方法:通过执行下列步骤以在 UTF-8 语言环境中输入欧圆符号:

  1. 在“UTF-8 输入模式选择”窗口中选择查看。

  2. 选择货币符号。

  3. 选择欧圆符号。


    注意:

    在希腊文语言环境中,在控制台提示符下键入 dumpcs,然后复制并粘贴欧圆符号。


在欧洲 UTF-8 语言环境中排序不能正常进行 (4307314)

在欧洲 UTF-8 语言环境中,排序不能正常进行。

解决方法:试图在 FIGGS UTF-8 语言环境中进行排序前,请将 LC_COLLATE 变量设置为等同的 ISO1 值。


# echo $LC_COLLATE
 > es_ES.UTF-8 # setenv LC_COLLATE es_ES.IS08859-1
然后开始排序。