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.
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.
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.
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.
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.
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.
As you can see from Figure 4, the installation process is simple and asks some basic questions before laying down the bits.
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.
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.
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
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:
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
If you look at the
/etc/passwd file in Figure 6, you will see
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.
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
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.
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
svcadm disable sendmail
-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.
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.
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.
nwamSMF 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.
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 (
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
| || |
Sharable files: docs, executables, and so on
| || |
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.
| || |
The Solaris versions of user command-line tools
| || |
System administration tools
| || |
Essential executables (used at boot time)
Table 2 shows three additional directories of note on Oracle Solaris.
Table 2: Additional Directories on Oracle Solaris
| || |
Optional software such as Oracle VM VirtualBox and OpenOffice.org
| || |
For configuration files
| || |
For log files
| || |
| || |
Top-level directory for user home directories
The home directories are actually auto-mounted from
/export/home. For more information see Automounted Home Directory.
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.
You can use either the Package Manager GUI, as shown in Figure 11, or the command line to manage the packages.
From the command line, the main command is
pkg command is always intended to be run with a subcommand such as
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:/firstname.lastname@example.org solaris pkg:/email@example.com solaris pkg:/firstname.lastname@example.org 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://email@example.com,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
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.
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.
You may have noticed the Install link when you were browsing the repositories. Figure 12 shows the Package Catalog.
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).
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.
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
bleonard@solaris:~$ sudo beadm create BeforeTampering
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.
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.
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.
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