Thursday Nov 17, 2011

Critical Threads Optimization


One of the more common issues we've been seeing in the field is the growing difficulty in optimizing performance of multi-threaded applications. A good portion of this difficulty is due to the increasing complexity of modern processors that present various degrees of sharing relationships between hardware components. Take any current CMT processor and you'll find any number of CPUs sharing execution pipelines, floating point units, caches, etc. Consequently, applying the traditional recipe of one software thread for each CPU will have varying degrees of success, according to the layout of the underlying hardware.

On top of this increasing complexity we've also seen processors with features that aim at dynamically resourcing software threads according to their utilization. Intel's Turbo Boost allows processors to increase their operating frequency if there is enough thermal headroom available and the processor isn't fully utilized. More recently, the SPARC T4 processor introduced dynamic threading, allowing each core to dynamically allocate more resources to its active CPUs. Both cases are in essence recognizing that current processors will be running a wide mix of workloads, some will be designed for throughput, others for low latency. The hardware is providing mechanisms to dynamically resource threads according to their runtime behavior.

We're very aware of these challenges in Solaris, and have been working to provide the best out of box performance while providing mechanisms to further optimize applications when necessary. The Critical Threads Optimzation was introduced in Solaris 10 8/11 and Solaris 11 as one such mechanism that allows customers to both address issues caused by contention over shared hardware resources and explicitly take advantage of features such as T4's dynamic threading.

What it is

The basic idea is to allow performance critical threads to execute with more exclusive access to hardware resources. For example, when deploying an application that implements a producer/consumer model, it'll likely be advantageous to give the producer more exclusive access to the hardware instead of having it competing for resources with all the consumers. In the case of a T4 based system, we may want to have a producer running by itself on a single core and create one consumer for each of the remaining CPUs.

With the Critical Threads Optimization we're extending the semantics of scheduling priorities (which thread should run first) to include priority over shared resources (which thread should have more "space"). Now the scheduler will not only run higher priority threads first: it will also provide them with more exclusive access to hardware resources if they are available.

How does it work ?

Using the previous example in Solaris 11, all you'd have to do would be to place the producer in the Fixed Priority (FX) scheduling class at priority 60, or in the Real Time (RT) class at any priority and Solaris will try to give it more "hardware space". On both Solaris 10 8/11 and Solaris 11 this can be achieved through the existing priocntl(1,2) and priocntlset(2) interfaces. If your application already assigns these priorities to performance critical threads, there's no additional step you need to take.

One important aspect of this optimization is that it requires some level of idleness in the system, either as a result of sizing the application before hand or through periods of transient idleness during runtime. If the system is fully committed, the scheduler will put all the available CPUs to work.

Best practices

If you're an application developer, we encourage you to look into assigning the right priorities for the different threads in your application. Solaris provides different scheduling classes (Time Share, Interactive, Fair Share, Fixed Priority and Real Time) that offer different policies and behaviors. It is not always simple to figure out which set of threads are critical to the performance of a workload, and it may not always be feasible to take advantage of this optimization, but we believe that this can be correctly (and safely) done during development.

Overall, the out of box performance in Solaris should meet your workload's requirements. If you are looking into that extra bit of performance, then the Critical Threads Optimization may be what you're looking for.

Tuesday Oct 25, 2011

You're invited: November 9th, Oracle Solaris 11 Launch, New York City

We're throwing a party, and you're invited.

On November 9th, we're holding the Oracle Solaris 11 launch event at Gotham Hall on Broadway in New York City.  It should not only be a lot of fun, but we're bringing our engineers, our execs, and some cool software and hardware, so it's a chance to learn even more about what we've been doing, and get a jump on the latest release of the #1 enterprise OS.

Register now --- space is limited, and you don't want to miss this event.  It's been literally years in the making.

I'm a West Coast kind of guy, so I hadn't heard of Gotham Hall before. With a name like that, my mind naturally wandered to caped superheroes making their entrance by crashing through ornate skylights.

 Well, guess what?  There's an ornate skylight!

Not an approved entrance

"In the center of the unique gold-leaf honeycombed design sits a one-of-a-kind 3,000 square foot stained-glass skylight."
"The regal granite walls and delicate stained-glass skylight are softened and warmed by the glow of the gold-leaf dome providing an extraordinary experience that leaves you and your guests breathless."

So that sounds pretty awesome right there.  But I checked with our event planners, and they said the contract specifically forbids crashing through the ornate skylight.  (Apparently, they've been asked before.)

But if your mind is more focused on 21st century enterprise infrastructure architecture than historic architecture, this is still the place to go.  Come sit down and have lunch with the Oracle Solaris 11 team.

If you're not in the area, you can register for the webcast, too.  But you'll have to supply your own food.

Monday Aug 29, 2011

Running GNOME Terminal From a Zone

As I've mentioned before, I VPN into the Oracle Intranet from within a zone. Once I establish the VPN connection, I'm no longer able to SSH into the zone, which is a slight drag if I'd like to open a new terminal window. The solution is to launch a new GNOME terminal window from within the zone. However, this wasn't without some minor hurdles to clear, so I'm documenting the process for future reference.

I'm assuming your zone already has a user account and the X authority file utility installed so you can launch X applications. If not, follow Steps 2 and 3 from the entry Running Firefox From a Zone.

Of course, GNOME Terminal needs to be installed:

bleonard@myzone:~$ sudo pkg install gnome-terminal
               Packages to install:     1
           Create boot environment:    No
               Services to restart:     2
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1       80/80      2.1/2.1

PHASE                                        ACTIONS
Install Phase                                160/160 

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

At this point, you'd like to think you could just launch gnome-terminal, but alas:

bleonard@myzone:~$ gnome-terminal
ERROR:terminal-app.c:1450:terminal_app_init: assertion failed: (app->default_profile_id != NULL)
Abort (core dumped)

It turns out you also need to install the SMF services responsible for updating the GNOME desktop caches (I've already filed an issue for this):

bleonard@myzone:~$ sudo pkg install desktop-cache
               Packages to install:     8
           Create boot environment:    No
               Services to restart:     5
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  8/8   3125/3125    13.5/13.5

PHASE                                        ACTIONS
Install Phase                              3566/3566 

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

After installing the package, wait a few seconds while the cache is built. You can verify it's complete when the GNOME Gconf Cache Builder service state changes to online:

bleonard@myzone:~$ svcs -l gconf-cache
fmri         svc:/application/desktop-cache/gconf-cache:default
name         GNOME Gconf Cache Builder
enabled      true
state        online
next_state   none
state_time   August 29, 2011 04:50:45 PM EDT
logfile      /var/svc/log/application-desktop-cache-gconf-cache:default.log
restarter    svc:/system/svc/restarter:default
dependency   require_all/none svc:/system/filesystem/local (online)

After which, gnome-terminal should start successfully:

bleonard@myzone:~$ gnome-terminal &

If for some reason you still run into a problem, try refreshing the GNOME Gconf Cache Service:

bleonard@myzone:~$ sudo svcadm refresh gconf-cache

Friday Aug 19, 2011

Replacing the system HDD by a larger one on Solaris 11 X86

A feedback on replacing the internal disk drive on a Solaris 11 Express labtop by a larger one, using ZFS mirrorring and ZFS split.
[Read More]

Thursday Jul 28, 2011

Installing WebLogic in a Zone

Sadly, the download page for WebLogic 10.3.5 doesn't yet include an installer for Solaris on x86. So, here for you, I outline the steps I took to successfully install WebLogic on Solaris - in a zone, of course.

Step 1: Create the Zone

The Web Logic installer requires 1.2 GB of swap space. Follow these steps to ensure you have enough.

Create a VNIC for the zone:
bleonard@solaris:~$ sudo dladm create-vnic -l e1000g0 wls_zone0

Create the zone:

bleonard@solaris:~$ sudo zonecfg -z wls_zone
wls_zone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:wls_zone> create
zonecfg:wls_zone> set zonepath=/zones/wls_zone
zonecfg:wls_zone> set ip-type=exclusive
zonecfg:wls_zone> add net
zonecfg:wls_zone:net> set physical=wls_zone0
zonecfg:wls_zone:net> end
zonecfg:wls_zone> verify
zonecfg:wls_zone> exit 

Install the zone:

bleonard@solaris:~$ sudo zoneadm -z wls_zone install

Here's the sysidcfg file I used for the zone:

bleonard@solaris:~$ sudo cat /zones/wls_zone/root/etc/sysidcfg
network_interface=PRIMARY {

Boot and configure the zone:

bleonard@solaris:~$ sudo zoneadm -z wls_zone boot
bleonard@solaris:~$ sudo zlogin -C wls_zone
[Connected to zone 'wls_zone' console]
Hostname: wls_zone
Loading smf(5) service descriptions: 3/3
Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
Configuring network interface addresses:.

wls_zone console login: root
Password: abc123 

Configure DNS name resolution:

bleonard@solaris:~$ sudo cp /etc/nsswitch.conf /zones/wls_zone/root/etc/.
bleonard@solaris:~$ sudo cp /etc/resolv.conf /zones/wls_zone/root/etc/.

Step 2: Install the Supporting Software

The JDK:

root@wls_zone:~# pkg install jdk
               Packages to install:     3
           Create boot environment:    No
               Services to restart:     1
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  3/3   1252/1252    71.7/71.7

PHASE                                        ACTIONS
Install Phase                              1633/1633 

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

Include 64-bit support:

root@wls_zone:~# pkg install jdk64
               Packages to install:     1
           Create boot environment:    No
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1       32/32      0.7/0.7

PHASE                                        ACTIONS
Install Phase                                  59/59

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

The X authority file utility. This will allow us to forward the display to the zone so we can run the graphical installer:

root@wls_zone:~# pkg install xauth
               Packages to install:     1
           Create boot environment:    No
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1         6/6      0.0/0.0

PHASE                                        ACTIONS
Install Phase                                  37/37 

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

Install the X Test and Record extensions client library. This library is also required to start the graphical installer:

root@wls_zone:~# pkg install libxtst
               Packages to install:     2
           Create boot environment:    No
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  2/2       96/96      0.2/0.2

PHASE                                        ACTIONS
Install Phase                                176/176 

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

Step 3:  Create a User Account

For this exercise I'm going to create a user 'weblogic'.

root@wls_zone:~# useradd -m -d /weblogic -s /usr/bin/bash weblogic
root@wls_zone:~# passwd weblogic 
New Password: weblogic
Re-enter new Password: weblogic 
passwd: password successfully changed for weblogic

Step 4: Download WebLogic and Copy to the Zone

Downloading the Oracle WebLogic Server 11gR1 (10.3.5) + Coherence Package Installer File 1 for Additional Platforms. You may also want to download the Supplemental ZIP distribution File 1 that contains sample applications.

Copy those files into the zone:

bleonard@solaris:~$ sudo cp Download/wls1035_generic.jar /zones/wls_zone/root/weblogic/.
bleonard@solaris:~$ sudo cp Download/ /zones/wls_zone/root/weblogic/.

Step 5: Start the Installer

SSH into the zone. Be sure to forward the X11 display:

bleonard@solaris:~$ ssh -X weblogic@
The authenticity of host ' (' can't be established.
RSA key fingerprint is c4:73:8b:ea:db:c5:1e:fd:76:35:61:26:92:8e:4e:4b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '' (RSA) to the list of known hosts.
Last login: Thu Jul 28 07:55:41 2011 from
Oracle Corporation      SunOS 5.11      snv_151a        June 2011

Here's the official documentation to Starting the Installation Program on UNIX Using .jar Installers. Note, I'm also adding the option -Dspace.detection=false, because I can't figure out how to get past this error:

I certainly have more then 1MB of space in my home directory. So basically:

weblogic@wls_zone:~$ java -d64 -Dspace.detection=false -jar wls1035_generic.jar 
Extracting 0%....................................................................................................100%

Working through the installer, I select most of the defaults except where noted:

Enter your My Oracle Support credentials if you have them. You're allowed to continue if you them them blank, as I did:

Select the Custom Install Type. I like to include the Server Examples, but this is optional.

Select Server Examples:

I recommend running Quickstart to create an initial domain. To run Quickstart later, you'll find it at Oracle/Middleware/wlserver_10.3/common/quickstart/

Step 6:  Start the Server

weblogic@wls_zone:~$ ./Oracle/Middleware/user_projects/domains/base_domain/ &


<Jul 28, 2011 8:54:10 AM PDT> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>

Step 7:  Browse to the Console

Tuesday Jul 19, 2011

Integrated Load Balancer

I'm not sure how well known it is that Solaris 11 contains a load balancer. The official documentation, starting with the Integrated Load Balancer Overview, does a great job of explaining this feature. In this blog entry my goal is to provide an implementation example.

For starters, I will be using the HALF-NAT operation mode. Basically, HALF-NAT means that the client's IP address is not mapped so that the servers know the real client address. This is usually preferred for server logging (see ILB Operation Modes for more). 

I will load balance traffic across 2 zones, each running the Apache Tomcat server. The load balancer itself will be configured as a multi-homed zone. The configuration will look as follows:

Step 1: Create the VNICs

The first step is to create VNICs for all of these interfaces:

bleonard@solaris:~$ sudo dladm create-vnic -l e1000g0 ilb0
bleonard@solaris:~$ sudo dladm create-vnic -l e1000g0 ilb1
bleonard@solaris:~$ sudo dladm create-vnic -l e1000g0 server1
bleonard@solaris:~$ sudo dladm create-vnic -l e1000g0 server2

Step 2: Create the Zones:

If you don't already have a file system for your zones:

bleonard@solaris:~$ sudo zfs create -o mountpoint=/zones rpool/zones

Then create the ILB zones:

bleonard@solaris:~$ sudo zonecfg -z ilb-zone
ilb-zone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:ilb-zone> create
zonecfg:ilb-zone> set zonepath=/zones/ilb-zone
zonecfg:ilb-zone> set ip-type=exclusive
zonecfg:ilb-zone> add net
zonecfg:ilb-zone:net> set physical=ilb0
zonecfg:ilb-zone:net> end
zonecfg:ilb-zone> add net
zonecfg:ilb-zone:net> set physical=ilb1
zonecfg:ilb-zone:net> end
zonecfg:ilb-zone> verify
zonecfg:ilb-zone> exit 

And the server zones (repeat this step for server 2 - changing values where appropriate):

bleonard@solaris:~$ sudo zonecfg -z server1-zone
server1-zone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:server1-zone> create
zonecfg:server1-zone> set zonepath=/zones/server1-zone
zonecfg:server1-zone> set ip-type=exclusive
zonecfg:server1-zone> add net
zonecfg:server1-zone:net> set physical=server1
zonecfg:server1-zone:net> end
zonecfg:server1-zone> verify
zonecfg:server1-zone> exit

Step 3: Install the ILB Zone

Then install the ilb-zone (wait to install the server zones as we will just clone this zone):

bleonard@solaris:~$ sudo zoneadm -z ilb-zone install
A ZFS file system has been created for this zone.
   Publisher: Using solaris ( ).
       Image: Preparing at /zones/ilb-zone/root.
       Cache: Using /var/pkg/download.
Sanity Check: Looking for 'entire' incorporation.
  Installing: Core System (output follows)
Package: pkg://solaris/consolidation/osnet/osnet-incorporation@0.5.11,5.11-
License: usr/src/pkg/license_files/lic_OTN

Oracle Technology Network Developer License Agreement


               Packages to install:     1
           Create boot environment:    No
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1         1/1      0.0/0.0

PHASE                                        ACTIONS
Install Phase                                  11/11

PHASE                                          ITEMS
Package State Update Phase                       1/1 
Image State Update Phase                         2/2 
               Packages to install:    45
           Create boot environment:    No
               Services to restart:     3
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                45/45 12511/12511    89.1/89.1

PHASE                                        ACTIONS
Install Phase                            17953/17953 

PHASE                                          ITEMS
Package State Update Phase                     45/45 
Image State Update Phase                         2/2 
  Installing: Additional Packages (output follows)
               Packages to install:    46
           Create boot environment:    No
               Services to restart:     2
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                46/46   4498/4498    26.5/26.5

PHASE                                        ACTIONS
Install Phase                              6139/6139 

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

        Note: Man pages can be obtained by installing SUNWman
 Postinstall: Copying SMF seed repository ... done.
 Postinstall: Applying workarounds.
        Done: Installation completed in 499.617 seconds.

  Next Steps: Boot the zone, then log into the zone console (zlogin -C)
              to complete the configuration process.

I will be using the following sysidcfg file to automate the zone's system configuration. Adjust your values accordingly. The root password is "abc123":

bleonard@solaris:~$ sudo cat /zones/ilb-zone/root/etc/sysidcfg 
network_interface=ilb0 {
network_interface=ilb1 {

Boot and log into the zone:

bleonard@solaris:~$ sudo zoneadm -z ilb-zone boot
bleonard@solaris:~$ sudo zlogin -C ilb-zone
[Connected to zone 'ilb-zone' console]
Hostname: ilb-zone
Loading smf(5) service descriptions: 3/3
 network_interface=ilb0 {
ilb0 is not a valid network interface  line 3 position 19
Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
Configuring network interface addresses: ilb0 ilb1.

ilb-ext console login: root
Password: abc123
Jul  1 10:54:37 ilb-ext login: ROOT LOGIN /dev/console
Oracle Corporation      SunOS 5.11      snv_151a        November 2010

Since our ilb-zone has 2 network interfaces, we also want to make sure a packet arriving on one network interface and addressed to a host on a different network is forwarded to the appropriate interface.

 root@ilb-ext:~# svcadm enable ipv4-forwarding

Step 4: Install the Serve 1 Zone

We'll create the first server zone as a clone of the ilb-zone. We'll then configure the server 1 zone and clone it to server 2.

Shut down ilb-zone so that it can be cloned:

bleonard@solaris:~$ sudo zoneadm -z ilb-zone halt

Then clone ilb-zone:

bleonard@solaris:~$ sudo zoneadm -z server1-zone clone ilb-zone

Here's a sysidcfg file to use with server1-zone:

bleonard@solaris:~$ sudo cat /zones/server1-zone/root/etc/sysidcfg
network_interface=PRIMARY {

Then boot and log in to server1-zone:

bleonard@solaris:~$ sudo zoneadm -z server1-zone boot
bleonard@solaris:~$ sudo zlogin -C server1-zone
[Connected to zone 'server1-zone' console]
Hostname: server1-zone
Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
Configuring network interface addresses: server1.

server1-zone console login: root
Password: abc123
Jul  1 14:53:20 server1-zone login: ROOT LOGIN /dev/console
Last login: Fri Jul  1 13:54:37 on console
Oracle Corporation      SunOS 5.11      snv_151a        November 2010

Also boot back up the ilb zone:

bleonard@solaris:~$ sudo zoneadm -z ilb-zone boot

Step 5: Configure Internet Access

Test if you can ping the outside world from within the ilb zone:

root@ilb-ext:~# ping
ping: unknown host

Open another terminal window. The new terminal window should have you in the global zone. Copy the /etc/resolve.conf and /etc/[nsswitch.conf files from the global zone to ilb-zone and server1-zone:

bleonard@solaris:~$ sudo cp /etc/resolv.conf /zones/ilb-zone/root/etc/.
bleonard@solaris:~$ sudo cp /etc/nsswitch.conf /zones/ilb-zone/root/etc/.
bleonard@solaris:~$ sudo cp /etc/resolv.conf /zones/server1-zone/root/etc/.
bleonard@solaris:~$ sudo cp /etc/nsswitch.conf /zones/server1-zone/root/etc/. 

Return to the ilb-zone. You should not be able to reach the outside world:

root@ilb-ext:~# ping is alive 

However, server1-zone needs some routing set up before it can reach out as it will route its traffic through the ilb-zone:

root@server1-zone:~# route -p add  default
add net default: gateway
add persistent net default: gateway

root@server1-zone:~# ping is alive 

Step 6: Install Tomcat

Apache Tomcat will be the service we load balance to:

root@server1-zone:~# pkg install tomcat tomcat-examples runtime/java
               Packages to install:     3
           Create boot environment:    No
               Services to restart:     2
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  3/3   1166/1166    38.9/38.9

PHASE                                        ACTIONS
Install Phase                              1504/1504 

PHASE                                          ITEMS
Package State Update Phase                       3/3 
Image State Update Phase                         2/2 
Loading smf(5) service descriptions: 1/1

root@server1-zone:~# svcadm enable http:tomcat6

Step 7: Configure Routing to the Server Zone

From the global zone we need to be able to reach the server. Add the following route (the -p option makes the changes persistent across network restarts):

bleonard@solaris:~$ sudo route -p add
add net gateway
add persistent net gateway
And now you should be able to reach Tomcat from the global zone (or any client on that subnet):

Step 8: Cloning the Tomcat Server Zone

Now that we have the Tomcat server running in a zone, we can quickly create another instance. First, we need to shut down the server1-zone:

bleonard@solaris:~$ sudo zoneadm -z server1-zone halt

Then clone it:

bleonard@solaris:~$ sudo zoneadm -z server2-zone clone server1-zone

Copy the sysidcfg file you created for server 1 to server 2:

bleonard@solaris:~$ sudo cp /zones/server1-zone/root/etc/sysidcfg /zones/server2-zone/root/etc/sysidcfg

Then change the hostname and ip_address. This time around we'll also set the default router. Once editing is complete, the file should look as follows:

bleonard@solaris:~$ sudo cat /zones/server2-zone/root/etc/sysidcfg
network_interface=PRIMARY {

Then boot and log into the server 2 zone:

bleonard@solaris:~$ sudo zoneadm -z server2-zone boot
bleonard@solaris:~$ sudo zlogin -C server2-zone
[Connected to zone 'server2-zone' console]
Hostname: server2-zone
Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
Configuring network interface addresses: server2.

server2-zone console login: root
Password: abc123
Jul  6 10:39:54 server2-zone login: ROOT LOGIN /dev/console
Last login: Fri Jul  1 16:19:45 on console
Oracle Corporation      SunOS 5.11      snv_151a        November 2010

Not only does this 2nd zone install much, much quicker, but Tomcat is already up and running:

It really gives you a feel for how easy it can be to scale using Solaris in a cloud type environment.

Don't forget to boot server1-zone:

bleonard@solaris:~$ sudo zoneadm -z server1-zone boot

Step 9: Configure Load Balancing

OK, that was a lot of setup just to get to the point of this blog. But now that we have 2 servers running at 2 IP address, let's set up a load balancer to scale traffic between them.

In the ILB zone, install the ILB:

root@ilb-ext:~# pkg install ilb
               Packages to install:     1
           Create boot environment:    No
               Services to restart:     1
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1       11/11      0.2/0.2

PHASE                                        ACTIONS
Install Phase                                  38/38 

PHASE                                          ITEMS
Package State Update Phase                       1/1 
Image State Update Phase                         2/2 
Loading smf(5) service descriptions: 1/1

Then enable the ILB service:

root@ilb-ext:~# svcadm enable ilb

Then define a server group:

root@ilb-ext:~# ilbadm create-servergroup -s servers=, tomcatgroup
root@ilb-ext:~# ilbadm show-servergroup 
tomcatgroup    _tomcatgroup.0      8080    8080
tomcatgroup    _tomcatgroup.1      8080    8080

Then define a load balancing rule. This is the most complicated part of the process. For starters, I'll try to keep the rule as simple as possible. The rule is enabled (-e), will persist (-p), incoming packets (-i) are matched against destination virtual IP address (vip) and port The packet is handled (-m) using round robin (rr). The destination for the packets (-o) is server group tomcatgroup. The rule is called tomcatrule_rr.

root@ilb-ext:~# ilbadm create-rule -e -p -i vip=,port=80 -m lbalg=rr,type=HALF-NAT -o servergroup=tomcatgroup tomcatrule_rr

You can view the rule as follows:

root@ilb-ext:~# ilbadm show-rule
tomcatrule_rr       E      roundrobin  HALF-NAT TCP       80
root@ilb-ext:~# ilbadm show-rule -f
       RULENAME: tomcatrule_rr
         STATUS: E
           PORT: 80
          LBALG: roundrobin
           TYPE: HALF-NAT
      PROXY-SRC: --
          PMASK: /32
        HC-NAME: --
        HC-PORT: --
     CONN-DRAIN: 0
    NAT-TIMEOUT: 120
    SERVERGROUP: tomcatgroup
        SERVERS: _tomcatgroup.0,_tomcatgroup.1

Finally, we need to tell the outside world that packets destined for our VIP,, should be sent to ilb0. First, find the MAC address of ilb0:

root@ilb-ext:~# dladm show-vnic ilb0
LINK         OVER         SPEED  MACADDRESS        MACADDRTYPE         VID
ilb0         ?            1000   2:8:20:bf:2a:d9   random              0

Then resolve the address to interface ilb0 using arp:

root@ilb-ext:~# arp -s 2:8:20:bf:2a:d9 pub permanent

You should then be able to ping the VIP:

root@ilb-ext:~# ping is alive

Step 10: Load Balance!

You can now point your browser to the virtual IP address and get a result back from one of the Tomcat servers:

Very cool! But from which server was I served? I modified the example snoop.jsp to return the server's hostname and IP Address. Save the snoop.jsp to the /var/tomcat6/webapps/examples/jsp/snp directory in each of your zones.

bleonard@solaris:~$ sudo cp Downloads/snoop.jsp /zones/server1-zone/root/var/tomcat6/webapps/examples/jsp/snp/.
bleonard@solaris:~$ sudo cp Downloads/snoop.jsp /zones/server2-zone/root/var/tomcat6/webapps/examples/jsp/snp/.

I've appended the Server Side IP Address section to the bottom of the page,

Step 11: Health Checks

To keep things simple on the first go-around, I avoided health checks. However, it's pointless to have a load balancer that continues to feed requests to a dead server.

Health check options include ping probes, TCP probes, UDP probes and a user-defined script. Since I'm concerned about the health of Tomcat, I've created a simple script:

root@ilb-ext:~# cat /var/hc-tomcat 
result=`curl -s http://$2:8080`
if [ ${result:0:5} = "<meta" ]; then
        echo 0
        echo -1 

The load balancer provides the following variables to use with your script, of which I'm only using $2:

$1 - VIP (literal IPv4 or IPv6 address)
$2 - Server IP (literal IPv4 or IPv6 address)
$3 - Protocol (UDP, TCP as a string)
$4 - Numeric port range (the user-specified value for hc-port)
$5 - maximum time (in seconds) that the test should wait before returning a failure. If the test runs beyond the specified time, it might be stopped, and the test would be considered failed. This value is user-defined and specified in hc-timeout.

Ensure the script has execute permissions (the ilbd deamon, which runs the health check, is not run as root):

root@ilb-ext:~# chmod +x /var/hc-tomcat

Giving the script a quick test:

root@ilb-ext:~# /var/hc-tomcat n/a

You then create a health check rule as follows:

root@ilb-ext:~# ilbadm create-healthcheck -h hc-test=/var/hc-tomcat,hc-timeout=2,hc-count=1,hc-interval=10 hc-tomcat

The hc-timeout is how many seconds the health check will wait for a response before giving up. The hc-count is how many times the script will attempt to succeed before claiming the server to be dead. The hc-interval is how often the health-check is performed.

Once created you can view the configured health-checks as follows:

root@ilb-ext:~# ilbadm show-hc
hc-tomcat     2       1       10       Y        /var/hc-script

Now that we have a health check, we need to add it to our load balancing rule. Unfortunately, ilbadm doesn't have a command to modify an existing load balancing rule, so we have to delete it and create it again:

root@ilb-ext:~# ilbadm delete-rule tomcatrule_rr

We'll create the same rule as before, this time including the health check:

root@ilb-ext:~# ilbadm create-rule -e -p -i vip=,port=80 -m lbalg=rr,type=HALF-NAT -h hc-name=hc-tomcat -o servergroup=tomcatgroup tomcatrule_rr

Once the new rule is created, the health check goes into effect. You can see the status as follows:

root@ilb-ext:~# ilbadm show-hc-result
tomcatrule_rr hc-tomcat     _tomcatgroup.0 alive   0    10:39:51 10:40:02 2509
tomcatrule_rr hc-tomcat     _tomcatgroup.1 alive   0    10:39:57 10:40:09 1869

So now, if probe.jsp is showing that you're hitting server 2 and we then disable Tomcat on Server 1:

root@server1-zone:~# svcadm disable tomcat6

When you refresh your browser you will be directed to Server 2. Of course, any state they you may have been maintaining on Server 1 will be lost. You can also see the status as dead using ilbadm show-hc-result:

root@ilb-ext:~# ilbadm show-hc-result
tomcatrule_rr hc-tomcat     _tomcatgroup.0 dead    4    10:43:36 10:43:45 1102
tomcatrule_rr hc-tomcat     _tomcatgroup.1 alive   0    10:43:42 10:43:53 5919

See Administering Health Checks in ILB for the official documentation.

That was a fair amount of work to configure this environment. Would it be worth providing a VM pre-configured with load balancing for download?

Wednesday Jul 06, 2011

Recommended Reading

If you're a user of Solaris, there's probably a handful of Solaris blogs that you follow. There's one group of guys that I want to bring your attention to - the Solaris sales consultants and architects. While I sit in my lush corporate office, these guys are out in the field dealing with customers on a daily basis. Their experience is valuable, and lucky for us, most of them take the time to share what they know. They are:

Bob Netherton
Jeff Savit
Jeff Victor
Jim Laurent
Scott Dickson
Steffen Weiberle

Add these guys to your favorite reader now (just click the  icon) - you'll be a better Solaris user for it.

Monday Jul 04, 2011

Making yourself indispensible with DTrace

DTrace technology and tools appeared in 2005, and despite this, it is still not very well known among majority of developers and system administrators. It is especially surprising given that for five and a half years since the release of Solaris 10, where DTrace was first implemented, there was no better technology made for analyzing of operating systems and applications.[Read More]

Thursday Jun 23, 2011

Giving a Zone "More Power"

In addition to the traditional virtualization benefits that Solaris zones offer, applications running in zones are also running in a more secure environment. One way to quantify this is compare the privileges available to the global zone with those of a local zone.

For example, there a 82 distinct privileges available to the global zone:

bleonard@solaris:~$ ppriv -l | wc -l 

You can view the descriptions for each of those privileges as follows:

bleonard@solaris:~$ ppriv -lv
	Allows a process to request critical events without limitation.
	Allows a process to request reliable delivery of all events on
	any event queue.
	Allows a process to set the service FMRI value of a process
	contract template.

Or for just one or more privileges:

bleonard@solaris:~$ ppriv -lv file_dac_read file_dac_write
	Allows a process to read a file or directory whose permission
	bits or ACL do not allow the process read permission.
	Allows a process to write a file or directory whose permission
	bits or ACL do not allow the process write permission.
	In order to write files owned by uid 0 in the absence of an
	effective uid of 0 ALL privileges are required.

However, in a non-global zone, only 43 of the 83 privileges are available by default:

root@myzone:~# ppriv -l zone | wc -l      

The missing privileges are:


However, just like Tim Taylor, it is possible to give your zones more power. For example, a zone by default doesn't have the privileges to support DTrace:

root@myzone:~# dtrace -l
   ID   PROVIDER            MODULE                          FUNCTION NAME

The DTrace privileges can be added, however, as follows:

bleonard@solaris:~$ sudo zonecfg -z myzone
zonecfg:myzone> set limitpriv="default,dtrace_proc,dtrace_user"
zonecfg:myzone> verify
zonecfg:myzone> exit
bleonard@solaris:~$ sudo zoneadm -z myzone reboot

Now I can run DTrace from within the zone:

root@myzone:~# dtrace -l | more
   ID   PROVIDER            MODULE                          FUNCTION NAME
    1     dtrace                                                     BEGIN
    2     dtrace                                                     END
    3     dtrace                                                     ERROR
 7115    syscall                                               nosys entry
 7116    syscall                                               nosys return

Note, certain privileges are never allowed to be assigned to a zone. You'll be notified on boot if you attempt to assign a prohibited privilege to a zone:

bleonard@solaris:~$ sudo zoneadm -z myzone reboot
privilege "dtrace_kernel" is not permitted within the zone's privilege set
zoneadm: zone myzone failed to verify

Here's a nice listing of all the privileges and their zone status (default, optional, prohibited): Privileges in a Non-Global Zone.

Thursday Jun 09, 2011

Running Java Web Start From a Zone

As indicated in my previous entry, I run my VPN software within a zone to connect to the Oracle intranet. Another component I need to access is the Solaris bug tracking system, which is launched via Java Web Start. To my disappointment, this also required a bit of troubleshooting. As my example here, I'll use one of my favorite Java Web Start applications, JDiskReport.

Assuming you left off with getting Firefox running from a zone, if you attempted to Web Start JDiskReport, the first problem is that Java Web Start isn't even installed on the system:

This is easy enough to fix:

root@myzone:~# pkg install java
               Packages to install:     5
           Create boot environment:    No
               Services to restart:     1
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  5/5     779/779    34.4/34.4

PHASE                                        ACTIONS
Install Phase                              1179/1179 

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

With Java installed, Firefox properly detects Java Web Start:

However, when you try to launch JDiskReport now, nothing happens at all. This is the most frustrating kind of error.

If you select the option to save the jdiskreport.jnlp file to your home directory and try to launch it from there, you'll see we're dumping core again:

bleonard@myzone:~$ javaws jdiskreport.jnlp 
Segmentation Fault (core dumped)

Unlike with Firefox however, we're not given anything else to work with. Using truss and digging into the stack trace, I was able to determine we also need the packages utf-8 and libxtst:

root@myzone:~# pkg install utf-8 libxtst
               Packages to install:     1
           Create boot environment:    No
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1   2674/2674    10.4/10.4

PHASE                                        ACTIONS
Install Phase                              2722/2722 

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

Once these 2 packages are installed, you're in business with Java Web Start:

It's worth noting what a small footprint my zone has - less than 1 GB. Pretty cool, huh? Even more impressive is that it's actually only consuming 400 MB of space in my global zone because it's on a zfs dataset with compression turned on:

bleonard@solaris:~/Desktop$ zfs get all rpool/zones/myzone
NAME                PROPERTY                        VALUE                           SOURCE
rpool/zones/myzone  type                            filesystem                      -
rpool/zones/myzone  creation                        Wed Jun  8 11:31 2011           -
rpool/zones/myzone  used                            388M                           -
rpool/zones/myzone  available                       14.7G                           -
rpool/zones/myzone  referenced                      33K                             -
rpool/zones/myzone  compressratio                   1.89x  
...                         -

And while we're on the subject of resource consumption, look at zonestat:

bleonard@solaris:~$ zonestat 5 1
Collecting data for first interval...
Interval: 1, Duration: 0:00:05
SUMMARY                    Cpus/Online: 1/1   Physical: 1535M    Virtual: 2512M
                    ----------CPU---------- ----PHYSICAL----- -----VIRTUAL-----
               ZONE  USED %PART  %CAP %SHRU  USED   PCT  %CAP  USED   PCT  %CAP
            [total]  0.31 31.8%     -     - 1141M 74.3%     - 1369M 54.5%     -
           [system]  0.12 12.7%     -     -  302M 19.6%     -  643M 25.6%     -
             global  0.15 15.5%     -     -  604M 39.3%     -  529M 21.0%     -
             myzone  0.03 3.57%     -     -  234M 15.2%     -  196M 7.81%     -

Only 234M of RAM. Like I said in the previous post, you can't achieve numbers like that with a VirtualBox VM.

Wednesday Jun 08, 2011

Running Firefox From a Zone

I know a lot of folks that VPN into their office environment. However, VPN connections generally reduce your bandwidth and in many cases restrict your connections to local network services (such as printers).

A common workaround that some folks use is to setup their VPN environment in a VirtualBox image, freeing their host OS from the shackles of VPN. However, the VirtualBox approach has its own limitations, as you're now dedicating a significant amount of system resources to running another operating system just to get VPN access. I also use VirtualBox on a daily basis so dedicating a VM for VPN is not really an option.

This is where zones and network virtualization really shine. I've created an exclusive IP zone and installed my VPN software - no problem. The trickier part was actually getting Firefox up and running from the zone so I could browse the Oracle intranet. For future reference, I'm documenting those steps here.

Step 1: Install Firefox

The obvious...

root@myzone:~# pkg install firefox
               Packages to install:    46
           Create boot environment:    No
               Services to restart:     8
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                46/46   8916/8916    62.3/62.3

PHASE                                        ACTIONS
Install Phase                            11116/11116 

PHASE                                          ITEMS
Package State Update Phase                     46/46 
Image State Update Phase                         2/2 
Loading smf(5) service descriptions: 1/1

Step 2: Create a User Account

To share the display with the global zone, we're going to ssh into the zone. By default, root is not allowed to ssh into a zone. If you don't already have a user account in the zone, create one now:

root@myzone:~# useradd -m -d /bleonard -s /usr/bin/bash bleonard
80 blocks

root@myzone:~# passwd bleonard
New Password: 
Re-enter new Password: 
passwd: password successfully changed for bleonard

Step 3: Install the X authority file utility

If you ssh into the zone and attempt to start Firefox, you'll get a "no display specified" error:

bleonard@solaris:~$ ssh -X bleonard@
The authenticity of host ' (' can't be established.
RSA key fingerprint is b3:1b:be:55:69:95:51:5d:b8:23:c7:9c:57:73:1a:98.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '' (RSA) to the list of known hosts.
Last login: Wed Jun  8 12:17:28 2011 from
Oracle Corporation      SunOS 5.11      snv_151a        November 2010

bleonard@myzone:~$ firefox 
Error: no display specified

The X authority file utility manages the display authorization when using the -X option to ssh into a zone:

root@myzone:~# pkg install xauth
               Packages to install:     1
           Create boot environment:    No
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1         6/6      0.0/0.0

PHASE                                        ACTIONS
Install Phase                                  37/37

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

You then have to exit and re-ssh into the zone. Then try starting Firefox again. This is where things get interesting. If you already have Firefox running in the global zone, Firefox on a remote machine (à la, the zone) will hand off to a process already running on your local box if it is available. For our purposes, this is not what we want as we need a unique instance of Firefox running form the zone. The solution is to use the -no-remote option. However, with this approach we're kindly greeted with a core dump:

bleonard@myzone:~$ firefox -no-remote
GLib: Cannot convert message: Conversion from character set 'UTF-8' to 'ASCII' is not supported
Gtk-Message: Failed to load module "canberra-gtk-module": firefox-bin: fatal: open failed: No such file or directory
process 2976: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
  D-Bus not built with -rdynamic so unable to print a backtrace
/usr/lib/firefox/ line 131:  2976 Abort                   (core dumped) "$prog" ${1+"$@"}

We've got several issues to deal with here, and we'll take them 1 at a time.

Step 4: Deal with the Error Messages

Install a Locale

One of the messages we see in the above output is:

bleonard@myzone:~$ GLib: Cannot convert message: Conversion from character set 'UTF-8' to 'ASCII' is not supported

If we look at the default locale on the system, it's "C":

bleonard@myzone:~$ locale

Let's install something more appropriate that supports UTF-8, in my case en_us:

root@myzone:~# pkg install en_us
               Packages to install:     2
           Create boot environment:    No
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  2/2       16/16      2.0/2.0

PHASE                                        ACTIONS
Install Phase                                  82/82 

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

And then set that locale:

bleonard@myzone:~$ export LANG=en_US.UTF-8

bleonard@myzone:~$ locale

Install the Event Sound API

Another message we see in the above:

Gtk-Message: Failed to load module "canberra-gtk-module": firefox-bin: fatal: open failed: No such file or directory

The missing is found in the libcanberra package:

root@myzone:~# pkg install libcanberra    
               Packages to install:    14
           Create boot environment:    No
               Services to restart:     2
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                14/14   2024/2024    18.9/18.9

PHASE                                        ACTIONS
Install Phase                              2773/2773 

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

Install the D-Bus Message Bus System

And the final message we see in the output above:

process 3730: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
  D-Bus not built with -rdynamic so unable to print a backtrace

So let's install D-Bus:

root@myzone:~# pkg install dbus
               Packages to install:     1
           Create boot environment:    No
               Services to restart:     2
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1       31/31      0.4/0.4

PHASE                                        ACTIONS
Install Phase                                  77/77 

PHASE                                          ITEMS
Package State Update Phase                       1/1 
Image State Update Phase                         2/2 
Loading smf(5) service descriptions: 1/1

And try starting Firefox again:

bleonard@myzone:~$ firefox -no-remote

(firefox-bin:3393): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'
/usr/lib/firefox/ line 131:  3393 Segmentation Fault      (core dumped) "$prog" ${1+"$@"}

Now we've got a new issue to deal with, fonts.

Step 5: Install Fonts

root@myzone:~# pkg install fonts-core
               Packages to install:     1
           Create boot environment:    No
               Services to restart:     1
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1       84/84      9.5/9.5

PHASE                                        ACTIONS
Install Phase                                108/108 

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

And we're finally greeted with Firefox:

A couple of points to note here. Notice the header which indicates from which host Firefox is running (on myzone). This is very nice as mine says (on vpn).

You'll also notice we're missing the Nimbus look & feel. This can be quickly addressed by installing the nimbus package:

root@myzone:~# pkg install nimbus
               Packages to install:     1
           Create boot environment:    No
               Services to restart:     1
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1   1352/1352      3.5/3.5

PHASE                                        ACTIONS
Install Phase                              3126/3126 

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

And finally, the Oracle Solaris welcome page is missing. If you care about this, just install the os-welcome package:

root@myzone:~# pkg install os-welcome
               Packages to install:     1
           Create boot environment:    No
               Services to restart:     1
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1       69/69      0.1/0.1

PHASE                                        ACTIONS
Install Phase                                166/166 

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

All set and done we look as follows:

Step 6: Optional Niceties


One suggestion (from the comments below), install Flash:

root@myzone:~# pkg install firefox-flashplayer
               Packages to install:     1
           Create boot environment:    No
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1         2/2      4.7/4.7

PHASE                                        ACTIONS
Install Phase                                  30/30 

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


Installing a dictionary will give Firefox spell checking capabilities. Pick the one appropriate for your language:
root@myzone:~# pkg install dictionary/en
               Packages to install:     1
           Create boot environment:    No
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1         4/4      0.2/0.2

PHASE                                        ACTIONS
Install Phase                                  29/29

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

PDF Viewer

root@punchin-zone:~# pkg install evince
               Packages to install:    20
           Create boot environment:    No
               Services to restart:     6
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                20/20   5515/5515    47.3/47.3

PHASE                                        ACTIONS
Install Phase                              6821/6821 

PHASE                                          ITEMS
Package State Update Phase                     20/20 
Image State Update Phase                         2/2 
Loading smf(5) service descriptions: 

What's in a Zone?

I was recently asked what packages were installed in a zone. The generally answer is "not much". That's surprising to some as Solaris 11 itself is pretty lightweight. Zones, in comparison, are featherweight.

There at 848 packages in a fresh installation of Solaris 11 Express:

bleonard@solaris:~$ pkg list | wc -l

Compared to only 120 in a fresh installation of a zone:

root@myzone:~# pkg list | wc -l     

You're not going to get much done in a zone w/out first installing some software.

At the risk of creating too long a blog entry, here at the 848 packages installed in the global zone. The packages that are also found in the fresh installation of a local zone are in bold blue:

bleonard@solaris:~$ pkg list
NAME (PUBLISHER)                              VERSION         STATE      UFOXI
SUNWcs                                        0.5.11- installed  -----
SUNWcsd                                       0.5.11- installed  -----
archiver/gnu-tar                              1.23-  installed  -----
audio/audio-utilities                         0.5.11- installed  -----
benchmark/x11perf                             1.5.1-0.151     installed  -----
codec/flac                                    0.5.11- installed  -----
codec/libtheora                               0.5.11- installed  -----
codec/ogg-vorbis                              0.5.11- installed  -----
codec/speex                                   0.5.11- installed  -----
communication/im/pidgin                       0.5.11- installed  -----
communication/pda/gnome-pilot                 0.5.11- installed  -----
communication/pda/pilot-link                  0.5.11- installed  -----
compatibility/packages/SUNWxwplt              0.5.11-0.151    installed  -----
compress/bzip2                                1.0.6- installed  -----
compress/gzip                                 1.3.5- installed  -----
compress/p7zip                                4.55-  installed  -----
compress/unzip                                5.53.7- installed  -----
compress/zip                                  2.32-  installed  -----
consolidation/SunVTS/SunVTS-incorporation     0.5.11- installed  -----
consolidation/X/X-incorporation               0.5.11-0.151    installed  -----
consolidation/admin/admin-incorporation       0.5.11- installed  -----
consolidation/cacao/cacao-incorporation       0.5.11- installed  -----
consolidation/cde/cde-incorporation           0.5.11- installed  -----
consolidation/cns/cns-incorporation           0.5.11- installed  -----
consolidation/dbtg/dbtg-incorporation         0.5.11- installed  -----
consolidation/gfx/gfx-incorporation           0.5.11- installed  -----
consolidation/gnome/gnome-incorporation       0.5.11- installed  -----
consolidation/gnome_l10n/gnome_l10n-incorporation 0.5.11- installed  -----
consolidation/hcts/hcts-incorporation         0.5.11- installed  -----
consolidation/install/install-incorporation   0.5.11- installed  -----
consolidation/ips/ips-incorporation           0.5.11- installed  -----
consolidation/jdmk/jdmk-incorporation         0.5.11- installed  -----
consolidation/l10n/l10n-incorporation         0.5.11- installed  -----
consolidation/man/man-incorporation           0.5.11- installed  -----
consolidation/nspg/nspg-incorporation         0.5.11- installed  -----
consolidation/nvidia/nvidia-incorporation     0.5.11- installed  -----
consolidation/osnet/osnet-incorporation       0.5.11- installed  -----
consolidation/sfw/sfw-incorporation           0.5.11- installed  -----
consolidation/sic_team/sic_team-incorporation 0.5.11- installed  -----
consolidation/solaris_re/solaris_re-incorporation 0.5.11- installed  -----
consolidation/sunpro/sunpro-incorporation     0.5.11- installed  -----
consolidation/ub_javavm/ub_javavm-incorporation 0.5.11- installed  -----
consolidation/vpanels/vpanels-incorporation   0.5.11-0.151    installed  -----
consolidation/xvm/xvm-incorporation           0.5.11- installed  -----
crypto/ca-certificates                        0.5.11- installed  -----
crypto/gnupg                                  2.0.13- installed  -----
data/iso-codes                                0.5.11- installed  -----
database/sqlite-3                             3.6.23- installed  -----
desktop/administration/gnome-system-tools     0.5.11- installed  -----
desktop/administration/gparted                0.4.5- installed  -----
desktop/administration/nwam-manager           0.5.11- installed  -----
desktop/archive-manager/file-roller           0.5.11- installed  -----
desktop/calculator/gcalctool                  0.5.11- installed  -----
desktop/cd-burning/brasero                    0.5.11- installed  -----
desktop/cd-ripping/sound-juicer               0.5.11- installed  -----
desktop/character-map/gucharmap               0.5.11- installed  -----
desktop/compiz                                0.5.11- installed  -----
desktop/compiz/ccsm                           0.5.11- installed  -----
desktop/compiz/library/compizconfig-gconf     0.5.11- installed  -----
desktop/compiz/library/libcompizconfig        0.5.11- installed  -----
desktop/compiz/plugin/compiz-fusion-extra     0.5.11- installed  -----
desktop/compiz/plugin/compiz-fusion-main      0.5.11- installed  -----
desktop/gksu                                  0.5.11- installed  -----
desktop/pdf-viewer/evince                     0.5.11- installed  -----
desktop/remote-desktop/tigervnc               1.0.1-0.151     installed  -----
desktop/system-monitor/gnome-system-monitor   0.5.11- installed  -----
desktop/time-slider                           0.2.97- installed  -----
desktop/window-manager/twm                    1.0.4-0.151     installed  -----
desktop/xdg/menu-editor/alacarte              0.5.11- installed  -----
desktop/xdg/xdg-user-dirs-gtk                 0.5.11- installed  -----
desktop/xdg/xdg-utils                         0.5.11- installed  -----
desktop/xscreensaver                          5.11-  installed  -----
developer/build/gnu-make                      3.81-  installed  -----
developer/build/make                          0.5.11- installed  -----
developer/debug/mdb                           0.5.11- installed  -----
developer/debug/mdb/module/module-ce          0.5.11- installed  -----
developer/debug/mdb/module/module-fibre-channel 0.5.11- installed  -----
developer/debug/mdb/module/module-qlc         0.5.11- installed  -----
developer/dtrace                              0.5.11- installed  -----
developer/dtrace/toolkit                      0.5.11- installed  -----
developer/gnome/gnome-doc-utils               0.5.11- installed  -----
developer/linker                              0.5.11- installed  -----
developer/macro/cpp                           0.5.11- installed  -----
developer/object-file                         0.5.11- installed  -----
developer/ui-designer/glade                   0.5.11- installed  -----
diagnostic/acpidump                           0.2007.11.16- installed  -----
diagnostic/constype                           1.0.2-0.151     installed  -----
diagnostic/cpu-counters                       0.5.11- installed  -----
diagnostic/ddu                                0.5.11- installed  -----
diagnostic/ddu/data                           0.5.11- installed  -----
diagnostic/ddu/library                        0.5.11- installed  -----
diagnostic/ddu/locale                         0.5.11- installed  -----
diagnostic/latencytop                         0.5.11- installed  -----
diagnostic/powertop                           0.5.11- installed  -----
diagnostic/scanpci                            0.10.9-0.151    installed  -----
diagnostic/top                                3.8-   installed  -----
diagnostic/xload                              1.0.2-0.151     installed  -----
documentation/gnome/gnome-user-docs           0.5.11- installed  -----
driver/audio                                  0.5.11- installed  -----
driver/audio/audio810                         0.5.11- installed  -----
driver/audio/audiocmi                         0.5.11- installed  -----
driver/audio/audioemu10k                      0.5.11- installed  -----
driver/audio/audiohd                          0.5.11- installed  -----
driver/audio/audioixp                         0.5.11- installed  -----
driver/audio/audiols                          0.5.11- installed  -----
driver/audio/audiop16x                        0.5.11- installed  -----
driver/audio/audiosolo                        0.5.11- installed  -----
driver/audio/audiovia823x                     0.5.11- installed  -----
driver/audio/audiovia97                       0.5.11- installed  -----
driver/crypto/dca                             0.5.11- installed  -----
driver/crypto/tpm                             0.5.11- installed  -----
driver/firewire                               0.5.11- installed  -----
driver/graphics/agpgart                       0.5.11- installed  -----
driver/graphics/atiatom                       0.5.11- installed  -----
driver/graphics/av1394                        0.5.11- installed  -----
driver/graphics/dcam1394                      0.5.11- installed  -----
driver/graphics/dcam1394/devfsadm-dcam1394    0.5.11- installed  -----
driver/graphics/drm                           0.5.11- installed  -----
driver/graphics/nvidia                        0.256.44- installed  -----
driver/graphics/usbvc                         0.5.11- installed  -----
driver/i86pc/fipe                             0.5.11- installed  -----
driver/i86pc/ioat                             0.5.11- installed  -----
driver/i86pc/platform                         0.5.11- installed  -----
driver/management/bmc                         0.5.11- installed  -----
driver/network/afe                            0.5.11- installed  -----
driver/network/amd8111s                       0.5.11- installed  -----
driver/network/arn                            0.5.11- installed  -----
driver/network/atge                           0.5.11- installed  -----
driver/network/ath                            0.5.11- installed  -----
driver/network/atu                            0.5.11- installed  -----
driver/network/bfe                            0.5.11- installed  -----
driver/network/bge                            0.5.11- installed  -----
driver/network/bnx                            0.5.11- installed  -----
driver/network/bnxe                           0.5.11- installed  -----
driver/network/bpf                            0.5.11- installed  -----
driver/network/ce                             0.5.11- installed  -----
driver/network/chxge                          0.5.11- installed  -----
driver/network/dmfe                           0.5.11- installed  -----
driver/network/e1000g                         0.5.11- installed  -----
driver/network/elxl                           0.5.11- installed  -----
driver/network/emlxs                          0.5.11- installed  -----
driver/network/fcip                           0.5.11- installed  -----
driver/network/fcp                            0.5.11- installed  -----
driver/network/fcsm                           0.5.11- installed  -----
driver/network/fp                             0.5.11- installed  -----
driver/network/hme                            0.5.11- installed  -----
driver/network/hxge                           0.5.11- installed  -----
driver/network/ib                             0.5.11- installed  -----
driver/network/igb                            0.5.11- installed  -----
driver/network/ipw                            0.5.11- installed  -----
driver/network/iwh                            0.5.11- installed  -----
driver/network/iwi                            0.5.11- installed  -----
driver/network/iwk                            0.5.11- installed  -----
driver/network/iwp                            0.5.11- installed  -----
driver/network/ixgb                           0.5.11- installed  -----
driver/network/ixgbe                          0.5.11- installed  -----
driver/network/mcxe                           0.5.11- installed  -----
driver/network/mwl                            0.5.11- installed  -----
driver/network/mxfe                           0.5.11- installed  -----
driver/network/myri10ge                       0.5.11- installed  -----
driver/network/nge                            0.5.11- installed  -----
driver/network/ntxn                           0.5.11- installed  -----
driver/network/nxge                           0.5.11- installed  -----
driver/network/pcan                           0.5.11- installed  -----
driver/network/pcwl                           0.5.11- installed  -----
driver/network/platform                       0.5.11- installed  -----
driver/network/qlc                            0.5.11- installed  -----
driver/network/ral                            0.5.11- installed  -----
driver/network/rge                            0.5.11- installed  -----
driver/network/rtls                           0.5.11- installed  -----
driver/network/rtw                            0.5.11- installed  -----
driver/network/rum                            0.5.11- installed  -----
driver/network/rwd                            0.5.11- installed  -----
driver/network/rwn                            0.5.11- installed  -----
driver/network/sfe                            0.5.11- installed  -----
driver/network/uath                           0.5.11- installed  -----
driver/network/ural                           0.5.11- installed  -----
driver/network/urtw                           0.5.11- installed  -----
driver/network/usbecm                         0.5.11- installed  -----
driver/network/vr                             0.5.11- installed  -----
driver/network/wpi                            0.5.11- installed  -----
driver/network/xge                            0.5.11- installed  -----
driver/network/yge                            0.5.11- installed  -----
driver/network/zyd                            0.5.11- installed  -----
driver/pcmcia                                 0.5.11- installed  -----
driver/serial/pcser                           0.5.11- installed  -----
driver/serial/usbftdi                         0.5.11- installed  -----
driver/serial/usbsacm                         0.5.11- installed  -----
driver/serial/usbser                          0.5.11- installed  -----
driver/serial/usbser_edge                     0.5.11- installed  -----
driver/serial/usbsksp                         0.5.11- installed  -----
driver/serial/usbsksp/usbs49_fw               0.5.11- installed  -----
driver/serial/usbsprl                         0.5.11- installed  -----
driver/storage/aac                            0.5.11- installed  -----
driver/storage/adpu320                        0.5.11- installed  -----
driver/storage/ahci                           0.5.11- installed  -----
driver/storage/amr                            0.5.11- installed  -----
driver/storage/arcmsr                         0.5.11- installed  -----
driver/storage/ata                            0.5.11- installed  -----
driver/storage/bcm_sata                       0.5.11- installed  -----
driver/storage/blkdev                         0.5.11- installed  -----
driver/storage/cpqary3                        0.5.11- installed  -----
driver/storage/glm                            0.5.11- installed  -----
driver/storage/lsimega                        0.5.11- installed  -----
driver/storage/marvell88sx                    0.5.11- installed  -----
driver/storage/mega_sas                       0.5.11- installed  -----
driver/storage/mpt_sas                        0.5.11- installed  -----
driver/storage/mr_sas                         0.5.11- installed  -----
driver/storage/nv_sata                        0.5.11- installed  -----
driver/storage/pcata                          0.5.11- installed  -----
driver/storage/pmcs                           0.5.11- installed  -----
driver/storage/sbp2                           0.5.11- installed  -----
driver/storage/scsa1394                       0.5.11- installed  -----
driver/storage/sdcard                         0.5.11- installed  -----
driver/storage/ses                            0.5.11- installed  -----
driver/storage/si3124                         0.5.11- installed  -----
driver/storage/smp                            0.5.11- installed  -----
driver/usb                                    0.5.11- installed  -----
driver/usb/ugen                               0.5.11- installed  -----
driver/x11/winlock                            0.5.11- installed  -----
driver/x11/xsvc                               0.5.11- installed  -----
driver/xvm/pv                                 0.5.11- installed  -----
editor/gedit                                  0.5.11- installed  -----
editor/nano                                   2.0.9- installed  -----
editor/vim                                    7.2.308- installed  -----
entire                                        0.5.11- installed  -----
file/gnu-coreutils                            8.5-   installed  -----
file/gnu-findutils                            0.5.11- installed  -----
file/slocate                                  0.5.11- installed  -----
gnome/accessibility/gnome-a11y-libs           0.5.11- installed  -----
gnome/accessibility/gok                       0.5.11- installed  -----
gnome/accessibility/orca                      0.5.11- installed  -----
gnome/applet/gnome-applets                    0.5.11- installed  -----
gnome/applet/gnome-fun-applets                0.5.11- installed  -----
gnome/applet/gnome-internet-applets           0.5.11- installed  -----
gnome/applet/gnome-intranet-applets           0.5.11- installed  -----
gnome/applet/gnome-mm-applets                 0.5.11- installed  -----
gnome/applet/gnome-utility-applets            0.5.11- installed  -----
gnome/config/gconf                            0.5.11- installed  -----
gnome/disk-analyzer/baobab                    0.5.11- installed  -----
gnome/file-manager/nautilus                   0.5.11- installed  -----
gnome/ggv                                     0.5.11- installed  -----
gnome/gnome-audio                             0.5.11- installed  -----
gnome/gnome-camera                            0.5.11- installed  -----
gnome/gnome-dictionary                        0.5.11- installed  -----
gnome/gnome-keyring                           0.5.11- installed  -----
gnome/gnome-log-viewer                        0.5.11- installed  -----
gnome/gnome-panel                             0.5.11- installed  -----
gnome/gnome-power-manager                     0.5.11- installed  -----
gnome/gnome-remote-desktop                    0.5.11- installed  -----
gnome/gnome-screenshot                        0.5.11- installed  -----
gnome/gnome-search-tool                       0.5.11- installed  -----
gnome/gnome-session                           0.5.11- installed  -----
gnome/help-viewer/yelp                        0.5.11- installed  -----
gnome/locale/de                               0.5.11- installed  -----
gnome/locale/es                               0.5.11- installed  -----
gnome/locale/fr                               0.5.11- installed  -----
gnome/locale/hi                               0.5.11- installed  -----
gnome/locale/it                               0.5.11- installed  -----
gnome/locale/ja                               0.5.11- installed  -----
gnome/locale/ko                               0.5.11- installed  -----
gnome/locale/pl                               0.5.11- installed  -----
gnome/locale/pt_br                            0.5.11- installed  -----
gnome/locale/rtl                              0.5.11- installed  -----
gnome/locale/ru                               0.5.11- installed  -----
gnome/locale/zh_cn                            0.5.11- installed  -----
gnome/locale/zh_tw                            0.5.11- installed  -----
gnome/media/gnome-media                       0.5.11- installed  -----
gnome/media/gnome-media-player                0.5.11- installed  -----
gnome/preferences/control-center              0.5.11- installed  -----
gnome/speech/gnome-speech                     0.4.25- installed  -----
gnome/speech/gnome-speech/driver/gnome-speech-espeak 0.5.11- installed  -----
gnome/theme/background/os-backgrounds         0.5.11- installed  -----
gnome/theme/gnome-icon-theme                  0.5.11- installed  -----
gnome/theme/gnome-themes                      0.5.11- installed  -----
gnome/theme/gtk2-engines                      0.5.11- installed  -----
gnome/theme/hicolor-icon-theme                0.5.11- installed  -----
gnome/theme/nimbus                            0.1.5- installed  -----
gnome/theme/sound/xdg-sound-theme             0.5.11- installed  -----
gnome/theme/tango-icon-theme                  0.5.11- installed  -----
gnome/window-manager/metacity                 0.5.11- installed  -----
gnome/zenity                                  0.5.11- installed  -----
image/dcraw                                   8.99-  installed  -----
image/library/libart                          0.5.11- installed  -----
image/library/libexif                         0.5.11- installed  -----
image/library/libjpeg                         0.5.11- installed  -----
image/library/libpng                          0.5.11- installed  -----
image/library/librsvg                         0.5.11- installed  -----
image/library/libtiff                         0.5.11- installed  -----
image/scanner/xsane/sane-backends             1.0.19- installed  -----
image/viewer/eog                              0.5.11- installed  -----
install/beadm                                 0.5.11- installed  -----
library/aalib                                 1.4.5- installed  -----
library/accessibility/brltty                  0.5.11- installed  -----
library/audio/gstreamer                       0.5.11- installed  -----
library/c++/glibmm                            0.5.11- installed  -----
library/c++/sigcpp                            0.5.11- installed  -----
library/demo/audio-samples                    0.5.11- installed  -----
library/desktop/atk                           0.5.11- installed  -----
library/desktop/c++/cairomm                   0.5.11- installed  -----
library/desktop/c++/gtkmm                     0.5.11- installed  -----
library/desktop/c++/pangomm                   0.5.11- installed  -----
library/desktop/cairo                         0.5.11- installed  -----
library/desktop/evolution-data-server         0.5.11- installed  -----
library/desktop/gtk2                          0.5.11- installed  -----
library/desktop/gtk2/gtk-backend-cups         0.5.11- installed  -----
library/desktop/gtksourceview                 0.5.11- installed  -----
library/desktop/gtkspell                      0.5.11- installed  -----
library/desktop/libgdata                      0.6.4- installed  -----
library/desktop/libglade                      0.5.11- installed  -----
library/desktop/libgnomecanvas                0.5.11- installed  -----
library/desktop/libgsf                        0.5.11- installed  -----
library/desktop/libgweather                   0.5.11- installed  -----
library/desktop/libsexy                       0.1.11- installed  -----
library/desktop/libvisual                     0.4.0- installed  -----
library/desktop/pango                         0.5.11- installed  -----
library/desktop/search/tracker                0.5.11- installed  -----
library/desktop/xdg/libcanberra               0.5.11- installed  -----
library/expat                                 2.0.1- installed  -----
library/file-monitor/gamin                    0.1.10- installed  -----
library/gc                                    0.5.11- installed  -----
library/glib2                                 0.5.11- installed  -----
library/gmime                                 0.5.11- installed  -----
library/gmp                                   4.3.1- installed  -----
library/gnome/gnome-component                 0.5.11- installed  -----
library/gnome/gnome-keyring                   0.5.11- installed  -----
library/gnome/gnome-libs                      0.5.11- installed  -----
library/gnome/gnome-vfs                       0.5.11- installed  -----
library/gnome/gvfs                            0.5.11- installed  -----
library/gnome/print/gnome-print               0.5.11- installed  -----
library/gnutls                                0.5.11- installed  -----
library/graphics/pixman                       0.18.4-0.151    installed  -----
library/idnkit                                0.5.11- installed  -----
library/java/javahelp                         0.5.11- installed  -----
library/java/jss                              0.5.11- installed  -----
library/lcms                                  1.19-  installed  -----
library/libcroco                              0.5.11- installed  -----
library/libdaemon                             0.5.11- installed  -----
library/libffi                                0.5.11- installed  -----
library/libgtop                               0.5.11- installed  -----
library/libical                               0.5.11- installed  -----
library/libidn                                1.9-   installed  -----
library/libnotify                             0.4.5- installed  -----
library/liboil                                0.3.17- installed  -----
library/libproxy                              0.3.1- installed  -----
library/libsoup                               0.5.11- installed  -----
library/libtasn1                              0.5.11- installed  -----
library/libtecla                              1.6.0- installed  -----
library/libtool/libltdl                       1.5.22- installed  -----
library/libunique                             0.5.11- installed  -----
library/libxml2                               2.7.6- installed  -----
library/libxslt                               1.1.26- installed  -----
library/media-player/totem-pl-parser          0.5.11- installed  -----
library/musicbrainz/libdiscid                 0.2.2- installed  -----
library/musicbrainz/libmusicbrainz            0.5.11- installed  -----
library/myspell/dictionary/en                 0.5.11- installed  -----
library/ncurses                               0.5.11- installed  -----
library/neon                                  0.29.0- installed  -----
library/nspr                                  0.5.11- installed  -----
library/pcre                                  7.8-   installed  -----
library/perl-5/authen-pam                     0.5.11- installed  -----
library/perl-5/xml-parser                     0.5.11- installed  -----
library/popt                                  0.5.11- installed  -----
library/print/cups-libs                       1.4.2- installed  -----
library/print/open-printing                   0.5.11- installed  -----
library/pth                                   2.0.7- installed  -----
library/python-2/cherrypy                     3.1.2- installed  -----
library/python-2/coherence-26                 0.5.11- installed  -----
library/python-2/libxml2-26                   2.7.6- installed  -----
library/python-2/libxsl-26                    1.1.26- installed  -----
library/python-2/m2crypto                     0.20.0- installed  -----
library/python-2/mako                         0.2.2- installed  -----
library/python-2/ply                          3.1-   installed  -----
library/python-2/pyatspi-26                   0.5.11- installed  -----
library/python-2/pybonjour                    1.1.1- installed  -----
library/python-2/pycups                       1.9.46- installed  -----
library/python-2/pycurl              installed  -----
library/python-2/pyopenssl-26                 0.8-   installed  -----
library/python-2/python-compizconfig-26       0.5.11- installed  -----
library/python-2/python-dbus-26               0.5.11- installed  -----
library/python-2/python-extra-26              0.5.11- installed  -----
library/python-2/python-gnome-desktop-26      0.5.11- installed  -----
library/python-2/python-gnome-extras-26       0.5.11- installed  -----
library/python-2/python-gnome-libs-26         0.5.11- installed  -----
library/python-2/python-gst-26                0.5.11- installed  -----
library/python-2/python-notify-26             0.1.1- installed  -----
library/python-2/python-twisted-26            0.5.11- installed  -----
library/python-2/python-xdg-26                0.5.11- installed  -----
library/python-2/python-zope-interface-26     0.5.11- installed  -----
library/python-2/pyyaml-26                    0.5.11- installed  -----
library/python-2/simplejson-26                0.5.11- installed  -----
library/raptor                                0.5.11- installed  -----
library/readline                              5.2-   installed  -----
library/samba/libsmbclient                    3.5.5- installed  -----
library/sdl                                   0.5.11- installed  -----
library/security/libgpg-error                 0.5.11- installed  -----
library/security/openssl             installed  -----
library/security/tcp-wrapper                  7.6-   installed  -----
library/security/trousers                     0.3.4- installed  -----
library/slang                                 2.2.2- installed  -----
library/speech/espeak                         0.5.11- installed  -----
library/spell-checking/enchant                0.5.11- installed  -----
library/unixodbc                              2.2.14- installed  -----
library/xdg/consolekit                        0.4.1- installed  -----
library/xdg/xdg-user-dirs                     0.5.11- installed  -----
library/zlib                                  1.2.3- installed  -----
mail/thunderbird                              0.5.11- installed  -----
mail/thunderbird/locale/de                    0.5.11- installed  -----
mail/thunderbird/locale/es                    0.5.11- installed  -----
mail/thunderbird/locale/fr                    0.5.11- installed  -----
mail/thunderbird/locale/it                    0.5.11- installed  -----
mail/thunderbird/locale/ja                    0.5.11- installed  -----
mail/thunderbird/locale/ko                    0.5.11- installed  -----
mail/thunderbird/locale/pl                    0.5.11- installed  -----
mail/thunderbird/locale/pt_br                 0.5.11- installed  -----
mail/thunderbird/locale/ru                    0.5.11- installed  -----
mail/thunderbird/locale/zh_cn                 0.5.11- installed  -----
mail/thunderbird/locale/zh_tw                 0.5.11- installed  -----
mail/thunderbird/plugin/thunderbird-lightning 0.5.11- installed  -----
media/cdrtools                                3.0-   installed  -----
naming/ldap                                   0.5.11- installed  -----
network/bridging                              0.5.11- installed  -----
network/dns/bind                     installed  -----
network/ftp                                   0.5.11- installed  -----
network/ftp/ncftp                             3.2.3- installed  -----
network/ipfilter                              0.5.11- installed  -----
network/iscsi/initiator                       0.5.11- installed  -----
network/iscsi/iser                            0.5.11- installed  -----
network/rsync                                 3.0.6- installed  -----
network/ssh                                   0.5.11- installed  -----
network/ssh/ssh-key                           0.5.11- installed  -----
network/telnet                                0.5.11- installed  -----
package/pkg                                   0.5.11- installed  -----
package/pkg/package-manager                   0.5.11- installed  -----
package/pkg/update-manager                    0.5.11- installed  -----
package/rpm                                   0.5.11- installed  -----
package/svr4                                  0.5.11- installed  -----
print/cups                                    1.4.2- installed  -----
print/cups/hal-cups-utils                     0.6.19- installed  -----
print/cups/system-config-printer              0.5.11- installed  -----
print/filter/ghostscript                      8.64-  installed  -----
print/filter/ghostscript/fonts/gnu-gs-fonts-other 6.0-   installed  -----
print/filter/ghostscript/fonts/gnu-gs-fonts-std 6.0-   installed  -----
print/filter/gutenprint                       5.2.4- installed  -----
print/filter/hplip                            3.9.8- installed  -----
print/lp/print-client-commands                0.5.11- installed  -----
release/getting-started                       0.5.11- installed  -----
release/getting-started/locale/de             0.5.11- installed  -----
release/getting-started/locale/es             0.5.11- installed  -----
release/getting-started/locale/extra          0.5.11- installed  -----
release/getting-started/locale/fr             0.5.11- installed  -----
release/getting-started/locale/it             0.5.11- installed  -----
release/getting-started/locale/ja             0.5.11- installed  -----
release/getting-started/locale/ko             0.5.11- installed  -----
release/getting-started/locale/pt_br          0.5.11- installed  -----
release/getting-started/locale/ru             0.5.11- installed  -----
release/getting-started/locale/sv             0.5.11- installed  -----
release/getting-started/locale/zh_cn          0.5.11- installed  -----
release/getting-started/locale/zh_hk          0.5.11- installed  -----
release/getting-started/locale/zh_tw          0.5.11- installed  -----
release/name                                  0.5.11- installed  -----
release/notices                               0.5.11- installed  -----
release/os-welcome                            0.5.11- installed  -----
release/registration                          0.5.11- installed  -----
runtime/java                                  0.5.11- installed  -----
runtime/perl-584                              5.8.4- installed  -----
runtime/perl-584/extra                        5.8.4- installed  -----
runtime/perl-584/manual                       5.8.4- installed  -----
runtime/python-24                             2.4.6- installed  -----
runtime/python-26                             2.6.4- installed  -----
runtime/tcl-8                                 8.4.18- installed  -----
runtime/tk-8                                  8.4.18- installed  -----
security/bart                                 0.5.11- installed  -----
security/sudo                        installed  -----
service/fault-management                      0.5.11- installed  -----
service/file-system/nfs                       0.5.11- installed  -----
service/file-system/smb                       0.5.11- installed  -----
service/gnome/desktop-cache                   0.2.2- installed  -----
service/hal                                   0.5.11- installed  -----
service/management/sysidtool                  0.5.11- installed  -----
service/network/dns/mdns                      0.5.11- installed  -----
service/network/ftp                           0.5.11- installed  -----
service/network/network-clients               0.5.11- installed  -----
service/network/network-servers               0.5.11- installed  -----
service/network/ntp                  installed  -----
service/network/slp                           0.5.11- installed  -----
service/network/smtp/sendmail                 8.14.4- installed  -----
service/network/ssh                           0.5.11- installed  -----
service/network/telnet                        0.5.11- installed  -----
service/network/tftp                          0.5.11- installed  -----
service/network/wpa                           0.5.11- installed  -----
service/opengl/ogl-select                     0.5.11-0.151    installed  -----
service/picl                                  0.5.11- installed  -----
service/postrun                               0.5.11- installed  -----
service/resource-pools                        0.5.11- installed  -----
service/resource-pools/poold                  0.5.11- installed  -----
service/security/gss                          0.5.11- installed  -----
service/security/kerberos-5                   0.5.11- installed  -----
service/storage/fibre-channel/fc-fabric       0.5.11- installed  -----
service/storage/media-volume-manager          0.5.11- installed  -----
service/storage/removable-media               0.5.11- installed  -----
shell/bash                                    4.0.28- installed  -----
shell/expect                                  5.43-  installed  -----
shell/pipe-viewer                             1.1.4- installed  -----
shell/tcsh                                    6.17.0- installed  -----
shell/which                                   2.16-  installed  -----
shell/zsh                                     4.3.10- installed  -----
storage/mpathadm                              0.5.11- installed  -----
storage/stmf                                  0.5.11- installed  -----
storage/svm                                   0.5.11- installed  -----
system/accounting/legacy                      0.5.11- installed  -----
system/boot/grub                              0.97-  installed  -----
system/boot/real-mode                         0.5.11- installed  -----
system/boot/wanboot                           0.5.11- installed  -----
system/data/hardware-registry                 0.5.11- installed  -----
system/data/keyboard/keytables                0.5.11- installed  -----
system/data/terminfo                          0.5.11- installed  -----
system/display-manager/desktop-startup        0.5.11- installed  -----
system/display-manager/gdm                    0.5.11- installed  -----
system/extended-system-utilities              0.5.11- installed  -----
system/file-system/autofs                     0.5.11- installed  -----
system/file-system/nfs                        0.5.11- installed  -----
system/file-system/ntfsprogs                  2.0.0- installed  -----
system/file-system/smb                        0.5.11- installed  -----
system/file-system/udfs                       0.5.11- installed  -----
system/file-system/zfs                        0.5.11- installed  -----
system/flash/fwflash                          0.5.11- installed  -----
system/font/truetype/arphic-uming             0.5.11- installed  -----
system/font/truetype/dejavu                   2.31-0.151      installed  -----
system/font/truetype/hanyang-ko-core          0.5.11- installed  -----
system/font/truetype/ipafont                  0.5.11- installed  -----
system/font/truetype/liberation               1.4-0.151       installed  -----
system/font/truetype/lohit                    0.5.11- installed  -----
system/font/xorg/iso8859-1                    7.5-0.151       installed  -----
system/font/xorg/xorg-core                    7.5-0.151       installed  -----
system/fru-id                                 0.5.11- installed  -----
system/fru-id/platform                        0.5.11- installed  -----
system/input-method/iiim                      0.5.11- installed  -----
system/input-method/iiim/anthy                0.5.11- installed  -----
system/input-method/iiim/cle-core             0.5.11- installed  -----
system/input-method/iiim/cle-sunpinyin        0.5.11- installed  -----
system/input-method/iiim/hangul               0.5.11- installed  -----
system/input-method/iiim/thaile               0.5.11- installed  -----
system/input-method/iiim/twle-chewing         0.5.11- installed  -----
system/input-method/iiim/twle-core            0.5.11- installed  -----
system/input-method/imf-startup               0.5.11- installed  -----
system/input-method/library/libanthy          0.5.11- installed  -----
system/input-method/library/libchewing        0.5.11- installed  -----
system/input-method/library/libhangul         0.5.11- installed  -----
system/install                                0.5.11- installed  -----
system/install/tests                          0.5.11- installed  -----
system/ipc                                    0.5.11- installed  -----
system/kernel                                 0.5.11- installed  -----
system/kernel/cpu-counters                    0.5.11- installed  -----
system/kernel/dtrace/providers                0.5.11- installed  -----
system/kernel/dynamic-reconfiguration/i86pc   0.5.11- installed  -----
system/kernel/platform                        0.5.11- installed  -----
system/kernel/power                           0.5.11- installed  -----
system/kernel/secure-rpc                      0.5.11- installed  -----
system/kernel/security/gss                    0.5.11- installed  -----
system/kernel/suspend-resume                  0.5.11- installed  -----
system/kernel/ultra-wideband                  0.5.11- installed  -----
system/keyboard/kbd_mode                      0.5.11-0.151    installed  -----
system/library                                0.5.11- installed  -----
system/library/c++/sunpro                     0.5.11- installed  -----
system/library/dbus                           0.5.11- installed  -----
system/library/flex-runtime                   2.5.35- installed  -----
system/library/fontconfig                     2.8.0-0.151     installed  -----
system/library/freetype-2                     2.4.2-0.151     installed  -----
system/library/gcc-3-runtime                  3.4.3- installed  -----
system/library/iconv/utf-8                    0.5.11- installed  -----
system/library/iconv/utf-8/manual             0.5.11- installed  -----
system/library/install                        0.5.11- installed  -----
system/library/libdbus                        0.5.11- installed  -----
system/library/libdbus-glib                   0.5.11- installed  -----
system/library/libdiskmgt                     0.5.11- installed  -----
system/library/libfcoe                        0.5.11- installed  -----
system/library/libpcap                        1.0.0- installed  -----
system/library/math                           0.5.11- installed  -----
system/library/mozilla-nss                    0.5.11- installed  -----
system/library/platform                       0.5.11- installed  -----
system/library/policykit                      0.5.11- installed  -----
system/library/processor                      0.5.11- installed  -----
system/library/security/gss                   0.5.11- installed  -----
system/library/security/gss/diffie-hellman    0.5.11- installed  -----
system/library/security/gss/spnego            0.5.11- installed  -----
system/library/security/libgcrypt             0.5.11- installed  -----
system/library/security/libsasl               0.5.11- installed  -----
system/library/security/rpcsec                0.5.11- installed  -----
system/library/storage/fibre-channel/hbaapi   0.5.11- installed  -----
system/library/storage/fibre-channel/libsun_fc 0.5.11- installed  -----
system/library/storage/ima                    0.5.11- installed  -----
system/library/storage/ima/header-ima         0.5.11- installed  -----
system/library/storage/libmpapi               0.5.11- installed  -----
system/library/storage/libmpscsi_vhci         0.5.11- installed  -----
system/library/storage/scsi-plugins           0.5.11- installed  -----
system/library/sysidtool                      0.5.11- installed  -----
system/library/usb/libusb                     0.5.11- installed  -----
system/library/usb/libusbugen                 0.5.11- installed  -----
system/locale                                 0.5.11- installed  -----
system/locale/af                              0.5.11- installed  -----
system/locale/ar_eg                           0.5.11- installed  -----
system/locale/as                              0.5.11- installed  -----
system/locale/az                              0.5.11- installed  -----
system/locale/be                              0.5.11- installed  -----
system/locale/bg                              0.5.11- installed  -----
system/locale/bn                              0.5.11- installed  -----
system/locale/bs                              0.5.11- installed  -----
system/locale/ca                              0.5.11- installed  -----
system/locale/cs                              0.5.11- installed  -----
system/locale/da                              0.5.11- installed  -----
system/locale/de_de                           0.5.11- installed  -----
system/locale/el_gr                           0.5.11- installed  -----
system/locale/en_us                           0.5.11- installed  -----
system/locale/es_es                           0.5.11- installed  -----
system/locale/et                              0.5.11- installed  -----
system/locale/fi                              0.5.11- installed  -----
system/locale/fr_fr                           0.5.11- installed  -----
system/locale/gu                              0.5.11- installed  -----
system/locale/he                              0.5.11- installed  -----
system/locale/hi                              0.5.11- installed  -----
system/locale/hr                              0.5.11- installed  -----
system/locale/hu                              0.5.11- installed  -----
system/locale/hy                              0.5.11- installed  -----
system/locale/id                              0.5.11- installed  -----
system/locale/is                              0.5.11- installed  -----
system/locale/it_it                           0.5.11- installed  -----
system/locale/ja                              0.5.11- installed  -----
system/locale/ka                              0.5.11- installed  -----
system/locale/kk                              0.5.11- installed  -----
system/locale/kn                              0.5.11- installed  -----
system/locale/ko                              0.5.11- installed  -----
system/locale/ks                              0.5.11- installed  -----
system/locale/ku                              0.5.11- installed  -----
system/locale/ky                              0.5.11- installed  -----
system/locale/lt                              0.5.11- installed  -----
system/locale/lv                              0.5.11- installed  -----
system/locale/mk                              0.5.11- installed  -----
system/locale/ml                              0.5.11- installed  -----
system/locale/mr                              0.5.11- installed  -----
system/locale/ms                              0.5.11- installed  -----
system/locale/mt                              0.5.11- installed  -----
system/locale/nb                              0.5.11- installed  -----
system/locale/nl_nl                           0.5.11- installed  -----
system/locale/nn                              0.5.11- installed  -----
system/locale/or                              0.5.11- installed  -----
system/locale/pa                              0.5.11- installed  -----
system/locale/pl                              0.5.11- installed  -----
system/locale/pt                              0.5.11- installed  -----
system/locale/pt_br                           0.5.11- installed  -----
system/locale/ro                              0.5.11- installed  -----
system/locale/ru_ru                           0.5.11- installed  -----
system/locale/sa                              0.5.11- installed  -----
system/locale/sk                              0.5.11- installed  -----
system/locale/sl                              0.5.11- installed  -----
system/locale/sq                              0.5.11- installed  -----
system/locale/sr_rs                           0.5.11- installed  -----
system/locale/sv                              0.5.11- installed  -----
system/locale/th                              0.5.11- installed  -----
system/locale/tr                              0.5.11- installed  -----
system/locale/uk                              0.5.11- installed  -----
system/locale/vi                              0.5.11- installed  -----
system/locale/zh_cn                           0.5.11- installed  -----
system/locale/zh_tw                           0.5.11- installed  -----
system/management/intel-amt                   0.5.11- installed  -----
system/management/ipmitool                    1.8.10- installed  -----
system/management/product-registry            0.5.11- installed  -----
system/management/service-tag                 0.5.11- installed  -----
system/management/snmp/net-snmp               5.4.1- installed  -----
system/management/snmp/net-snmp/documentation 5.4.1- installed  -----
system/management/snmp/sea                    0.5.11- installed  -----
system/management/snmp/sea/sea-config         0.5.11- installed  -----
system/management/sysidtool                   0.5.11- installed  -----
system/management/visual-panels               0.5.11-0.151    installed  -----
system/management/visual-panels/panel-firewall 0.5.11-0.151    installed  -----
system/management/visual-panels/panel-sharemgr 0.5.11-0.151    installed  -----
system/manual                                 0.5.11- installed  -----
system/manual/locale/ca                       0.5.11- installed  -----
system/manual/locale/ja                       0.5.11- installed  -----
system/network                                0.5.11- installed  -----
system/network/avahi                          0.5.11- installed  -----
system/network/nis                            0.5.11- installed  -----
system/network/ppp                            0.5.11- installed  -----
system/network/ppp/pppdump                    0.5.11- installed  -----
system/network/ppp/tunnel                     0.5.11- installed  -----
system/network/routing                        0.5.11- installed  -----
system/network/wificonfig                     0.5.11- installed  -----
system/prerequisite/gnu                       0.5.11- installed  -----
system/scheduler/fss                          0.5.11- installed  -----
system/storage/fibre-channel/port-utility     0.5.11- installed  -----
system/storage/luxadm                         0.5.11- installed  -----
system/storage/parted                         1.8.8- installed  -----
system/xopen/xcu4                             0.5.11- installed  -----
system/xvm/ipagent                            0.5.11- installed  -----
system/xvm/xvmstore                           3.4.2- installed  -----
system/zones                                  0.5.11- installed  -----
system/zones/brand/ipkg                       0.5.11- installed  -----
terminal/fbconsole                            0.5.11-0.151    installed  -----
terminal/gnome-terminal                       0.5.11- installed  -----
terminal/luit                                 1.0.5-0.151     installed  -----
terminal/screen                               4.0.3- installed  -----
terminal/xterm                                261-0.151       installed  -----
text/doctools                                 0.5.11- installed  -----
text/doctools/ja                              0.5.11- installed  -----
text/gawk                                     3.1.5- installed  -----
text/gnu-diffutils                            2.8.7- installed  -----
text/gnu-grep                                 2.5.4- installed  -----
text/gnu-patch                                2.5.9- installed  -----
text/gnu-sed                                  4.2.1- installed  -----
text/groff                                    0.5.11- installed  -----
text/less                                     436-   installed  -----
text/locale                                   0.5.11- installed  -----
text/texinfo                                  4.7-   installed  -----
web/browser/firefox                           0.5.11- installed  -----
web/browser/firefox/locale/de_de              0.5.11- installed  -----
web/browser/firefox/locale/es_es              0.5.11- installed  -----
web/browser/firefox/locale/fr_fr              0.5.11- installed  -----
web/browser/firefox/locale/hi_in              0.5.11- installed  -----
web/browser/firefox/locale/it_it              0.5.11- installed  -----
web/browser/firefox/locale/ja_jp              0.5.11- installed  -----
web/browser/firefox/locale/ko_kr              0.5.11- installed  -----
web/browser/firefox/locale/pl_pl              0.5.11- installed  -----
web/browser/firefox/locale/pt_br              0.5.11- installed  -----
web/browser/firefox/locale/ru_ru              0.5.11- installed  -----
web/browser/firefox/locale/zh_cn              0.5.11- installed  -----
web/browser/firefox/locale/zh_tw              0.5.11- installed  -----
web/browser/firefox/plugin/firefox-flashplayer installed  -----
web/browser/firefox/plugin/firefox-java       0.5.11- installed  -----
web/browser/w3m                               0.5.2- installed  -----
web/curl                                      7.21.1- installed  -----
web/data/firefox-bookmarks                    0.5.11- installed  -----
web/wget                                      1.12-  installed  -----
x11/colormap-utilities                        7.5-0.151       installed  -----
x11/compatibility/links-svid                  0.5.11-0.151    installed  -----
x11/compatibility/links-xorg                  0.5.11-0.151    installed  -----
x11/data/workspace-patterns                   0.5.11-0.151    installed  -----
x11/data/xbitmaps                             1.1.0-0.151     installed  -----
x11/data/xcursor-themes                       1.0.2-0.151     installed  -----
x11/demo                                      7.5-0.151       installed  -----
x11/demo/mesa-demos                           7.4.4-0.151     installed  -----
x11/diagnostic/x11-info-clients               7.5-0.151       installed  -----
x11/diagnostic/xev                            1.0.4-0.151     installed  -----
x11/diagnostic/xscope                         1.2-0.151       installed  -----
x11/documentation/xorg-docs                   1.5-0.151       installed  -----
x11/font-utilities                            7.5-0.151       installed  -----
x11/header/x11-protocols                      7.5-0.151       installed  -----
x11/keyboard/data-xkb                         0.5.11- installed  -----
x11/keyboard/xkb-utilities                    7.5-0.151       installed  -----
x11/keyboard/xkbcomp                          1.1.1-0.151     installed  -----
x11/library/dps                               7.5-0.151       installed  -----
x11/library/libdga                            0.5.11-0.151    installed  -----
x11/library/libdrm                            2.4.14-0.151    installed  -----
x11/library/libfontenc                        1.0.5-0.151     installed  -----
x11/library/libfs                             1.0.2-0.151     installed  -----
x11/library/libice                            1.0.6-0.151     installed  -----
x11/library/libowconfig                       0.5.11-0.151    installed  -----
x11/library/libsm                             1.0.3-0.151     installed  -----
x11/library/libx11                            1.3.5-0.151     installed  -----
x11/library/libxau                            1.0.6-0.151     installed  -----
x11/library/libxcomposite                     0.4.2-0.151     installed  -----
x11/library/libxcursor                        1.1.10-0.151    installed  -----
x11/library/libxdamage                        1.1.3-0.151     installed  -----
x11/library/libxdmcp                          1.0.3-0.151     installed  -----
x11/library/libxevie                          1.0.2-0.151     installed  -----
x11/library/libxext                           1.1.2-0.151     installed  -----
x11/library/libxfixes                         4.0.5-0.151     installed  -----
x11/library/libxfont                          1.4.1-0.151     installed  -----
x11/library/libxft                            2.1.14-0.151    installed  -----
x11/library/libxi                             1.3.2-0.151     installed  -----
x11/library/libxinerama                       1.1-0.151       installed  -----
x11/library/libxkbfile                        1.0.6-0.151     installed  -----
x11/library/libxmu                            1.0.5-0.151     installed  -----
x11/library/libxmuu                           1.0.5-0.151     installed  -----
x11/library/libxp                             1.0.0-0.151     installed  -----
x11/library/libxpm                            3.5.8-0.151     installed  -----
x11/library/libxrandr                         1.3.0-0.151     installed  -----
x11/library/libxrender                        0.9.6-0.151     installed  -----
x11/library/libxres                           1.0.4-0.151     installed  -----
x11/library/libxscrnsaver                     1.2.0-0.151     installed  -----
x11/library/libxtst                           1.1.0-0.151     installed  -----
x11/library/libxv                             1.0.5-0.151     installed  -----
x11/library/libxvmc                           1.0.6-0.151     installed  -----
x11/library/libxxf86misc                      1.0.2-0.151     installed  -----
x11/library/libxxf86vm                        1.1.0-0.151     installed  -----
x11/library/mesa                              7.4.4-0.151     installed  -----
x11/library/toolkit/libxaw4                   0.5.11-0.151    installed  -----
x11/library/toolkit/libxaw5                   0.5.11-0.151    installed  -----
x11/library/toolkit/libxaw7                   1.0.7-0.151     installed  -----
x11/library/toolkit/libxt                     1.0.8-0.151     installed  -----
x11/library/xtrans                            1.2.5-0.151     installed  -----
x11/network/rstart                            1.0.3-0.151     installed  -----
x11/server/xephyr                             1.7.7-0.151     installed  -----
x11/server/xorg                               1.7.7-0.151     installed  -----
x11/server/xorg/driver/xorg-input-hotkey      0.5.11-0.151    installed  -----
x11/server/xorg/driver/xorg-input-keyboard    1.4.0-0.151     installed  -----
x11/server/xorg/driver/xorg-input-mouse       1.5.0-0.151     installed  -----
x11/server/xorg/driver/xorg-input-synaptics   1.2.1-0.151     installed  -----
x11/server/xorg/driver/xorg-input-vmmouse     12.6.10-0.151   installed  -----
x11/server/xorg/driver/xorg-video             0.5.11-0.151    installed  -----
x11/server/xorg/driver/xorg-video-apm         1.2.3-0.151     installed  -----
x11/server/xorg/driver/xorg-video-ark         0.7.3-0.151     installed  -----
x11/server/xorg/driver/xorg-video-ast         0.91.10-0.151   installed  -----
x11/server/xorg/driver/xorg-video-ati         6.13.1-0.151    installed  -----
x11/server/xorg/driver/xorg-video-chips       1.2.3-0.151     installed  -----
x11/server/xorg/driver/xorg-video-cirrus      1.3.2-0.151     installed  -----
x11/server/xorg/driver/xorg-video-glint       1.2.4-0.151     installed  -----
x11/server/xorg/driver/xorg-video-i128        1.3.4-0.151     installed  -----
x11/server/xorg/driver/xorg-video-i740        1.3.2-0.151     installed  -----
x11/server/xorg/driver/xorg-video-intel       2.6.3-0.151     installed  -----
x11/server/xorg/driver/xorg-video-mach64      6.8.2-0.151     installed  -----
x11/server/xorg/driver/xorg-video-mga         1.4.13-0.151    installed  -----
x11/server/xorg/driver/xorg-video-neomagic    1.2.5-0.151     installed  -----
x11/server/xorg/driver/xorg-video-nv          2.1.18-0.151    installed  -----
x11/server/xorg/driver/xorg-video-openchrome  0.2.904-0.151   installed  -----
x11/server/xorg/driver/xorg-video-r128        6.8.1-0.151     installed  -----
x11/server/xorg/driver/xorg-video-radeonhd    1.3.0-0.151     installed  -----
x11/server/xorg/driver/xorg-video-rendition   4.2.4-0.151     installed  -----
x11/server/xorg/driver/xorg-video-s3          0.6.3-0.151     installed  -----
x11/server/xorg/driver/xorg-video-s3virge     1.10.4-0.151    installed  -----
x11/server/xorg/driver/xorg-video-savage      2.2.1-0.151     installed  -----
x11/server/xorg/driver/xorg-video-siliconmotion 1.7.4-0.151     installed  -----
x11/server/xorg/driver/xorg-video-sis         0.10.3-0.151    installed  -----
x11/server/xorg/driver/xorg-video-tdfx        1.4.3-0.151     installed  -----
x11/server/xorg/driver/xorg-video-tga         1.2.1-0.151     installed  -----
x11/server/xorg/driver/xorg-video-trident     1.3.4-0.151     installed  -----
x11/server/xorg/driver/xorg-video-tseng       1.2.4-0.151     installed  -----
x11/server/xorg/driver/xorg-video-vesa        2.3.0-0.151     installed  -----
x11/server/xorg/driver/xorg-video-vmware      10.16.9-0.151   installed  -----
x11/server/xserver-common                     1.7.7-0.151     installed  -----
x11/server/xvnc                               1.0.1-0.151     installed  -----
x11/session/sessreg                           1.0.6-0.151     installed  -----
x11/session/smproxy                           1.0.3-0.151     installed  -----
x11/session/winsysck                          0.5.11-0.151    installed  -----
x11/session/xauth                             1.0.4-0.151     installed  -----
x11/session/xinit                             1.2.1-0.151     installed  -----
x11/trusted/libxtsol                          0.5.11-0.151    installed  -----
x11/x11-server-utilities                      7.5-0.151       installed  -----
x11/x11-window-dump                           1.0.3-0.151     installed  -----
x11/xcalc                                     1.0.3-0.151     installed  -----
x11/xclipboard                                1.1.0-0.151     installed  -----
x11/xfd                                       1.0.1-0.151     installed  -----
x11/xfontsel                                  1.0.2-0.151     installed  -----
x11/xfs/xfs-utilities                         7.5-0.151       installed  -----
x11/xkill                                     1.0.2-0.151     installed  -----
x11/xlock                                     0.5.11-0.151    installed  -----
x11/xmag                                      1.0.3-0.151     installed  -----
x11/xvidtune                                  1.0.2-0.151     installed  -----

Quick Local Repository

Solaris 11 Express makes it pretty easy to set up a local copy of the repository. However, the full repository is several gigabytes large, so that in itself can be a deterrent, especially if you're just looking to install a couple of packages.

A common reason folks need access to a local repository is because their system is not connected to the Internet. In this example I will show you how to create a local repository, receive files into it, copy that repository to another machine, install it as a publisher and finally install the software. My real world use case for this blog was my need to install software from an internal Oracle repository to an machine not connected to the Oracle network. However, for this example I'll use the public repository as my example and the Tomcat web server as the software I want to make available to the remote machine.

Step 1: Create a Repository

The first step is to create the repository to host the packages. This repository will then be copied to the remote machine. This is easily accomplished with the pkgrepo command. Here I'm creating a repository off of my home directory:

bleonard@solaris:~$ pkgrepo create ~/repo

This basically creates a directory, repo, with a single file, pkg5.repository:

bleonard@solaris:~$ cat repo/pkg5.repository 
prefix = 

version = 4

version = 4

Note, there's no command to delete the repository. As it's a file based repository, just delete the directory:

bleonard@solaris:~$ rm -r repo

Step 2: Receive the Packages into the Repository

The next step is to receive the packages into the new repository. For this I will use the pkgrecv command. If the repository you want to receive the packages from is not configured as a publisher, you can also specify that on the command line. In addition, you can use the -r option to recursively grab all of the package's dependencies. Beware, however, that depending on the package, this may end up downloading most of the repository. For this example I'm going to grab the Apache Tomcat server, sans dependencies:

bleonard@solaris:~$ pkgrecv -s -d ~/repo web/java-servlet/tomcat web/java-servlet/tomcat/tomcat-examples
Processing packages for publisher solaris ...
Retrieving and evaluating 2 package(s)...                      
PROCESS                                         ITEMS     GET (MB)    SEND (MB)
Completed                                         2/2    10.4/10.4    13.5/13.5

Step 3: Copy the Repository to the Remote Machine

You could use your favorite approach for copying files. In this example, I'm going to use scp:

oracle@solaris:~$ scp -r bleonard@ repo
The authenticity of host ' (' can't be established.
RSA key fingerprint is f7:1d:2c:d7:24:e3:1c:57:53:0f:59:75:31:4a:0f:7d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '' (RSA) to the list of known hosts.
ndd: No such file or directory
pkg5.repository      100% |*****************************|    78       00:00    
19bd9e48c1f7ce9a2bb6 100% |*****************************|   541       00:00    
catalog.dependency.C 100% |*****************************|  1055       00:00    
6.0.28%2C5.11-0.151. 100% |*****************************| 45641       00:00    
6.0.28%2C5.11-0.151. 100% |*****************************| 71145       00:00    
6.0.20%2C5.11-0.133% 100% |*****************************|   419       00:00    

You can check the status of the new repo:

oracle@solaris:~$ pkgrepo info -s ~/repo
solaris   3        online           2011-06-07T20:38:51.166088Z

Note, searches against the repository will initially fail:

oracle@solaris:~$ pkg search -s file:///home/oracle/repo tomcat
pkg: Some repositories failed to respond appropriately:
file protocol error: code: 11 reason: Search temporarily unavailable.
Repository URL: 'file:///home/oracle/repo'. (happened 4 times

This can be corrected by refreshing the index:

oracle@solaris:~$ pkgrepo refresh -s ~/repo
Repository refresh initiated.

oracle@solaris:~$ pkg search -s file:///home/oracle/repo tomcat
INDEX           ACTION VALUE                                               PACKAGE
description     set    Tomcat Servlet/JSP Container                        pkg:/web/java-servlet/tomcat@6.0.28-
description     set    Tomcat Servlet/JSP Container - example applications pkg:/web/java-servlet/tomcat/tomcat-examples@6.0.28-
pkg.description set    Tomcat Servlet/JSP Container                        pkg:/web/java-servlet/tomcat@6.0.28-
pkg.description set    Tomcat Servlet/JSP Container - example applications pkg:/web/java-servlet/tomcat/tomcat-examples@6.0.28-
pkg.summary     set    Tomcat Servlet/JSP Container                        pkg:/web/java-servlet/tomcat@6.0.28-
pkg.summary     set    Tomcat Servlet/JSP Container - example applications pkg:/web/java-servlet/tomcat/tomcat-examples@6.0.28-
pkg.fmri        set    solaris/web/java-servlet/tomcat                     pkg:/web/java-servlet/tomcat@6.0.28-

To see all the packages in the repository:

oracle@solaris:~$ pkg search -p -s file:///home/oracle/repo '*'
PACKAGE                                                       PUBLISHER
pkg:/SUNWtcat-examples@6.0.20-0.133                           solaris
pkg:/web/java-servlet/tomcat/tomcat-examples@6.0.28- solaris
pkg:/web/java-servlet/tomcat@6.0.28-                 solaris

Step 4: Add the Repository as a Publisher

Since the packages are from the default 'solaris' repository, we're just going to add a new origin to the existing configured repository. We'll then remove the default origin of (since theoretically we can't connect to it anyway). If the packages were from a new or unconfigured repository, you would use the -p option instead:

oracle@solaris:~$ sudo pkg set-publisher -g file:///home/oracle/repo solaris

oracle@solaris:~$ sudo pkg set-publisher -G solaris

oracle@solaris:~$ pkg publisher
PUBLISHER                             TYPE     STATUS   URI
solaris                  (preferred)  origin   online   file:///home/oracle/repo/

Step 5: Install Software

oracle@solaris:~$ sudo pkg install tomcat tomcat-examples
               Packages to install:     2
           Create boot environment:    No
               Services to restart:     1
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  2/2     475/475      5.8/5.8

PHASE                                        ACTIONS
Install Phase                                610/610 

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

In this particular case, we'll start the Tomcat server:

oracle@solaris:~$ sudo svcadm enable tomcat6

Tuesday May 31, 2011

A D Script for Observing the Network - Take Two

About a year and a half ago I wrote about a nifty little D script I came across while working with the now defunct Crossbow Virtual Wire Demo Tool. However, the script stopped compiling somewhere between the release of OpenSolaris 2009.06 and Solaris 11 Express. 

Solaris 11 Express also included the addition of two new DTrace providers, TCP and UDP. These new providers make it possible to simplify the script and Solaris Systems Architect Andrew Gabriel did this.[Read More]

Wednesday May 25, 2011


Solaris 11 introduces a new command for administering IP interfaces - ipadm. ipadm is an upgrade over the venerable ifconfig and unlike ifconfig, changes made with ipadm persist across reboots. There's no longer a need to fuddle with configuration files.

ifconfig hasn't gone away, but I've been trying to wean myself off of it in favor of the new ipadm command.

An initial look at the usage command for ipadm shows a much cleaner interface that introduces a subcommand:

bleonard@solaris:~$ ipadm
usage:  ipadm <subcommand> <args> ...
	create-if	[-t] <interface>
	disable-if	-t <interface>
	enable-if	-t <interface>
	delete-if	<interface>
	show-if		[[-p] -o <field>,...] [<interface>]

	set-ifprop	[-t] -p <prop>=<value[,...]> -m <protocol> <interface>
	reset-ifprop	[-t] -p <prop> -m <protocol> <interface>
	show-ifprop	[[-c] -o <field>,...] [-p <prop>,...]
			[-m <protocol>] [interface]

	create-addr	[-t] {-T static <static_args> | -T dhcp <dhcp_args> |
			-T addrconf <addrconf_args>} <addrobj>
			static_args = <[-d] -a {local|remote}=addr[/prefixlen]>
			dhcp_args = <[-w <seconds> | forever]>
			addrconf_args = <[-i interface-id]
					[-p {stateful|stateless}={yes|no}]>
	down-addr	[-t] <addrobj>
	up-addr		[-t] <addrobj>
	disable-addr	-t <addrobj>
	enable-addr	-t <addrobj>
	refresh-addr	[-i] <addrobj>
	delete-addr	[-r] <addrobj>
	show-addr	[[-p] -o <field>,...] [<addrobj>]

	set-addrprop	[-t] -p <prop>=<value[,...]> <addrobj>
	reset-addrprop	[-t] -p <prop> <addrobj>
	show-addrprop	[[-c] -o <field>,...] [-p <prop>,...] <addrobj>

	set-prop	[-t] -p <prop>[+|-]=<value[,...]> <protocol>
	reset-prop	[-t] -p <prop> <protocol>
	show-prop	[[-c] -o <field>,...] [-p <prop>,...] [protocol]

Compare this with the overly complex ifconfig command:

bleonard@solaris:~$ ifconfig
usage: ifconfig <interface> | -a[ 4 | 6 | D ][ u | d ][ Z ]
	[ <addr_family> ]
	[ <address>[/<prefix_length>] [ <dest_address> ] ]
	[ set [ <address>][/<prefix_length>] ] [ <address>/<prefix_length>] ]
	[ destination <dest_address> ]
	[ addif <address>[/<prefix_length>]  [ <dest_address> ] ]
	[ removeif <address>[/<prefix_length>] ]
	[ arp | -arp ]
	[ auto-revarp ]
	[ broadcast <broad_addr> ]
	[ index <if_index> ]
	[ metric <n> ] [ mtu <n> ]
	[ netmask <mask> ]
	[ plumb ] [ unplumb ]
	[ preferred | -preferred ]
	[ private | -private ]
	[ local | -local ]
	[ router | -router ]
	[ subnet <subnet_address>]
	[ trailers | -trailers ]
	[ token <address>/<prefix_length> ]
	[ tsrc <tunnel_src_address> ]
	[ tdst <tunnel_dest_address> ]
	[ auth_algs <tunnel_AH_authentication_algorithm> ]
	[ encr_algs <tunnel_ESP_encryption_algorithm> ]
	[ encr_auth_algs <tunnel_ESP_authentication_algorithm> ]
	[ up ] [ down ]
	[ xmit | -xmit ]
	[ modlist ]
	[ modinsert <module_name@position> ]
	[ modremove <module_name@position> ]
	[ ipmp ]
	[ group <groupname>] | [ group ""]
	[ deprecated | -deprecated ]
	[ standby | -standby ]
	[ failover | -failover ]
	[ zone <zonename> | -zone ]
	[ usesrc <interface> ]
	[ all-zones ]
	ifconfig <interface> |  -a[ 4 | 6 | D ] [ u | d ]
	auto-dhcp | dhcp
	[ wait <time> | forever ]
	[ primary ]
	start | drop | ping | release | status | inform

However, one thing that initially tripped me up in my usage of ipadm was the introduction of the addrobj.  An addrobj is just a user supplied name for an address configured on a network interface that can later be used to reference that address. It's comprised of 2 parts, the network interface on which the address is configured and a string of your liking, separated by a slash. Generally the string you select would describe the address (v4dhcp, v6static, etc.):

addrobj = <network interface>/<any string>

So, for example:

addrobj = e1000g0/v4static

This addrobj is then used to reference the address. The ipadm subcommands that work with an an addrobj all have "addr" in their name. Likewise, the ipadm subcommands that work with an interface all have "if" in their name.

Typically, the two most common things I do with ifconfig are to configure addresses on my interfaces and list those addresses. Here are the ifconfig commands I use and their ipadm equivalents.

Note, if you plan on using ipadm to configure your network interfaces, disable network/nwam and enable network/physical:default:

bleonard@solaris:~$ svcs nwam physical:default
STATE          STIME    FMRI
disabled       11:32:38 svc:/network/physical:nwam
online         11:32:55 svc:/network/physical:default

Configuring An Interface

Old School

Bringing up an interface using ifconfig is pretty straight-forward. The big drawback is that the interface configuration will not persist across a reboot:

bleonard@solaris:~$ sudo ifconfig e1000g0 plumb up

New School

The new ipadm command is a little more esoteric, however, its settings do persist across a reboot:

bleonard@solaris:~$ sudo ipadm create-addr -T static -a e1000g0/v4static

This is the command that has taken me the longest to get used to because there appears to be so much going on here. The ifconfig command doesn't have the option flags (-T and -a in my example) - which makes the usage cleaner. For example, ifconfig infers I want a static address because I've passed it an IP address. The ipadm command is also longer than ifconfig because we're now assigning our address a name (e1000g1/v4static).

List My Interfaces

Old School

To see what IP addresses I have configured on my network interfaces I traditionally used:

bleonard@solaris:~$ ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
	inet netmask ff000000 
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
	inet netmask ffffff00 broadcast
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
	inet6 ::1/128 
e1000g0: flags=20002000840<RUNNING,MULTICAST,IPv6> mtu 1500 index 4
	inet6 ::/0 

The output is a bit messy, but I'm very accustomed to it.

New School

With ipadm:

bleonard@solaris:~$ ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok 
e1000g0/v4static  static   ok 
lo0/v6            static   ok           ::1/128

Note, if you see an addrobj that is listed as <interface>/?, that address was configured on the interface by an application that did not use libipadm APIs.

Here's a nice table comparing the ifconfig Command Options and ipadm Command Options.

Because I know you're curious, ipadm uses /etc/ipadm/ipadm.conf as its persistence store:

bleonard@solaris:~$ cat /etc/ipadm/ipadm.conf 
# CDDL License...
# Use the ipadm(1m) command to change the contents of this file.

So, that's my brief introduction to ipadm. Here are some other references that you may find useful:


The Observatory is a blog for users of Oracle Solaris. Tune in here for tips, tricks and more as we explore the Solaris operating system from Oracle.


« June 2016