Updating To A Specific Development Build

I know - I'm boring. For my primary desktop I stick with the released version of OpenSolaris 2009.06 (snv_111b) and I live vicariously through all you cowboys out there that run along the edge. The development builds of OpenSolaris provide access to some great new features, but they also commonly bring with them some great new headaches. The price of riding along the edge is that sometimes you fall over it.

Fortunately, OpenSolaris' boot environments make it easy to get back on your feet.  However, that doesn't help you get any closer to that great new feature.

A common question on the various help aliases is how to upgrade to a specific development build of OpenSolaris? The pkg image-update command currently doesn't address this, but there's and enhancement request in to solve it: pkg image-update should provide the possibility to specify a build.

In that enhancement request you'll find a workaround, which I'll walk through in more detail here. In this example I'm going to upgrade from build 128 to 129, while the current development build is 131:

bleonard@opensolaris:~$ cat /etc/release 
                       OpenSolaris Development snv_128a X86
           Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                           Assembled 23 November 2009 

Step 1: Switch to the root role:

bleonard@opensolaris:~$ pfexec su

Step 2: Ensure IPS is current:

bleonard@opensolaris:~# pkg install SUNWipkg
No updates necessary for this image. 

Step 3: Create a boot environment for the build you plan to move to:

bleonard@opensolaris:~# beadm create snv_129

Step 4: Mount the new boot environment:

bleonard@opensolaris:~# beadm mount snv_129 /mnt

Step 5: Install the appropriate entire package to the new boot environment:

entire is a meta-package that has dependencies on all the other packages that make up the OpenSolaris distribution. So by installing entire you're effectively installing the 'entire' distribution:

bleonard@opensolaris:~# pkg contents -m entire | more
set name=pkg.fmri value=pkg://opensolaris.org/entire@0.5.11,5.11-0.128:20091125T051747Z
set name=variant.arch value=sparc value=i386
set name=pkg.summary value="Build 128 entire incorporation"
set name=description value="Build 128 entire incorporation"
set name=pkg.description value="This package constrains package versions to those for build 128.  WARNING: Proper system update and correct packag
e selection depend on the presence of this incorporation.  Removing this package will result in an unsupported system."
depend fmri=SUNWxorg-doc@0.5.11-0.128 type=incorporate
depend fmri=SUNWxprint-server@0.5.11-0.128 type=incorporate
depend fmri=SUNWxorg-cfg@0.5.11-0.128 type=incorporate
depend fmri=SUNWxorg-devel-docs@0.5.11-0.128 type=incorporate
depend fmri=SUNWvscankr@0.5.11-0.128 type=incorporate

You can use pkg list to see the versions of entire that are available:

bleonard@opensolaris:~# pkg list -avf entire
FMRI                                                             STATE      UFOXI
pkg://opensolaris.org/entire@0.5.11,5.11-0.131:20100115T044400Z  known      -----
pkg://opensolaris.org/entire@0.5.11,5.11-0.130:20091219T044839Z  known      u----
pkg://opensolaris.org/entire@0.5.11,5.11-0.129:20091205T134302Z  known      u----
pkg://opensolaris.org/entire@0.5.11,5.11-0.128:20091125T051747Z  installed  u----
pkg://opensolaris.org/entire@0.5.11,5.11-0.127:20091111T131831Z  known      u----

Therefore, to move to build 129, install the appropriate entire package to the newly mounted boot environment:

bleonard@opensolaris:~# pkg -R /mnt install entire@0.5.11,5.11-0.129
DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                              624/624 10949/10949  292.4/292.4 

PHASE                                        ACTIONS
Removal Phase                              6199/6199 
Install Phase                              7503/7503 
Update Phase                             14589/14589 
PHASE                                          ITEMS
Reading Existing Index                           8/8 
Indexing Packages                            624/624 
Optimizing Index...
PHASE                                          ITEMS
Indexing Packages                            624/624 
Deleting content cache

Step 6: Update the boot archive to use the build installed to /mnt:

bleonard@opensolaris:~# bootadm update-archive -R /mnt
updating /mnt//platform/i86pc/boot_archive
updating /mnt//platform/i86pc/amd64/boot_archive

Step 7: Unmount the new boot environment:

 bleonard@opensolaris:~# beadm unmount snv_129

Step 8: Activate the new boot environment:

bleonard@opensolaris:~# beadm activate snv_129

Step 9: Reboot:

bleonard@opensolaris:~# reboot

Step 10: Enjoy.

bleonard@opensolaris:~$ cat /etc/release
                       OpenSolaris Development snv_129 X86
           Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                           Assembled 04 December 2009

Just as an FYI, this question and others about packaging are answered in the packaging FAQ:


Posted by Shawn Walker on January 29, 2010 at 09:51 AM GMT #

Nice, although that FAQ could use some formatting. For example, the update steps appear as one long string. I'd do it myself if I had permission. Speaking of which, it would be nice if the general community could contribute to the FAQ.

Posted by Brian Leonard on January 29, 2010 at 02:28 PM GMT #

Exellent blog ! Thanks Brian.

Why don't we integrate such usefull feature (upgrade to a specific build) directly in IPS ?

Posted by Karim on February 01, 2010 at 01:16 AM GMT #

Well, as I said above, there is an enhancement request in to provide this feature (http://defect.opensolaris.org/bz/show_bug.cgi?id=3436 ). It's been accepted, but not yet scheduled.

Posted by Brian Leonard on February 01, 2010 at 05:10 AM GMT #

For some reason I keep getting an error on the install step. (pkg -R /mnt install entire@0.5.11,5.11-0.129)

I get the following:

pkg: The following pattern(s) did not match any packages in the current catalog.

Any ideas?

Posted by David on February 01, 2010 at 05:45 AM GMT #

David, maybe. What build are you trying to upgrade from?

Posted by Brian Leonard on February 01, 2010 at 07:30 AM GMT #

I am trying to upgrade from OpenSolaris 9.06 (snv_111b) running inside of VirtualBox on a OS X host.

Posted by David on February 01, 2010 at 10:56 AM GMT #

Hmm. For some reason it started working.

Posted by David on February 01, 2010 at 02:10 PM GMT #

Thanks, Brian. Useful post. I had an issue, though:

> pfexec pkg list -avf entire

failed on my snv_130 box:

Transfer from 'http://ipkg.sfbay.sun.com/pending' failed: Malformed action in package 'pkg://Pending/Acme-Dot@1.10,5.11-0.101:20081216T234435Z' at position: 44:
set name=info.upstream value="- Curtis "Ovid" Poe <ovid@cpan.org>"
\^. (happened 4 times)

Posted by DagWanvik on February 02, 2010 at 12:54 PM GMT #

Hi Brian, This is a wonderful post, I follow your procedure to upgrade my opensolaris 6/09 to latest build 132 , then I find that any command's ouput will generate several tap/spaces at the begining of the newline when I type the command inside gnome-termial. I can not read the commad's output, it's totally a mass.

Then I think maybe it's the bug of build 132, so I do it from beginning: reinstall 6/09 and set repository to dev, then as your post install build 128 as a new BE.
but I encounter the same issue. It's really make me mad. do you have any suggestion?

Posted by Money on February 12, 2010 at 05:12 AM GMT #

Money, now you know why I stick with 2009.06 :-).

First of all, there's no need to re-install 2009.06. Just re-activate the 2009.06 boot environment:

$ pfexec beadm activate <2009.06 beName>
$ pfexec reboot

I would then file a bug at http://defect.opensolaris.org . When the OpenSolaris engineers ask you additional questions, you can then boot back into the build 32 boot environment to answer them.


Posted by Brian Leonard on February 12, 2010 at 06:22 AM GMT #

Thank you Brian, you are so nice.
how foolish I even forget to reactiate 6/09 BE!
I have ask this question on freenode's #opensolaris IRC. someone told me this maybe the bug :

I will try this workaround when I come nearby the box, anyway , Thank you

Posted by Money on February 14, 2010 at 08:25 PM GMT #

Hi mate, thanks for the post. I'm a n00b running 111b straight off the 2009.06 CD and i want to go to 129 to get zfs dedupe. I followed your instructions OK, but the newest entire i can see via 'pkg list -avf entire' is pkg:/entire@0.5.11,5.11-0.111:20090518T052643Z
so naturally, 'pkg -R /mnt install entire@0.5.11,5.11-0.129' doesn't work.

I figured i needed to be on the development repositories, so after a bit of googling i did:
'pkg set-authority -O http://pkg.opensolaris.org/dev/ opensolaris.dev' then 'pkg set-authority -P opensolaris.dev' now via pkg list i can see pkg:/entire@0.5.11,5.11-0.132:20100130T123058Z

great, but when i try your 'pkg -R /mnt install entire@0.5.11,5.11-0.129' i get:
Creating Plan \\
pkg: The following pattern(s) did not match any packages in the current catalog.
Try relaxing the pattern, refreshing and/or examining the catalogs:
any ideas what I'm doing wrong?

Also, where can i check to see when the next full release (not dev) of open solaris will be available?

Posted by Hoolio Wobbits on February 16, 2010 at 08:56 PM GMT #


I believe you've stumbled across some outdated information on setting up the development repository, which is causing your problem. Try the following and let me know if it helps: http://blogs.sun.com/observatory/en_US/entry/correctly_setting_up_the_development (there's also a link in there to the schedule).

Posted by Brian Leonard on February 17, 2010 at 04:17 PM GMT #

thanks for this detailed howto.

Currently I run Opensolaris snv_111b, but I want to move to a later build like snv_130b.

My PC has a NIC VIA Tech. VT6102 (Rhine-II) for which I had to install the driver via-rhine-ethernet-1.42.pkg by Joost Mulders. He told me that from snv_115b on the driver is already included in the build.
So, do I have to upgrade and then remove the driver?
Thanks in advance for your help.

Posted by Fliux on May 18, 2010 at 09:11 AM GMT #

Well, you certainly won't be able to update if you remove the driver first :-).

After updating, you may not have to do anything. But if you want to try switching to the bundled driver, create another boot environment first, so you can revert to that if things go south.

Posted by Brian Leonard on May 18, 2010 at 09:41 AM GMT #

Hey Brian, thanks!
Because of your guide I'm now on build snv_130.
I'm checking this environment...

First, I had a lot of warning during the upgrade:
------------------ Some Output -----------------------
Warning - directory usr/X11/lib/X11/fonts/misc not empty - contents preserved in /mnt/var/pkg/lost+found/usr/X11/lib/X11/fonts/misc-20100518T185425Z

Warning - directory usr/X11/lib/X11/fonts/encodings/large not empty - contents preserved in /mnt/var/pkg/lost+found/usr/X11/lib/X11/fonts/encodings/large-20100518T185425Z

Warning - directory usr/X11/lib/X11/fonts/encodings not empty - contents preserved in /mnt/var/pkg/lost+found/usr/X11/lib/X11/fonts/encodings-20100518T185425Z

Warning - .........
------------------ Some Output End -------------------

Then, after reboot, but before GUI appears, there are 2 dialog boxes on a black screen:

1st dialog box says: "Couldn't update ICE authority file /. ICEauthority"

2nd dialog box (natively in Spanish) says: "There's a problem with the server configuration. (/usr/lib/gconf-sanity-check-2 with state 256)"

Also, Package Manager can't connect to blastwave.org repository.
A dialog box says:
"0/1 catalogs successfully updated:
http://blastwave.network.com:10000/: Framework error: code: 7 reason: Failed connect to blastwave.network.com:10000; Connection refused
URL:'http://blastwave.network.com:10000/catalog/0/'. (happened 4 times)"

I would really appreciate your help bits.
Once again, thanks in advance.

Posted by Fliux on May 19, 2010 at 09:36 AM GMT #

Hello out there,

Any suggestion on my preceding post?

My build can't connect to Blastwave

felixsal@SPI-instala:~$ pfexec pkg install IPSlibxine IPSxineui
pkg: 4/5 updated correctly:

Framework error: code: 7 reason: Failed connect to blastwave.network.com:10000; Connection refused
URL: 'http://blastwave.network.com:10000/catalog/0/'. (happened 4 times)

If any, thanks in advance.

Posted by Fliux on June 12, 2010 at 10:53 AM GMT #

@Fliux - the Blastwave IPS repository has been taken down, so it has nothing to do w/ your build. See the following post from Dennis Clarke for some insight: http://opensolaris.org/jive/thread.jspa?threadID=131054&tstart=0

Posted by Brian Leonard on June 24, 2010 at 07:25 AM GMT #

pkg -R /mnt install entire@0.5.11,5.11-0.134

remains at "Creating plan -/" for long. Is that normal?

Posted by Sam on June 26, 2010 at 03:04 AM GMT #

@Fliux, with regards to the "Couldn't update ICE authority file /. ICEauthority" message, it has been addressed by this bug: http://defect.opensolaris.org/bz/show_bug.cgi?id=13534 .

The workaround is in the release notes ( http://opensolaris.org/jive/thread.jspa?threadID=120631&tstart=0 ). Specifically, they state:

There is a problem with the configuration server
(/usr/lib/gconf-sanity-check-2 exited with status 256)

Work-around: Clicking on the "Close" button for each dialog box will permit one to login normally. Once logged in, enter the following command to correct the home directory for the "gdm" user

user@host$ pfexec usermod -d /var/lib/gdm gdm

Posted by Brian Leonard on June 28, 2010 at 08:45 AM GMT #

Thanks a lot Sir Leonard.

Posted by Fliux on August 10, 2010 at 09:05 AM GMT #

I want to comment that I updated to snv_130 and almost everything is fine, but since then, I can not install or update any package anymore.

I tried to do that via GUI Package Manager and via command line and the result is the same.

I want to ask you: What could be the problem?

--------------- Some output ------------------------
pc@here:~$ pkg publisher
opensolaris.org (preferred) origen online http://pkg.opensolaris.org/dev/
contrib.opensolaris.org origen online http://pkg.opensolaris.org/contrib/
ips.homeunix.com origen online http://ips.homeunix.com:10906/
sunfreeware origen online http://pkg.sunfreeware.com:9000/

pc@here:~$ pfexec pkg install gftp
Completed 1332/1332 101080/101080 904.6/904.6

The requested operation would affect files that cannot be modified in the Live Image.
Please retry this operation on an alternate boot environment.
(pkg: La solicitud de operación "install" puede afectar archivos que no deben de ser modificados en una imagen activa.
Por favor intente esta operación en un ambiente de arranque arternativo.)
------------- End some output -----------------------

Thanks in advance for any suggestion or help.

Posted by Fliux on October 08, 2010 at 09:00 AM GMT #

Fliux, I think you may be hitting this bug:


Run 'pkg list -v' and uninstall any packages from the contrib repository.


Posted by W Brian Leonard on October 11, 2010 at 05:35 AM GMT #

Thanks Brian.
Now it's possible to install packages.


Posted by Fliux on November 19, 2010 at 06:37 AM GMT #

Post a Comment:
  • HTML Syntax: NOT allowed

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.


« July 2016