Oracle Solaris 10 9/10 发行说明

Oracle Solaris 命令和标准

下一节介绍 Oracle Solaris 10 OS 中某些命令和标准的行为变化。

winbind 命令只获取前 1000 个 Active Directory 用户

在 Active Directory 环境中将 Samba 服务器与 winbind 配合使用时,将发生此错误。Solaris 10 10/09 发行版包含 Samba 3.0.28 软件版本。从 Active Directory 服务器中查询所有用户或 1000 个以上的用户时,winbind 只获取前 1000 个结果。

解决方法: 无。

已更改的 Trusted Extensions(高可靠扩展版)手册页仅位于参考手册中

此发行版中修订了以下高可靠扩展版手册页:

无法使用 man 命令查看已修订的手册页。要查看已修订的手册页,请参见《Solaris Trusted Extensions Reference Manual》

Bash 3.00 不再设置某些环境变量

Oracle Solaris 10 OS 包含 Bash 3.00。此 shell 不再自动导出下列环境变量:

即使 shell 为这些变量分配缺省值,此新行为也适用。

解决方法: 手动导出这些变量。

ln 实用程序需要 -f 选项

/usr/bin/ln 的行为已更改为符合从 SVID3 到 XCU6 的所有标准。如果使用不带 -f 选项的 ln 命令链接至现有目标文件,则无法建立链接。而是将诊断消息写入标准错误,且该命令继续链接任何其他源文件。最后,ln 命令退出,并显示错误值。

例如,如果文件 b 存在,语法 ln a b 生成以下消息:


ln: b: File exists

此行为更改影响包含不带 -f 选项的 ln 命令的现有 shell 脚本或程序。过去运行的脚本现在在 Oracle Solaris 10 OS 中可能失败。

解决方法:-f 选项与 ln 命令一起使用。如果有执行链接实用程序的现有脚本,请确保修改这些脚本以符合命令的新行为。

新的 tcsh 版本不接受使用破折号或等号的 setenv 变量名

在 Oracle Solaris 10 OS 中,tcsh 已升级为版本 6.12。此版本不再接受名称中使用破折号或等号的环境变量。包含 setenv 行且在 Oracle Solaris 早期版本中起作用的脚本在当前发行版中可能产生错误。将显示以下错误消息:


setenv: Syntax error

有关更多信息,请参阅 Oracle Solaris 10 OS 的 tcsh 手册页。

解决方法: 不要在环境变量名称中使用破折号或等号。

STDIO getc 系列 EOF 条件行为更改

在严格符合 C 标准的模式下生成的应用程序可能受某些库功能的行为更改的影响。例如,使用 cc -Xcc89 编译模式编译的应用程序。下列库功能的行为已更改:

1990 C 标准的正式解释要求在设置文件结束条件后,后续输入操作中的文件不返回更多数据。例外情况是文件指针被重新定位或者应用程序已显式清除错误和文件结束标志。

所有其他编译模式的行为都保持不变。特别地,接口可在设置文件结束指示符后从流读取其他新写入的数据。

解决方法: 在流上调用 fseek()clearerr() 以便在流上报告 EOF 条件后读取其他数据。

ps 命令的输出列已加宽

由于 UID、处理器 ID 和累积执行时间较大,ps 命令输出的各列已加宽。客户脚本不应采用固定输出列。

解决方法: 脚本应使用 ps 命令的 -o 选项。

有关更多信息,请参见 ps(1) 手册页。