Solaris 8 (SPARC 平台版) 10/00 发行说明更新

第 2 章 Solaris 运行时问题

本文档描述运行期间的问题。

以下的运行时程序错误说明是自本文档发布在 Solaris 8 10/00 文档 CD 和 Solaris 8 10/00 安装 CD 的安装 Kiosk 以来增加进来的。


注意:

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


安全性更新问题

Netscape Communicator 漏洞

名为 "Brown Orifice" 的使用方式将创建一个 Java applet 形式的 HTTP 服务器, 它可以将 Netscape 浏览器变成一个 web 服务器,它使得远程用户可以访问本机和网络文件。 这些文件包括位于防火墙后面,使用 "file://", "http://", "https://", "ftp://" 以及 其他连接类型的 URL。没有任何症状显示该问题的产生。

这不是 Java 安全模式的结构问题。

Netscape Communicator 4.04 至 4.74 版本均受到影响。 有关此漏洞的更多信息,请参见 CERT 报告 CA-2000-15,网址为:http://www.cert.org/advisories/CA-2000-15.html

若要更改此问题,请从以下位置下载和安装 Netscape Communicator 4.75 版: http://www.sun.com/software/solaris/netscape

安全性更新程序错误

ypbind 缓冲溢出可以允许超级用户权限 (4362647)

ypbind 有一个缓冲溢出,它可以导致在远程使用时获得系统的超级用户访问权限。

解决方法: 为了防止该问题,请安装 修补程序 110322-01 。

通用桌面环境 (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 库的旧的共享库,并且您要在与 Motif 和旧的共享库连接的 Solaris 8 操作环境中编译程序,使用以下行来编译:


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

通用桌面环境错误

sdtwinlst (Window List) 和 sdtgwm (Windows Manager) 图标从 desktop_apps 中消失 (4360521)

sdtwinlst (Window List) 和 sdtgwm (Windows Manager) 图标没有在应用程序管理器中出现,而显示了一个通用的图标。 其原因是两个动作文件,sdtgwm.dtsdtwinlst.dt,从 directory /usr/dt/appconfig/types/C 目录中消失。

解决方法: 若要增加缺少的图标:

  1. /usr/dt/appconfig/type/C 中创建一个新的文件并命名为 sdtgwm.dt

  2. 编辑此文件,并插入以下文本:


    ACTION SDtgwm
    	{
    		LABEL				GWM
    		TYPE					COMMAND
    		EXEC_STRING		sdtgwm
    		ICON					SDtgwm
    		WINDOW_TYPE	  NO_STDIO
    	}

  3. /usr/dt/appconfig/type/C 中创建一个文件 并命名为 sdtwinlst.dt

  4. 编辑此文件并插入以下文本:


    ACTION SDtWinLst
    	{
    		LABEL				Window List
    		TYPE					COMMAND
    		EXEC_STRING		sdtwinlst
    		ICON					SDtWinLst
    		WINDOW_TYPE		NO_STDIO
    	}

  5. 为了验证所有的动作都已加载,请退出 CDE 并重新登录。

卷管理器在装载 CDROM 时可能失败 (4355643)

具有非常数据格式的 CDROM 可能无法自动装载。 将 CDROM 插入驱动器后,"文件管理器"可能不能显示其内容。

解决方法: 手工装载该 CDROM:

  1. 转变为超级拥护。

  2. 停止卷管理器:


    /etc/init.d/volmgt stop
    

  3. 装载 CDROM:


    mount -F hsfs -r device_pathname /mnt
    

    其中 device_pathname 是系统中 CDROM 将要 连接到的路径。例如,/dev/dsk/c0t6d0s0


    注意:

    CDROM 驱动器出厂时通常连接到 c0t6d0s0c0t2d0s0,但是您必须使用正确的路径, 该命令才能工作。


  4. 重新启动卷管理器:


    /etc/init.d/volmgt  start
    

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

如果将软盘插到带 SCSI可扯卸媒体设备的系统上的软驱中,然后选择从 OpenWindowsTM 文件管理器中的"文件"菜单查看此软盘,文件管理器将软盘装载到 /floppy 目录中,但无法显示列出磁盘内容的文件管理器视图。在文件管理器的"文件"菜单中没有显示"格式化软盘"和"弹出软盘"的选项。

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

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

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

从桌面删除上一项后(例如,日历中的上一个约会或者地址管理器中的上一个地址),当您与便携设备同步时可以从便携设备中恢复它。

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

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

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

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

系统管理错误

在帮助系统中仍然有旧文件 (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
    


由于 WBEM JavaSpaces 问题 mofcomp 失败 (4336719)

运行 /usr/sadm/bin/mofcomp/usr/sadm/bin/wbemadmin 时可能显示以下错误消息:


NO_SUCH_QUALIFIER1: Qualifier association 
not found.
您必须重置 CIM 对象管理器系统信息库。

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

  1. 成为超级用户。

  2. 终止 CIM 对象管理器。


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

  3. 重命名 JavaSpaces 日志目录。


    # mv /var/sadm/wbem/log /var/sadm/wbem/logprepatch
    

  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)

从软盘、CD 或连接了几个 USB 设备的网络引导时,配置内存少且 USB 可用的系统可能会发生恐慌。在这种情况下将显示以下恐慌消息之一:



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 插件支持

ava 插件 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) 显式地命名为关联文件名。

性能问题

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

缺省情况下,Solarisata 设备驱动程序的 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 错误

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

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

本地化错误

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

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

解决方法: 登录到相当的 ISO-1 语言环境并启动 Java 应用程序。

UTF-8 版本的 sdtwinlstsdtgwm 没有进行欧洲语言的本地化 (4352800, 4352861)

sdtwinlst(窗口列表)和 sdtgwm (Graphical Workspace Manager) 未进行欧洲语言的 UTF-8 选定编码方法的本地化。

解决方法: 登录到 ISO8859-1 编码,然后运行 sdtwinlstsdtgwm

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

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

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

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

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

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

欧洲语言环境中无法使用"额外"下拉式菜单 (4298547)

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

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

用于输入希伯来文、阿拉伯文和泰文的复杂文本语言 (CTL) 支持在 en_US.UTF-8 和欧洲 UTF-8 语言环境中已经实现,但 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
            }
    }

少数应用程序中的若干屏幕未本地化 (4301212, 4301555, 4301507, 4304495)

应用程序 SmartCard、AnswerBook2、Solaris PDASync、打印机管理器、可删除媒体管理器、图形工作区管理器和热键编辑器未全部本地化。

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

在 Solstice AdminToolTM 的希腊文语言环境中,添加、修改和删除用户屏幕为黑屏。

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


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

字体下载程序添加取消按钮标记错误 (4303549)

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

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

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

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

键 

Sun 键盘布局 

Microsoft 的键盘布局 

下有喉塞音符号的阿拉伯文 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
然后开始排序。