Taking Your First Steps with Oracle Solaris 11

by Glynn Foster

An introduction to installing Oracle Solaris 11, including the steps for installing new software and administering other system configuration.


Published October 2012

Oracle Solaris 11 is distributed with several different installation options: a hands-free automated server-based install, an interactive text-based install that is also suitable for servers, and an interactive graphical installer that includes a full desktop environment.

OTN is all about helping you become familiar enough with Oracle technologies to make an informed decision. Articles, software downloads, documentation, and more. Join up and get the technical resources you need to do your job.

This article focuses on the interactive graphical installer, although many of the concepts discussed in this article apply to the other Oracle Solaris 11 installation options. Users coming from Oracle Solaris 10 are urged to take a look at the Transitioning from Oracle Solaris 10 to Oracle Solaris 11 guide.

The graphical installer is officially known as the "Live Media." This means that Oracle Solaris can be booted into RAM, causing zero impact on your existing operating system. After it is loaded, you are free to experiment with Oracle Solaris to determine whether it is something you would like to install to your system.

You can download Oracle Solaris 11 Live Media for x86, which is an approximately 800 MB image file, and use a DVD burner to create the disk, or you can use the ISO image directly in a virtual machine or through the Oracle Integrated Lights Out Manager (ILOM) Remote Console.

The Live Media is not intended for long-term use. For example, any changes that you make to the system are lost when the system is shut down. Therefore, the next logical step is to install Oracle Solaris on the system, which the Live Media 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 for where to install Oracle Solaris 11:

Installing Inside a Virtual Machine

The easiest way to start using Oracle Solaris 11 is to install it into a virtual machine on top of your existing operating system. Figure 1 shows Oracle Solaris 11 installed on Apple OS X using Oracle VM VirtualBox.

Figure 1

Figure 1. Oracle Solaris on Apple OS X

You are guaranteed that Oracle Solaris 11 will recognize the virtualized devices that the virtual machine provides. If you run Oracle Solaris 11 in full-screen mode, you might 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 for good performance. You should also allow a minimum of 7 GB of disk space to install the operating system.

Oracle VM VirtualBox is a free-to-download hypervisor that supports Microsoft Windows, Apple 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 also offering a number of preinstalled virtual machines for Oracle VM VirtualBox that are focused towards a specific use, for example, to evaluate the developer tools that are available on Oracle Solaris 11.

After you have booted off the Live Media, the installation process is straightforward. Simply click the Install Oracle Solaris icon on the desktop to launch the graphical installer, shown in Figure 2.

Figure 2

Figure 2. The Oracle Solaris Graphical Installer

As you can see from Figure 2, the installation process is simple and asks some basic questions before laying down a fixed set of packages. After Oracle Solaris has successfully been installed, you can easily customize the installation by using the Package Manager.

After the installation process is complete, you can simply reboot into your new Oracle Solaris environment or review the Oracle Solaris installation log, as shown in Figure 3.

Figure 3

Figure 3. Reviewing the Installation Log

Installing on Bare Metal as a Standalone System

If you have an x86 system to dedicate to Oracle Solaris 11, this installation process is really the same as installing the OS into a virtual machine. Simply boot the Live Media and start up the graphical installer.

The biggest question with this approach is whether Oracle Solaris 11 has the proper drivers for your hardware devices. If you run the Live Media, you can easily determine how well your devices are supported. On the desktop of the Live Media, there is an icon for the Device Driver Utility, which is shown in Figure 4. Double-click the icon and wait for the scan to complete.

While booting off the Live Media, the default user login and password is jack. If you need to become the root user, you can use the password solaris. Later, we will discuss more about how the initial user is set up during the Oracle Solaris installation.

Figure 4

Figure 4. The Oracle Solaris 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 might be a better solution until the driver you need becomes available or until you buy a new system or the components necessary to solve the driver problems.

If you are trying to install Oracle Solaris 11 onto a SPARC-based system, you will have to use the Interactive Text Installer. Unlike the Live Media, this installation installs a selection of software that is suitable for a server-oriented environment. It does not include a desktop environment. After the initial installation, you can install a full desktop environment by using the Package Manager to install the solaris-desktop package.

Installing on Bare Metal in a Multiboot Scenario

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

The Oracle Solaris 11 Live Media includes the GNOME Partition Editor, GParted, which you can use to partition your hard disk. You should create a partition of 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 Oracle Solaris 11 product documentation that is available for these scenarios.

Users

Now that you have Oracle Solaris 11 installed, 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 5.

Figure 5

Figure 5. The Oracle Solaris Graphical Installer—Configuring Users

The installer asked you for only 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:

larry@solaris:~$ su
Password:
su: Password for user 'root' has expired
New Password:
Re-enter new Password:
su: password successfully changed for root

GUI tools requiring administrator privileges will also prompt you for the root password initially and then explain that the root user has expired and a new password must be provided, as shown in Figure 6:

Figure 6

Figure 6. Prompt for a New root Password

The root Role

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

larry@solaris:~$ cat /etc/passwd 
root:x:0:0:Super-User:/root:/usr/bin/bash
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
lp:x:71:8:Line Printer Admin:/:
...

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

larry@solaris:~$ cat /etc/user_attr
#
# The system provided entries are stored in different files
# under "/etc/user_attr.d".  They should not be copied to this file.
#
# Only local changes should be stored in this file.
# This line should be kept in this file or it will be overwritten.
#
root::::type=role
larry::::lock_after_retries=no;profiles=System Administrator;roles=root

Listing 1. Verifying that root Is Defined as a Role

You can also see 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.

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

The sudo Command

In addition to being assigned the root role, the user created at install time is 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 installation looks like:

larry ALL=(ALL) ALL

The entry above is stating that user larry 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:

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

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

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

Note that 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 11. 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 11 manages system services through the Service Management Facility (SMF). Although a GUI is available, the more common and powerful way to manage 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, as shown in Listing 2.

larry@solaris:~$ svcs |more
STATE          STIME    FMRI
legacy_run     19:20:46 lrc:/etc/rc2_d/S47pppd
legacy_run     19:20:46 lrc:/etc/rc2_d/S89PRESERVE
disabled       19:21:28 svc:/system/ocm:default
online         19:12:50 svc:/system/early-manifest-import:default
online         19:12:50 svc:/system/svc/restarter:default
online         19:13:00 svc:/network/tcp/congestion-control:vegas
online         19:13:01 svc:/network/sctp/congestion-control:cubic
online         19:13:01 svc:/network/sctp/congestion-control:newreno
online         19:13:01 svc:/network/sctp/congestion-control:vegas
...
online         19:25:48 svc:/network/smtp:sendmail
online         19:25:51 svc:/network/location:default
online         19:25:52 svc:/system/filesystem/autofs:default
online         19:25:53 svc:/system/name-service/cache:default

Listing 2. Getting a List of the Currently Running Services

SMF has many advantages compared 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, as shown in Listing 3.

larry@solaris:~$ svcs -l sendmail
fmri         svc:/network/smtp:sendmail
name         sendmail SMTP mail transfer agent
enabled      true
state        online
next_state   none
state_time   September 11, 2012 07:25:48 PM UTC
logfile      /var/svc/log/network-smtp:sendmail.log
restarter    svc:/system/svc/restarter:default
contract_id  289
manifest     /lib/svc/manifest/network/smtp-sendmail.xml
manifest     /etc/svc/profile/generic.xml
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)

Listing 3. Displaying Information About a Service

At the bottom of Listing 3, you can see the services on which sendmail depends. If one of services on which sendmail depends 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:

larry@solaris:~$ sudo svcadm disable sendmail

larry@solaris:~$ svcs -x sendmail
svc:/network/smtp:sendmail (sendmail SMTP mail transfer agent)
 State: disabled since September 11, 2012 08:32:29 PM UTC
Reason: Disabled by an administrator.
   See: http://support.oracle.com/msg/SMF-8000-05
   See: sendmail(1M)
   See: /var/svc/log/network-smtp:sendmail.log
Impact: This service is not running.

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

larry@solaris:~$ svcs -x sendmail
svc:/network/smtp:sendmail (sendmail SMTP mail transfer agent)
 State: disabled since October  5, 2011 01:52:39 AM NZDT
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.

Equally, we could also have used the SMF Services graphical interface from the Administration menu in the desktop panel. This interface allows some of the same functionality as the command line, including the ability to disable, refresh, and restart system services and browse logs for each service instance, as shown in Figure 7.

Figure 7

Figure 7. Oracle Solaris SMF Service Inspector

Oracle Solaris 11 is secure by default. What this means is that all nonessential network services are disabled or configured to only listen for connections from the local system itself, thus reducing the risk of a network-based attack. In fact, only SSH, a service to allow remote logins, is enabled.

Administering the Network

One of the first services that you need to administer is the network. Oracle Solaris 11 uses Network Configuration Profiles (NCPs) to apply network configuration to a system. By default, when using the Live Media, the system uses the Automatic NCP, which automatically tries to connect to a network using DHCP. If a wired network is available, it will always connect to this; otherwise, it will try to connect to a wireless network.

The first place to start is the Network Status icon found on the top panel of the desktop. This icon indicates whether you are connected to a wired or wireless network or you are offline, as shown in Figure 8.

Figure 8a: Oracle Solaris Network Status: Wired Connection Figure 8b: Oracle Solaris Network Status: Wireless Connection Figure 8c: Oracle Solaris Network Status: No Connection
Figure 8. Three States of the Network Status Icon

Clicking the icon brings up the Network Preferences dialog box, as shown in Figure 9.

Figure 9

Figure 9. Oracle Solaris Network Preferences Dialog Box

From the Network Preferences dialog box, you can see both IP version 4 and version 6 addresses as well as the network speed for the network link that has been configured, in this case a wired interface. All network interfaces in Oracle Solaris 11 are assigned vanity identifiers, in this case net0, which no longer reflect what underlying network driver is used. This is a change that is new to Oracle Solaris 11 compared to previous releases.

If you are installing onto a laptop and have wireless networking, you can view the list of wireless networks available by right-clicking the status icon, as shown in Figure 10.

Figure 10

Figure 10. Oracle Solaris Wireless Network Options

Network configuration is managed using an SMF service, svc:/network/physical:default, and just like any SMF service, you can view the status of the service from the command line, as shown in Listing 4.

larry@solaris:~$ svcs -l network/physical:default
fmri         svc:/network/physical:default
name         physical network interface configuration
enabled      true
state        online
next_state   none
state_time   September 11, 2012 07:17:34 PM UTC
logfile      /var/svc/log/network-physical:default.log
restarter    svc:/system/svc/restarter:default
contract_id  69
manifest     /lib/svc/manifest/milestone/config.xml
manifest     /lib/svc/manifest/network/dlmgmt.xml
manifest     /lib/svc/manifest/network/network-physical.xml
manifest     /lib/svc/manifest/network/network-ipmp.xml
manifest     /lib/svc/manifest/network/network-install.xml
manifest     /lib/svc/manifest/network/network-ipmgmt.xml
manifest     /lib/svc/manifest/system/name-service/upgrade.xml
manifest     /etc/svc/profile/site/sc_profile.xml
dependency   optional_all/none svc:/milestone/config (online)
dependency   require_all/none svc:/network/datalink-management:default (online)
dependency   require_all/none svc:/network/loopback (online)
dependency   require_all/none svc:/network/physical:upgrade (online)
dependency   require_all/none svc:/network/location:upgrade (online)
dependency   optional_all/none svc:/network/ipmp (online)
dependency   optional_all/none svc:/network/install (disabled)
dependency   require_all/none svc:/network/ip-interface-management:default (online)
dependency   require_all/none svc:/system/name-service/upgrade (online)
dependency   require_all/none svc:/network/netcfg:default (online)
dependency   optional_all/none svc:/system/manifest-import (online)

Listing 4. Viewing the Status of an SMF Service

If you prefer to manage your network manually, you need to enable the DefaultFixed Network Configuration Profile, as follows:

larry@solaris:~$ sudo netadm enable -p ncp DefaultFixed
Password:
Enabling ncp 'DefaultFixed'

You will then have full manual control over the network configuration and can proceed to use the administrative commands dladm and ipadm to configure your network, as shown in Listing 5.

larry@solaris:~$ dladm show-phys
LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE
net0              Ethernet             unknown    1000   full      e1000g0
larry@solaris:~$ ipadm show-if
IFNAME     CLASS    STATE    ACTIVE OVER
lo0        loopback ok       yes    --
larry@solaris:~$ sudo ipadm create-ip net0
larry@solaris:~$ ipadm show-if
IFNAME     CLASS    STATE    ACTIVE OVER
lo0        loopback ok       yes    --
net0       ip       down     no     --
larry@solaris:~$ sudo ipadm create-addr -T static -a 10.0.2.18/24 net0/v4static
larry@solaris:~$ sudo ipadm show-if
IFNAME     CLASS    STATE    ACTIVE OVER
lo0        loopback ok       yes    --
net0       ip       ok       yes    --
larry@solaris:~$ ipadm show-addr
ADDROBJ        TYPE     STATE    ADDR
lo0/v4         static   ok       127.0.0.1/8
net0/v4static  static   ok       10.0.2.18/24
lo0/v6         static   ok       ::1/128

Listing 5. Manually Administering a Network

We will not cover manual network configuration, network configuration profiles, or managing naming services in this article. You can read more about manual network configuration in the excellent Oracle Solaris 11 product documentation.

Where Is Everything in Oracle Solaris?

So where is everything in Oracle Solaris 11? 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 (for example, C:\\, D:\\, and so on) when specifying a file name.

Oracle Solaris uses ZFS as the default root file system. ZFS provides the highest levels of data integrity, and it includes many different utilities to allow administrators to perform a variety of tasks, for example, data backup or data encryption.

Table 1 shows various locations available in Oracle Solaris from which to run different commands. These are specified by the value of the environmental variable $PATH.

Table 1. Locations and Their Content
Location Content Default Path
/usr/bin Nonessential command binaries (not needed in single-user mode); for all users. Yes
/usr/gnu/bin GNU versions of popular commands. Where there is no conflict, commands have been included in /usr/bin. Linux users can set /usr/gnu/bin to be in their $PATH at first to have a more familiar experience. No
/usr/sbin Nonessential system binaries, for example, daemons for various network services. Yes

Table 2 shows some additional locations to note in Oracle Solaris 11.

Table 2. More Oracle Solaris 11 Locations and Their Content
Location Content
/opt Optional application software packages.
/usr/local Tertiary hierarchy for local data, specific to this host. Typically, it has further subdirectories, for example, /usr/local/bin/, /usr/local/lib/, and /usr/local/share/.
/etc Static system configuration data.
/var Variable files whose content is expected to continually change during normal operation of the system, such as logs, spool files, and temporary e-mail files.
/home Users' home directories, containing saved files, personal settings, and so on.

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

Image Packaging System (IPS)

Because Oracle Solaris 11 is designed to fit on a CD, you might discover that you need to install additional software. A key differentiator from Oracle Solaris 10 is the new Image Packaging System (IPS) in Oracle Solaris 11. 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 preconfigured, and you can easily add more. From here, you can very easily install many other software components that aren't in the default installs, either by using a graphical or command-line client.

An important feature of IPS is automatic software-dependency checking. When you select a package to install, IPS determines all the other required packages that are needed and ensures that these are installed as well. There are a number of group packages that are available to install for common selections of software, for example, a desktop environment and a Web AMP stack.

Finding and Installing Packages

You can use either the Package Manager GUI (available from the System > Administration menu), shown in Figure 11, or the command line to manage the packages.

Figure 11

Figure 11. The Oracle Solaris Package Manager

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, indicated by an i in the first column of IFO, as shown in Listing 6. An f in the second column indicates that the package is frozen, and an r or o in the third column indicates that package has been renamed or obsoleted.

larry@solaris:~$ pkg list
NAME (PUBLISHER)                                  VERSION                    IFO
archiver/gnu-tar                                  1.26-0.175.1.0.0.24.0      i--
audio/audio-utilities                             0.5.11-0.175.1.0.0.24.0    i--
codec/flac                                        1.2.1-0.175.0.0.0.0.0      i--
codec/libtheora                                   1.1.1-0.175.1.0.0.15.0     i--
codec/ogg-vorbis                                  2.30.0-0.175.1.0.0.12.0    i--
codec/speex                                       1.2-0.175.1.0.0.15.0       i--
communication/im/pidgin                           2.10.5-0.175.1.0.0.24.0    i--
compress/bzip2                                    1.0.6-0.175.1.0.0.24.0     i--
compress/gzip                                     1.4-0.175.1.0.0.24.0       i--
compress/p7zip                                    9.20.1-0.175.1.0.0.24.0    i--
compress/unzip                                    6.0-0.175.1.0.0.24.0       i--
compress/xz                                       5.0.1-0.175.1.0.0.24.0     i--
...
x11/xkill                                         1.0.3-0.175.1.0.0.24.1317  i--
x11/xlock                                         0.5.11-0.175.1.0.0.24.1317 i--
x11/xmag                                          1.0.4-0.175.1.0.0.24.1317  i--
x11/xvidtune                                      1.0.2-0.175.1.0.0.24.1317  i--

Listing 6. Determining What Packages Are Installed

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

larry@solaris:~$ pkg search -p wireshark
PACKAGE                                                           PUBLISHER
pkg:/diagnostic/wireshark/wireshark-common@1.8.2-0.175.1.0.0.24.0 solaris
pkg:/diagnostic/wireshark@1.8.2-0.175.1.0.0.24.0                  solaris

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

larry@solaris:~$ pkg info -r wireshark
          Name: diagnostic/wireshark
       Summary: Graphical network protocol analyzer
      Category: Applications/Internet
         State: Not installed
     Publisher: solaris
       Version: 1.8.2
 Build Release: 5.11
        Branch: 0.175.1.0.0.24.0
Packaging Date: September  4, 2012 05:18:59 PM
          Size: 3.33 MB
          FMRI: pkg://solaris/diagnostic/wireshark@1.8.2,5.11-0.175.1.0.0.24.0:20120904T171859Z

Listing 7. Getting More Information for a Package

To see the contents of the wireshark package, use the pkg contents command, as shown in Listing 8. This command is very useful when you're trying to figure out where a package installed its contents.

larry@solaris:~$ pkg contents -r wireshark
PATH
etc
etc/security
etc/security/exec_attr.d
etc/security/exec_attr.d/diagnostic:wireshark
usr
usr/sbin
usr/sbin/wireshark
usr/share
usr/share/applications
usr/share/applications/wireshark.desktop
usr/share/man
usr/share/man/man1
usr/share/man/man1/wireshark.1
usr/share/pixmaps
usr/share/pixmaps/wireshark.png

Listing 8. Listing the Contents of a Package

To see any dependencies that a package might have, you need a slightly more complicated query, shown in Listing 9.

larry@solaris:~$ pkg contents -r -o fmri -t depend wireshark
FMRI
pkg:/diagnostic/wireshark/wireshark-common@1.8.2-0.175.1.0.0.24.0
pkg:/library/desktop/cairo@1.8.10-0.175.0.0.0.0.0
pkg:/library/desktop/gtk2@2.20.1-0.175.1.0.0.19.0
pkg:/library/desktop/pango@1.28.3-0.175.0.0.0.0.0
pkg:/library/glib2@2.28.6-0.175.1.0.0.19.0
pkg:/library/zlib@1.2.3-0.175.1.0.0.23.0
pkg:/system/library/libpcap@1.1.1-0.175.1.0.0.23.0
pkg:/system/library/math@0.5.11-0.175.1.0.0.19.0
pkg:/system/library@0.5.11-0.175.1.0.0.23.0
pkg:/x11/library/libx11@1.5.0-0.175.1.0.0.23.1314
pkg:/x11/library/libxcursor@1.1.13-0.175.1.0.0.23.1314

Listing 9. Determining Package Dependencies

In this case, we are outputting the package FMRI (Fault Management Resource Indicator), which is the formal way of describing a package of a specific version, and we are using the -t option to specify that we are looking for a package dependency of type depend.

This means that IPS will identify the packages on which wireshark depends and install them if they are not already installed.

Finally, when you are ready to install the package, use the pkg install command, as shown in Listing 10.

larry@solaris:~$ sudo pkg install wireshark
           Packages to install:  3
       Create boot environment: No
Create backup boot environment: No
            Services to change:  2

DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                3/3       294/294    17.5/17.5  228k/s

PHASE                                          ITEMS
Installing new actions                       389/389
Updating package state database                 Done
Updating image state                            Done
Creating fast lookup database                   Done

Listing 10. Installing a Package

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

Package Repositories

Oracle Solaris 11 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 you are in an environment where the network is restricted, or if you simply want improved performance by having software packages available locally. It is also possible to configure additional software repositories. Over time, it is expected that third-party software providers will create and publish to their own repositories in addition to the main Oracle Solaris repository.

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

One-Click Install

You might have noticed the Install link when you were browsing the repositories. Figure 12 shows the Package Catalog, which is a list of all packages that are available for Oracle Solaris 11.

Figure 12

Figure 12. Oracle Solaris Repository View through a Web Browser

Clicking the Install link launches the Package Manager and starts the installation. If the repository hasn't been configured on the system, the necessary configuration is added before the packages are installed. This is a nice feature, because anyone can promote a package. For example, here's a link to install wireshark. (Note: Unless you're reading this from an Oracle Solaris system, your Web browser will not know what do to with this link).

Boot Environments

A boot environment (BE) is a clone of the files and file system that are critical to the operation of Oracle Solaris. After installation, there is only a single boot environment, but over time, new boot environments are created, either manually by you or automatically by the Package Manager.

A boot environment essentially allows you to roll back to an earlier snapshot of Oracle Solaris 11 in case something goes wrong in your current boot environment. A boot environment usually consists of the root data set, but it can optionally include other data sets. Some data sets are shared across multiple boot environments, for example, /export. Figure 13 shows the Manage Boot Environments dialog box from the Package Manager.

Figure 13

Figure 13. Manage Boot Environments Dialog Box

Before you do anything risky on your system, such as modifying a system configuration file, consider creating a new boot environment to protect yourself in case something goes wrong. You create a new boot environment using the beadm utility. Here's an example of creating a new boot environment called be-prior-to-changes.

larry@solaris:~$ sudo beadm create be-prior-to-changes

Remembering to use this simple command can be the difference between several hours of downtime trying to recover from your changes and a few seconds to quickly revert to an older boot environment. So it is recommended that administrators use boot environments as part of their best practices for administering an Oracle Solaris 11 system.

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.

Figure 14

Figure 14. Oracle Solaris Update Manager Notification Icon

Clicking the icon launches the Update Manager, which then creates a new boot environment and installs the updates, as shown in Figure 15. The updated system will be active on your next boot. If anything unexpected happens during a system update, you can safely revert to the older boot environment to recover the system.

Figure 15

Figure 15. Oracle Solaris Update Manager

Solaris Legacy Package Manager

For many years, the Oracle Solaris operating system has used the SVR4 packaging system, so named because it was part of the System V, Release 4 version of UNIX. Oracle Solaris 11 supports the installation of SVR4 packages and includes the commands needed to install and remove those packages. Some compatibility has been added to the system to allow any package dependencies declared in an SVR4 package to be satisfied.

You should be careful to heed any warnings printed to the console when installing SVR4 packages to ensure that the package contents don't conflict with existing files and directories installed using IPS. One nice way to avoid this issue is by taking advantage of Oracle Solaris 10 Zones, compatible virtual environments that allow for running legacy applications.

A Final Message

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

After you are up and running, you will surely come up with additional questions. An experienced Oracle Solaris community is ready to help. Come join us in the OTN Discussion Forum: Oracle Solaris 11 for SysAdmins. Generally, you will receive a response within hours. Also, take a look at some of the excellent Oracle Solaris 11 how-to guides, which cover some of the more common administrative tasks you will face when deploying applications on the operating system.

Enjoy your journey with Oracle Solaris 11!

See Also

Revision 1.1, 10/22/2011

facebook banner twitter banner