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

第 2 章 Solaris 运行时问题

本文档描述运行时问题。

有关未能及时包括在本出版物中的问题,请参考 Solaris Beta 程序网站: http://soldc.sun.com/developer/restricted/s8-updates/.


注意:

本产品的名称为 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 目录中,但无法显示能列示磁盘内容的“文件管理器”视图。

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

要防止此问题,请应用补丁程序 109464-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

硬件配置错误

如果具有小容量内存配置的系统有几个 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 设备。

硬件支持问题

sd: 媒体不存在时出现无效警告 (4338963)

当媒体不存在时对可删除媒体进行读操作,读操作将会失败。系统会将一条警告信息写到终端和日志文件中。该警告消息的内容类似于:


scsi: [ID 107833 kern.warning] WARNING: /pci@1f,0/pci@1,1/ide@3/sd@2,0 (sd30):
	i/o to invalid geometry


注意:

出现在警告信息中的路径是可删除媒体的设备路径。


该警告是无效的。当可删除媒体中的媒体不存在时,读操作应该是在不发布任何警告的情况下以失败结束。

解决方法:对于可删除媒体,忽略这些警告信息。

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 获得。

性能问题

PCI-IDE 系统禁用“直接存储器存取 (DMA)”

缺省情况下,Solaris ata 设备驱动程序的 DMA 功能对于 ATA/ATAPI 设备是禁用的。

禁用该功能的目的是为了避免在某些不能充分支持 ATA/ATAPI 设备的 DMA 的系统上出现问题。绝大多数问题都与系统的 BIOS 有关。

在安装 Solaris 8 操作环境后,要启用(或禁用)ata 驱动程序的 DMA,请执行下列操作:

  1. 从引导软盘或安装 CD(若系统支持 CD-ROM)上运行"Solaris(Intel平台版本)设备配置助理"。


    注意:

    在使用引导软盘引导时,新的 ata-dma-enabled 的属性值将保留在此软盘上。因此,再次使用该引导软盘时,已经更改的值便能生效。


  2. F2_Continue 扫描设备。

  3. F2_Continue 显示引导设备的列表。

  4. F4_Boot Tasks,选择"查看/编辑"的"属性设置",并按 F2_Continue.

  5. 将启用 ata-dma 的属性的值改为 1 来启用 DMA(其值为 0 时禁用 DMA):

    1. 从列表中选择启用 ata-dma 的属性并按 F3_Change

    2. 键入 1 并按 F2_Continue 以启用(键入 0 并按 F2_Continue 以禁用)。

    3. F2_Back,再按 F3_Back 来返回到“引导 Solaris”菜单。

    4. 选择安装要使用的设备(网络适配器或 CD-ROM 驱动器)并按下 F2_Continue


    注意:

    如果在启用 DMA 后发生任何问题,请禁用 DMA(按照上述步骤将启用 ata-dma 的属性值设置为 0),使用您的硬件生产商的最新 BIOS 更新系统,然后重新启用 DMA。


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. 从下载菜单选择“字体束”。

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

本地化问题

欧洲语言环境下的 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 下运行的应用程序或窗口之间剪切或粘贴阿拉伯文本。

欧洲语言环境中无法使用“附加”下拉式菜单 (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 

右单引号mark 

阿拉伯文乘号 

阿拉伯文除号 

阿拉伯文 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
然后开始排序。