First Steps with Oracle Solaris 11 Express

By Brian Leonard, August 2011


Note: This article has been replaced by a Solaris 11 version.  Oracle Solaris 11 Express is no longer supported by Oracle.

Oracle Solaris 11 Express is distributed in several formats: a hands-free server based format that's used for automatic installation, an interactive installer format that only has console access, and an interactive graphical installer that includes a full desktop environment.

This article focuses on the third format with the full desktop environment, although most of the concepts discussed in this article will apply to any of the Oracle Solaris 11 Express formats. The graphical format is officially known as the LiveCD. This means that Oracle Solaris can be booted into RAM, causing  zero impact on your existing operating system. Once it is loaded, you are then free to experiment with Oracle Solaris to determine whether it is something that you would like to install.

You can obtain the Oracle Solaris 11 Express 2010.11 LiveCD for X86 by downloading the roughly 700 MB image file and using a CD burner to create the disk. 

The LiveCD is not intended for long-term use. For example, any changes that you make to the system will be lost when the system is shut down. Therefore, the next logical step is to install Oracle Solaris on the system, which the LiveCD makes easy by placing an Install Oracle Solaris icon right on the desktop. But before we head down that road, let's step back a bit and consider the installation options.

Installation Options

You have several alternatives on where to install Oracle Solaris: inside a virtual machine on top of your existing operating system, on the bare metal alongside your existing operating system(s), or on the bare metal as a standalone operating system.

Virtual Machine

The easiest way to start using Oracle Solaris is to install it into a virtual machine on top of your existing operating system. Figure 1 shows Oracle Solaris installed on Windows Vista.

OpenSolaris on Windows Vista
Figure 1. Oracle Solaris on Windows Vista
Click the image to enlarge it.
 

You are guaranteed that Oracle Solaris will recognize the virtualized devices that the virtual machine provides. If you run Oracle Solaris in full-screen mode, you may actually forget that there's another operating system underneath. The one drawback to this approach is that you need enough memory to run two operating systems simultaneously -- a minimum of 2 GB is recommended.

Oracle VM VirtualBox is a free and open-source hypervisor that supports Windows, OS X, Linux, and Oracle Solaris as host platforms, and, of course, Oracle Solaris as one of its many guests. Oracle makes it easy to try this approach by offering a VirtualBox VM containing a pre-installed Oracle Solaris 11 Express. If you decide to take this approach, the blog Solaris 11 Express VirtualBox VM will walk you through all the steps to get the VM up and running.

Standalone System

If you have a machine to dedicate to Oracle Solaris, the installation process is straightforward. The biggest question mark with this approach is whether Oracle Solaris has the proper drivers for your hardware devices. If you've run the LiveCD, you may already have an indicator of how well your devices are supported. On the desktop of the LiveCD is an icon for the Device Driver Utility, as shown in Figure 2. Double-click on the desktop icon and wait for the scan to complete.

Device Driver Utility
Figure 2. Device Driver Utility
 

If drivers are missing, the utility provides pointers on where to look for help. Google is also your friend here, but if you truly hit a dead end, Oracle VM VirtualBox may be a better solution until the driver you need becomes available or until you buy a new machine or the components necessary to solve the driver problems.

Assuming that you have no driver issues, simply boot the LiveCD and click the Install Oracle Solaris icon on the desktop to launch the installer, as shown in Figure 3.

Oracle Solaris Installer
Figure 3. Oracle Solaris Installer
Click the image to enlarge it.
 

As you can see from Figure 4, the installation process is simple and asks some basic questions before laying down the bits.

Multiboot

In a multiboot scenario, you install Oracle Solaris on the bare metal alongside your existing operating system(s). This scenario is the most complicated and requires some preparation.

The Oracle Solaris 11 Express LiveCD includes the GNOME Partition Editor, GParted, that you can use to partition your hard disk. You should create the partition of the type Linux swap, which the Oracle Solaris installer will recognize.

If Windows is your existing OS, the Oracle Solaris boot loader will recognize it without difficulty. If Linux is your existing OS, be sure to back up your GRUB configuration file, because you will need to add its entries to the Oracle Solaris GRUB menu. Consult the excellent documentation available for these scenarios.

Users

Now that you have Oracle Solaris installed in some form, let's discuss how the privileges assigned to the user ID that you created during installation allow you to administer your system.

If you recall, during installation you created a user account, as shown in Figure 4.

Installer Users Page
Figure 4. Installer Users Page
Click the image to enlarge it.
 

The installer only asked you for a single password, which is used as the password for both the root account and the initial user account. However, the root password is immediately expired, as you'll see if you try to switch to root:

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

GUI tools requiring administrator privileges will also prompt you for the root password. For example, if you try to start the Package Manager GUI, you'll first be promoted for the root password, as show in Figure 5:

Password Required
Figure 5. Password Required Dialog

There is one little glitch to be aware of -- if you attempt to run a GUI that prompts for the root password, and the root password is expired, the GUI just exits. No warning or prompt for a new password is provided. This issue is being addressed, so just make sure you attempt an su from the command line and set a new root password before trying to use the GUI tools that require the root password.

The root Role


If you look at the /etc/passwd file in Figure 6, you will see root defined.

The etc/passwd File
Figure 6. The /etc/passwd File
Click the image to enlarge it.
 

However, you will be frustrated if you try to log in as root. For security reasons, Oracle Solaris does not define root as a user account. If you look at the /etc/user_attr file in Figure 7, you can see that root is defined as a role.

The etc/user_attr File
Figure 7. The /etc/user_attr File
Click the image to enlarge it.
 

You can also see in Figure 7 that the user ID created by the installer was assigned the root role by default. So, although you cannot log in as root, you can switch to the root role, which will prompt you for the root password (Note: When using su the default user name is root and it is not required, as seen in the earlier example where we changed the default password):

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

By using this approach (where root is a role rather than a user account), you're guaranteed to have an audit trail of who did what on the system as root.

Sudo


In addition to being assigned the root role, the user created at install time has also been added to the /etc/sudoers file. The /etc/sudoers file is well documented and you can define very fine grained rules as to what a particular user is allowed to do. In the case of the user created during installation, the user is allowed to do everything (just as if they were root). Here's what the entry for the user created during this installation looks like:

bleonard ALL=(ALL) ALL 


The entry above is stating that user bleonard can run any command on any host as any user. For further details on how to fine-tune a user's privileges, see the sudoers man page.

So, theoretically, you should never have to switch to the root role to perform privileged operations, for example, to write a file to the root of the file system:

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

However, prefixing the same command with sudo gives me the proper privileges necessary for the operation to complete:

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

 
Note, the password required by sudo is not the root password, but rather your user account password.

The bottom line here is that everything is set up for you "out of the box" with the default installation of Oracle Solaris. The user ID you created at install time is able to fully administer the system.

With the right privileges, you can properly administer your system, such as managing system services, which we address in the next section.

Service Management Facility (SMF)

Oracle Solaris manages system services through the Service Management Facility (SMF). Although a GUI is available, the more common and powerful way to manage the services is to use these command-line commands: svcs to report service status and svcadm to manipulate service instances. For example, run svcs to get a list of the currently running services:

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
 

SMF has many advantages relative to the old way of using UNIX services through startup scripts. The key advantage is the specification of metadata about each service in a manifest file. This allows you to specify dependencies between services, which then enables independent services to be started in parallel, which speeds up the system boot. Also, when services fail, they can be restarted in the correct order relative to each other. For example, take a look at the sendmail service, using the -l option to display all available information:

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)
 

At the bottom of this listing, you can see the services on which sendmail depends. If one of sendmail's dependent services fails to start for some reason, sendmail will not even attempt to start.

You can also easily disable, enable, and restart services by using the svcadm command. For example, use this command to disable the sendmail service:

svcadm disable sendmail
 

Using the -x option for the svcs command will give you an explanation of the service state:

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.
                  
 

Note that this output also provides links to further information about the service state ( http://sun.com/msg/SMF-8000-05 ) and the services log file ( /var/svc/log/network-smtp:sendmail.log), both of which can be very useful in tracking down service failures.

Administering the Network with Network Auto-Magic

One of the first services that you need to administer is the network. Oracle Solaris uses a service known as Network Auto-Magic (NWAM) to manage the network. The service works with both wired and wireless network connections and provides all the features that you expect from a network manager, such as the ability to identify and manage wireless networks.

The first place to start is the Network Status icon found on the top panel of the desktop, an example of which is shown in Figure 8.

Network Status Icon
Figure 8. Network Status Icon: Online (Wired)


The icon indicates whether you are connected to a wired network, connected to a wireless network or offline. Clicking the icon will bring up the Network Preferences dialog, as shown in Figure 9.

The etc/user_attr File
Figure 9. Network Preferences Dialog

From the Network Status dialog I can see both my IP version 4 and version 6 addresses as well as my network speed.

To view available wireless networks, simply right-click the Network Status icon. A menu of available wireless networks will appear as shown in Figure 10.

The etc/user_attr File
Figure 10. Wireless Networks Dialog

If you prefer to manage NWAM via the command line, check out nwamadm.

Remember the NWAM GUI manages the underlying nwam SMF service, and just like any SMF service, you can view the status of the service from the command line:

 

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)
                  

If you prefer to manage your network manually, you need to disable the NWAM service and enable the "manual" service as follows:

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


You will now have full manual control over the network configuration. 

I've just touched on a few of the features provided by NWAM. You can also define network profiles to define which interfaces are enabled as well as locations to define different network connection rules for, say, your home and your office. For more on NWAM see About the NWAM Graphical User Interface.

Where Is Everything on Oracle Solaris?

So where is everything on Oracle Solaris? The root directory is not hard to understand for those accustomed to Windows operating systems. It's like the top-level directory on a drive ( C:\). The key difference is that Oracle Solaris provides a single directory hierarchy that starts at /. So, unlike Windows, there's no need to specify a device ( C:\ or D:\, and so on) in the file name.

Table 1 shows directories available on Oracle Solaris through the default PATH. Note the use of forward slashes and colons instead of the semicolons found on Windows.

Table 1. Oracle Solaris Directories on the Default Path
 
 
Directory
Content
Notes
/usr
Sharable files: docs, executables, and so on
 
/usr/gnu/bin
The GNU versions of user command-line tools
GNU is a recursive acronym for "GNU's Not UNIX." Due to the popularity of GNU, you can now find the GNU software in UNIX.
/usr/bin
The Solaris versions of user command-line tools
The /usr/bin directory has some overlap with /usr/gnu/bin versions, so change the PATH if you want the Solaris version. This order was set to make Oracle Solaris more familiar to Linux users.
/usr/sbin
System administration tools
The s stands for "system."
/sbin
Essential executables (used at boot time)
The s stands for "system."
 

Table 2 shows three additional directories of note on Oracle Solaris.

Table 2: Additional Directories on Oracle Solaris
 
 
Directory
Content
/opt
Optional software such as Oracle VM VirtualBox and OpenOffice.org
/etc
For configuration files
/var
For log files
/usr/X11/bin
X11 utilities
/home
Top-level directory for user home directories
 

 The home directories are actually auto-mounted from /export/home. For more information see Automounted Home Directory.

Image Packaging System (IPS)

Because Oracle Solaris 11 Express is designed to fit on a CD, you'll discover very quickly the need to get additional software. A key differentiator from the Oracle Solaris 10 OS is the new Image Packaging System (IPS) in Oracle Solaris 11 Express. One of the main goals of the IPS is to provide a network repository-based delivery mechanism, which is kind of like an app store. Oracle Solaris comes with one repository preregistered, and you can easily add more.

Finding and Installing Packages

You can use either the Package Manager GUI, as shown in Figure 11, or the command line to manage the packages.

Package Manager
Figure 11. Package Manager Click the image to enlarge it.
 

From the command line, the main command is pkg. The pkg command is always intended to be run with a subcommand such as list, search, info, or install. For example, use the pkg list command to see the list of packages currently installed on your system:

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  -----
...
 

To find a package, use the search subcommand. For example, if you are looking for Tomcat, use pkg search. The -p flag restricts the results to the pkg names only; otherwise the output lists all items in a package that contain the search string, e.g. files, directories, links, and so on.):

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
 

And then to get more information on a particular package, use pkg info. The -r flag (remote) is necessary when querying a package thats is not installed on the local file system:

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
 

To see the contents of the Tomcat package, use the pkg contents command. This is very useful when your trying to figure out where a package installed its 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


To see dependencies that a package may have, you can use the -m or metadata option, along with 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
 

What this means is that IPS will identify the packages on which Tomcat depends and install them if they are not already installed.

Finally, when you are ready to install the package, use the pkg install command:

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
 

Note: Only authorized users can install packages to the system, which is why you must prefix the previous command with sudo. See the Users section to review.

Repositories


Oracle Solaris 11 Express comes preconfigured with a single software repository: http://pkg.oracle.com/solaris/release. Oracle also makes the entire software repository available for download so that it can be set up on your internal network if so desired. It is also possible to configure additional software repositories, and over time, as Oracle Solaris 11 matures, we expect other software vendors to publish their own repositories.

Besides the default release repository at pkg.oracle.com, Oracle makes available a  support repository to those that purchase a support contract. The support repository is updated about once per month with bug fixes and security patches to Oracle Solaris 11. For more information on support see Oracle Premier Support for Operating Systems.
 

One-Click Install

You may have noticed the Install link when you were browsing the repositories. Figure 12 shows the Package Catalog.

Package Catalog
Figure 12. Package Catalog
Click the image to enlarge it.
 

Clicking the Install link will launch the Package Manager and start the installation. It will also install the repository first if necessary. This is a nice feature, as anyone can promote a package. For example, here's a link to install Tomcat (note: Unless you're reading this from Oracle Solaris, your operating system will not know what do to with this link).

Boot Environments

A boot environment is a clone of the files that are critical to the operation of Oracle Solaris. After installation, there is only a single boot environment, but over time, new boot environments will be created, either manually by you or automatically by the Update Manager (discussed next). A boot environment essentially allows you to roll back to an earlier snapshot of Oracle Solaris in case something goes wrong in your current boot environment. Figure 13 shows the Manage Boot Environments dialog box.

Manage Boot Environments
Figure 13. Manage Boot Environments Dialog
Click the image to enlarge it.
 

Before you do anything risky on your system, such as tampering with that configuration files that warn you not to edit them, consider creating a new boot environment to protect yourself. You create a new boot environment using the beadm utility. Here's an example of creating a new boot environment called BeforeTampering.

bleonard@solaris:~$ sudo beadm create BeforeTampering
 

 

Update Manager

When updates to IPS packages are available, Oracle Solaris will notify you by way of an icon in your top panel, as shown in Figure 14. Clicking on the icon will launch the Update Manager which will then create a new boot environment and install the updates. The updated system will be active on your next boot. If an update corrupts your system, you can safely boot into the environment prior to the update.

Update Manager
Figure 14. Update Available Icon
 

Solaris Legacy Package Manager

For many years, the Solaris OS has used the SVR4 packaging system, so named because it was part of the System V, Release 4 version of UNIX.

Oracle Solaris supports SVR4 packages and includes the commands needed to install and remove those packages. But no coordination exists between the IPS packages and the SVR4 packages. Conflicts may occur during package installation when you mix SVR4 and IPS packages that contain identical files, so don't install SVR4 packages unless absolutely necessary. If you run into this situation, cancel the installation and attempt to resolve the conflict before you continue.

A Final Message

Moving to Oracle Solaris can be exciting. However, it can also be frustrating as you begin to learn your way around. Hopefully, this article has given you enough of an introduction to make the move.

Once up and running, you will surely come up with additional questions. An experienced Solaris community is ready to help. Come join us in the OTN Discussion Forum: Solaris 11 Express for SysAdmins. Generally you will receive a response within hours.

Enjoy your journey with Oracle Solaris.

For More Information

Oracle Solaris 11 Express
Oracle Solaris 11 Express Information Library

Getting Started With Oracle Solaris 11 Express
Oracle Solaris 11 Express on OTN
The Observatory: Oracle Solaris Tips and Tricks
Download Oracle Solaris 11 Express