Oracle Solaris 11 Express 上手指南

作者:Brian Leonard,2011 年 8 月


Oracle Solaris 11 Express 有多种分发方式:基于服务器的无需手动操作的方式(用于自动安装)、仅具有控制台访问的交互式安装程序方式,以及包括整个桌面环境的交互式图形安装程序。

本文重点介绍第三种方式,即包含整个桌面环境的安装,本文讨论的各种概念适用于任何 Oracle Solaris 11 Express 安装方式。这种图形安装方式的正式名称为 LiveCD。这意味着 Oracle Solaris 将被引导到 RAM 中,不会对现有操作系统造成任何影响。加载安装程序后,您可以随意体验 Oracle Solaris,然后确定是否要安装。

下载大约 700 MB 的映像文件并使用 CD 刻录机创建磁盘,您可以获得适用于 X86 的 Oracle Solaris 11 Express 2010.11 LiveCD

LiveCD 不适合长期使用。例如,关闭系统后,您对系统的所有更改都将丢失。因此,接下来您需要安装 Oracle Solaris。通过 LiveCD 在桌面上放置的 Install Oracle Solaris 图标,您可以轻松进行安装。在继续下一步之前,我们先来了解一下安装选项。

安装选项

可通过以下几种方式安装 Oracle Solaris:安装到现有操作系统的虚拟机上、在已经安装了其他操作系统的计算机上进行安装,或者作为独立的操作系统安装到计算机上。

虚拟机

开始使用 Oracle Solaris 的最简单方法是将其安装到现有操作系统的虚拟机上。图 1 显示了安装在 Windows Vista 上的 Oracle Solaris。

Windows Vista 上的 Oracle Solaris
图 1. Windows Vista 上的 Oracle Solaris
单击图像可放大。
 

Oracle Solaris 可以识别虚拟机提供的虚拟设备。如果以全屏模式运行 Oracle Solaris,您甚至会忘记这是在另一个操作系统上运行。该方法的一个缺点是您需要足够的内存(建议至少 2 GB)才能同时运行两个操作系统。

Oracle VM VirtualBox 是免费的开源虚拟机监控程序,支持将 Windows、OS X、Linux 和 Oracle Solaris 作为主机平台,当然,Oracle Solaris 也可以作为它的一个来宾操作系统。为方便您采用该方法,Oracle 提供了一个 VirtualBox VM,其中包含预先安装的 Oracle Solaris 11 Express。如果您决定采用该方法,Solaris 11 Express VirtualBox VM 博客将向您介绍启动和运行 VM 的所有步骤。

单系统

如果您在一台计算机上只安装 Oracle Solaris,安装过程将非常简单。此方法最大的问题是 Oracle Solaris 是否有适合您硬件设备的驱动程序。如果您已经运行了 LiveCD,它会指出您设备的受支持程度。LiveCD 桌面上有一个 Device Driver Utility 图标,如图 2 所示。双击该桌面图标,等待扫描完成。

Device Driver Utility
图 2. Device Driver Utility
 

如果缺少驱动程序,该实用程序会告诉您从何处获得帮助。您也可以用 Google 搜索驱动程序。如果仍无法解决问题,建议您在获得所需驱动程序或购买新计算机、组件来解决驱动程序问题之前先使用 Oracle VM VirtualBox。

假设没有遇到驱动程序问题,则只需引导 LiveCD 并单击桌面上的 Install Oracle Solaris 图标来启动安装程序,如图 3 所示。

Oracle Solaris Installer
图 3. Oracle Solaris Installer
单击图像可放大。
 

如图 4 所示,安装过程十分简单,在安装前会询问一些基本问题。

多重引导

在多重引导方案中,可以在已经安装了其他操作系统的计算机上安装 Oracle Solaris。该方案最复杂,且需要一些准备。

Oracle Solaris 11 Express LiveCD 包括 GNOME Partition Editor (GParted),可用于对硬盘进行分区。您应创建 Oracle Solaris 安装程序可识别的 Linux swap 分区。

如果现有操作系统为 Windows,则 Oracle Solaris 引导加载程序可以顺利识别。如果现有操作系统为 Linux,请确保备份了 GRUB 配置文件,因为您需要把它的内容添加到 Oracle Solaris GRUB 菜单中。请参照针对这些方案的优秀文档

用户

现在,您已通过某种方式安装了 Oracle Solaris,接下来讨论如何利用分配给用户 ID(在安装期间创建)的权限来管理您的系统。

请回想一下,您在安装期间创建了一个用户帐户,如图 4 所示。

安装程序的 Users 页面
图 4. 安装程序的 Users 页面
单击图像可放大。
 

安装程序提示您输入口令,以此作为 root 帐户和初始用户帐户的口令。但是,root 口令很快会过期,如果您尝试切换到 root 帐户就会发现这一点:

bleonard@solaris:~$ su
Password: 
su: Password for user 'root' has expired
New Password: 

需要管理员权限的 GUI 工具还将提示您输入 root 口令。例如,如果您尝试启动 Package Manager GUI,首先将提示您输入 root 口令,如图 5 所示:

Password Required
图 5. Password Required 对话框

有一个小问题需要注意 — 如果您在尝试运行 GUI 时提示您输入 root 口令,而 root 口令已过期,GUI 将退出。不会发出警告或提示输入新口令。该问题尚未解决,因此在尝试使用需要 root 口令的 GUI 工具之前,只要确保在命令行输入 su 并设置了新的 root 口令。

root 角色


如图 6 所示,/etc/passwd 文件中定义了 root

etc/passwd 文件
图 6. /etc/passwd 文件
单击图像可放大。
 

然而,您仍然无法作为 root 登录。出于安全考虑,Oracle Solaris 未定义 root 用户帐户。从图 7 所示的 /etc/user_attr 文件中可以看到,root 被定义为一个角色。

etc/user_attr 文件
图 7. /etc/user_attr 文件
单击图像可放大。
 

在图 7 中还可以看到,默认情况下,为安装程序创建的用户 ID 分配了 root 角色。因此,虽然无法作为 root 用户登录,但可以切换到 root 角色,此时将提示您输入 root 口令(注意:使用 su 时,默认用户名为 root 且不是必填的,这在前面更改默认口令的示例中已经介绍过):

bleonard@solaris:~$ su root
Password:
bleonard@solaris:~#
 

使用该方法(root 作为角色而不是用户帐户),您可以作为 root 查看系统审计线索,了解谁做了何种操作。

Sudo


除了为安装时创建的用户分配 root 角色外,还将其添加到 /etc/sudoers 文件中。/etc/sudoers 文件提供了详细记录。您可以定义非常细粒度的规则,规定特定用户可执行的操作。而安装期间创建的用户可以执行任何操作(就像 root 用户一样)。安装期间所创建用户的条目如下所示:

bleonard ALL=(ALL) ALL 


上述条目说明,用户 bleonard 可以在任何主机上作为任何用户运行任何命令。要详细了解如何调优用户权限,请参阅 sudoers 手册页面。

理论上讲,您永远不应切换到 root 角色来执行授权的操作,例如,将文件写入文件系统根目录:

bleonard@solaris:~$ touch /file1
touch: cannot touch `/file1': Permission denied

通过为命令添加前缀 sudo 可获得完成操作所需的权限:

bleonard@solaris:~$ sudo touch /file1
Password: 

 
注意,sudo 所需的口令并非 root 口令,而是您的 用户帐户口令。

总的来说,就是 Oracle Solaris 默认安装为您完成了所有设置工作。安装时创建的用户 ID 可对系统进行全面管理。

具备适当的权限,您就可以正确管理您的系统,例如,我们将在下一节介绍的系统服务管理。

服务管理工具 (SMF)

Oracle Solaris 通过服务管理工具 (SMF) 来管理系统服务。虽然可以使用 GUI,但更常见、有效的服务管理方法是使用命令行命令: 使用 svcs 报告服务状态,使用 svcadm 操作服务实例。例如,运行 svcs 可列出当前正在运行的服务:

bleonard@solaris:~$ svcs
STATE          STIME    FMRI
legacy_run     Aug_28   lrc:/etc/rcS_d/S99punchclean
legacy_run     Aug_28   lrc:/etc/rc2_d/S20sysetup
...
online         13:43:30 svc:/network/ntp:default
online         17:17:22 svc:/system/avahi-bridge-dsd:default
 

与通过启动脚本使用 UNIX 服务的旧方法相比,SMF 有很多优点。主要优势是在一个清单文件中说明与每个服务有关的元数据。这使您能够指定服务间的依赖性,使不相关的服务能够并行启动,从而加速系统启动。而且,在服务失败时,它们还可以按彼此间的正确顺序重新启动。例如,sendmail 服务使用 -l 选项显示所有可用信息:

bleonard@solaris:~$ svcs -l sendmail
fmri         svc:/network/smtp:sendmail
name         sendmail SMTP mail transfer agent
enabled      true
state        online
next_state   none
state_time   Mon May 31 13:43:25 2011
logfile      /var/svc/log/network-smtp:sendmail.log
restarter    svc:/system/svc/restarter:default
contract_id  92
dependency   require_all/refresh file://localhost/etc/mail/sendmail.cf (online)
dependency   require_all/refresh file://localhost/etc/nsswitch.conf (online)
dependency   optional_all/none svc:/system/filesystem/autofs (online)
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   require_all/none svc:/network/service (online)
dependency   require_all/refresh svc:/milestone/name-services (online)
dependency   optional_all/refresh svc:/system/identity:domain (online)
dependency   optional_all/none svc:/system/system-log (online)
 

在该清单的底部,可以看到 sendmail 所依赖的服务。如果 sendmail 的一项相关服务由于某些原因无法启动,sendmail 甚至不会尝试启动。

您也可以使用 svcadm 命令轻松地禁用、启用和重新启动服务。例如,使用该命令禁用 sendmail 服务:

svcadm disable sendmail
 

使用 svcs 命令的 -x 选项可以查询服务状态:

bleonard@solaris:~$ svcs -x sendmail
svc:/network/smtp:sendmail (sendmail SMTP mail transfer agent)
 State: disabled since Tue Jun 01 10:57:34 2009
Reason:  
                     Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: sendmail(1M)
   See: /var/svc/log/network-smtp:sendmail.log
Impact: This service is not running.
                  
 

注意,该输出还提供有关服务状态 (http://sun.com/msg/SMF-8000-05) 和服务日志文件 (/var/svc/log/network-smtp:sendmail.log) 详细信息的链接,这些信息对于追踪服务故障非常有用。

通过网络自动配置来管理网络

首先要管理的服务之一是网络:Oracle Solaris 使用网络自动配置 (NWAM) 服务来管理网络。该服务与有线和无线网络连接协同工作,提供您所需的网络管理器的所有特性,如识别和管理无线网络的功能。

首先要说的是桌面顶部面板上的 Network Status 图标,如图 8 所示。

Network Status 图标
图 8. Network Status 图标:联机(有线网络)


该图标指明您是连接到有线网络、无线网络还是脱机。单击该图标将打开 Network Preferences 对话框,如图 9 所示。

etc/user_attr 文件
图 9. Network Preferences 对话框

从 Network Status 对话框中可以看到 IPv4 和 IPv6 的地址以及网络速度。

要查看可用的无线网络,只需右键单击 Network Status 图标。将显示可用无线网络的菜单,如图 10 所示。

etc/user_attr 文件
图 10. Wireless Networks 对话框

如果您想通过命令行来管理 NWAM,请查看 nwamadm

记住,NWAM GUI 管理底层 nwam SMF 服务,和其他任何 SMF 服务一样,您可以通过命令行查看服务状态:

 

bleonard@solaris:~$ svcs -l nwam
fmri         svc:/network/physical:nwam
name         physical network interface autoconfiguration
enabled      true
state        online
next_state   none
state_time   June 16, 2011 05:25:40 PM EDT
logfile      /var/svc/log/network-physical:nwam.log
restarter    svc:/system/svc/restarter:default
contract_id  2009 
dependency   require_all/none svc:/network/netcfg (online)
dependency   require_all/none svc:/network/loopback (online)
dependency   require_all/none svc:/network/datalink-management (online)
dependency   require_all/none svc:/network/ip-interface-management (online)
                  

如果您想手动管理网络,则需要禁用 NWAM 服务并启用“手动”服务,如下所示:

bleonard@solaris:~$ svcadm disable nwam
bleonard@solaris:~$ svcadm enable physical:default


现在,您就可以完全手动控制网络配置了。

我刚刚大致谈了谈 NWAM 的几个特性。您还可以通过定义网络配置文件来定义启用的接口,并针对不同的场所(比如家和办公室)定义不同的网络连接规则。有关 NWAM 的更多信息,请参阅关于 NWAM 图形用户界面

Oracle Solaris 根目录

在根目录中,您可以看到 Oracle Solaris 的所有文件。对熟悉 Windows 操作系统的人来说,根目录不难理解。它就像驱动器上的顶层目录 (C:\)。主要区别在于 Oracle Solaris 提供了一个以 / 开头的目录层次结构。所以,与 Windows 不同,您不需要在文件名中指定设备(C:\D:\ 等)。

表 1 显示 Oracle Solaris 通过默认 PATH 提供的目录。注意,此处使用正斜杠和冒号,而不像 Windows 中使用分号。

表 1. 默认路径上的 Oracle Solaris 目录
 
 
目录
内容
说明
/usr
可共享的文件:文档、可执行文件等
 
/usr/gnu/bin
用户命令行工具的 GNU 版本
GNU 是“GNU 不是 UNIX”(GNU's Not UNIX) 的递归首字母缩写。由于 GNU 的盛行,您现在可以在 UNIX 中找到 GNU 软件。
/usr/bin
用户命令行工具的 Solaris 版本
/usr/bin 目录与 /usr/gnu/bin 版本有重叠,所以如果您要使用 Solaris 版本,需要更改 PATH。该命令是为了让 Linux 用户更熟悉 Oracle Solaris。
/usr/sbin
系统管理工具
s 代表“系统”
/sbin
重要的可执行文件(在启动时使用)
s 代表“系统”
 

表 2 显示 Oracle Solaris 中另外 3 个要注意的目录。

表 2:Oracle Solaris 中的其他目录
 
 
目录
内容
/opt
可选软件,如 Oracle VM VirtualBox 和 OpenOffice.org
/etc
存放配置文件
/var
存放日志文件
/usr/X11/bin
X11 实用程序
/home
用户主目录的顶级目录
 

主目录实际上是从 /export/home 自动挂载的。有关详细信息,请参见自动挂载的主目录

映像包管理系统 (IPS)

由于 Oracle Solaris 11 Express 是针对 CD 设计的,您很快就会发现还需要其他软件。与 Oracle Solaris 10 操作系统最大的区别在于 Oracle Solaris 11 Express 中新的映像包管理系统 (IPS)。IPS 的一个主要目标是提供基于网络信息库的交付机制,其作用类似于应用商店。Oracle Solaris 自带了一个预先注册的信息库,您还可以轻松添加更多信息库。

查找并安装程序包

您可以使用 Package Manager GUI(如图 11 所示)或命令行来管理程序包。

Package Manager
图 11. Package Manager 单击图像可放大。
 

在命令行中,主命令是 pkgpkg 通常与 listsearchinfoinstall 等子命令一起运行。例如,运行 pkg list 命令可查看系统上目前安装的程序包列表:

bleonard@solaris:~$ pkg list 
NAME (PUBLISHER)                              VERSION         STATE      UFOXI
SUNWcs                                        0.5.11-0.151.0.1 installed  -----
SUNWcsd                                       0.5.11-0.151.0.1 installed  -----
audio/audio-utilities                         0.5.11-0.151.0.1 installed  -----
codec/flac                                    0.5.11-0.151.0.1 installed  -----
codec/libtheora                               0.5.11-0.151.0.1 installed  -----
...
 

要查找程序包,可使用 search 子命令。例如,要查找 Tomcat,可以使用 pkg search。使用 -p 标志可以将搜索结果限定为程序包名称;否则会输出程序包中包含搜索字符串的所有项(例如,文件、目录、链接等):

bleonard@solaris:~$ pkg search -p tomcat
PACKAGE                                                       PUBLISHER
pkg:/web/java-servlet/tomcat/tomcat-examples@6.0.28-0.151.0.1 solaris
pkg:/web/java-servlet/tomcat@6.0.28-0.151.0.1                 solaris
pkg:/web/server/apache-22/module/apache-jk@1.2.28-0.151.0.1   solaris
 

要获得特定程序包的详细信息,可以使用 pkg info-r 标志 (remote) 用于查询并非安装在本地文件系统上的程序包:

bleonard@solaris:~$ pkg info -r tomcat
          Name: web/java-servlet/tomcat
       Summary: Tomcat Servlet/JSP Container
   Description: Tomcat Servlet/JSP Container
      Category: Web Services/Application and Web Servers
         State: Not installed
     Publisher: solaris
       Version: 6.0.28
 Build Release: 5.11
        Branch: 0.151.0.1
Packaging Date: November  5, 2010 06:20:46 AM 
          Size: 7.59 MB
          FMRI: pkg://solaris/web/java-servlet/tomcat@6.0.28,5.11-0.151.0.1:20101105T062046Z
 

要查看 Tomcat 程序包的内容,可以使用 pkg contents 命令。如果您想弄清程序包内容的安装位置,建议使用该命令。

bleonard@solaris:~$ pkg contents -r tomcat
PATH
etc
etc/tomcat6
lib
lib/svc
lib/svc/manifest
lib/svc/manifest/network
lib/svc/manifest/network/http-tomcat6.xml


要查看程序包的依赖项,可以使用 -m 或元数据选项以及 grep

bleonard@solaris:~$ pkg contents -rm tomcat | grep depend
depend fmri=consolidation/sfw/sfw-incorporation type=require
depend fmri=SUNWcs@0.5.11-0.151.0.1 type=require
 

这表示 IPS 将识别并安装(如果尚未安装)Tomcat 所依赖的程序包。

最后,当您准备好安装程序包时,可以使用 pkg install 命令进行安装:

bleonard@solaris:~$ sudo pkg install tomcat
               Packages to install:     1
           Create boot environment:    No
               Services to restart:     1
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1     181/181      5.2/5.2

PHASE                                        ACTIONS
Install Phase                                243/243 

PHASE                                          ITEMS
Package State Update Phase                       1/1 
Image State Update Phase                         2/2 

PHASE                                          ITEMS
Reading Existing Index                           8/8 
Indexing Packages                                1/1
 

注意:只有授权用户才能在系统上安装程序包,因此您必须为上述命令添加 sudo 前缀。详细内容请参见用户一节。

信息库


Oracle Solaris 11 Express 预配置了一个软件信息库:http://pkg.oracle.com/solaris/release。Oracle 还提供了整个软件信息库的下载,这样您可以在需要时在内部网络上配置该信息库。您还可以配置更多的软件信息库,随着 Oracle Solaris 11 的不断成熟,我们期待其他软件供应商发布自己的信息库。

除了 pkg.oracle.com 上默认的 release 信息库之外,Oracle 还为购买支持合同的客户提供了 support 信息库。support 信息库大概每月更新一次,其中包括 Oracle Solaris 11 的错误修复和安全补丁。有关支持的详细信息,请参见 Oracle 操作系统标准支持服务
 

一键式安装

您查看信息库时可能已经注意到了 Install 链接。图 12 显示了 Package Catalog。

Package Catalog
图 12. Package Catalog
单击图像可放大。
 

单击 Install 链接将启动 Package Manager,并开始安装。如有必要,首先将安装信息库。这是一个不错的特性,因为任何人都可以升级程序包。例如,这是安装 Tomcat 的链接(注意:除非您是在 Oracle Solaris 中阅读此文件,否则您的操作系统将无法识别该链接的用途)。

引导环境

引导环境 是对 Oracle Solaris 操作至关重要的文件的一个克隆。安装后,系统中只有一个引导环境,但随时间的发展,您可能会手动创建或通过 Update Manager(在下一节讨论)自动创建新的引导环境。如果当前引导环境出现故障,您可以通过引导环境回滚到之前的 Oracle Solaris 快照。图 13 显示了 Manage Boot Environments 对话框。

Manage Boot Environments
图 13. Manage Boot Environments 对话框
单击图像可放大。
 

在对您的系统执行危险操作(如篡改警告您不要进行编辑的配置文件)之前,考虑创建一个新引导环境来进行自我保护。使用 beadm 实用程序创建一个新引导环境。以下是创建名为 BeforeTampering 的新引导环境的示例。

bleonard@solaris:~$ sudo beadm create BeforeTampering
 

 

Update Manager

有可用的 IPS 程序包更新时,Oracle Solaris 将通过顶部面板的一个图标来通知用户,如图 14 所示。单击该图标将启动 Update Manager,Update Manager 将创建新引导环境并安装更新。更新后的系统将在下次引导时激活。如果更新损坏了系统,您可以安全地引导到更新前的系统。

Update Manager
图 14. Update Available 图标
 

Solaris 以前的程序包管理器

多年来,Solaris 操作系统一直使用 SVR4 程序包管理系统,其命名源于它是 UNIX 第 4 版 System V 的组成部分。

Oracle Solaris 支持 SVR4 程序包,并且包括安装和删除这些程序包的命令。但 IPS 程序包与 SVR4 程序包之间缺乏协调,如果同时安装包含相同文件的 SVR4 和 IPS 程序包,可能会发生冲突,因此除非绝对必要,请不要安装 SVR4 程序包。发生冲突时,应取消安装并在继续下一步之前尝试解决该问题。

结束语

改用 Oracle Solaris 会带来激动人心的体验。但学习的过程也会遇到挫折。希望本文能提供足够的信息来帮助您完成这一转变。

一旦系统启动并开始运行,您肯定还会遇到其他问题。我们提供了经验丰富的 Solaris 社区来帮您解决问题。请加入我们的 OTN 论坛:面向系统管理员的 Solaris 11 Express。通常,您会在几小时内得到答复。

希望您能享受学习 Oracle Solaris 的过程。

更多信息

Oracle Solaris 11 Express
Oracle Solaris 11 Express 信息库

Oracle Solaris 11 Express 入门
OTN 上的 Oracle Solaris 11 Express
The Observatory:Oracle Solaris 提示和技巧
下载 Oracle Solaris 11 Express