If you are currently running OpenIndiana oi_147 or oi_148, first, verify you have the correct publishers set:

# pfexec pkg publisher
PUBLISHER                             TYPE     STATUS   URI
openindiana.org          (preferred)  origin   online   http://pkg.openindiana.org/dev/

If your openindiana.org publisher is set to a different URI, for example http://pkg.openindiana.org/dev-il/ (our release candidate branch), you can correct this with:

# pfexec pkg set-publisher -O http://pkg.openindiana.org/dev/ openindiana.org

If you currently have the opensolaris.org publisher set, we would highly recommend unsetting it by running:

# pfexec pkg unset-publisher opensolaris.org

You may want to update your packages fully in case of a bad pkg cache:

# pfexec pkg refresh --full

You can now identify what will be upgraded by issuing the command:

# pfexec pkg image-update -nv

The -n flag specifies to perform no action (i.e. perform a trial run), and the -v flag is the verbose option, to provide additional output.

If you are satisfied with the actions to be taken, you can perform the upgrade by typing:

# pfexec pkg image-update -v

You may want to consider also passing the "--be-name" flag to give the new boot environment created a more memorable name, such as oi_151a.

NOTE: After booting into the new BE, for servers running the in-kernel CIFS service (svc:/network/smb/server:default) in conjunction with AD, the service may fail to connect to your Active Directory domain controller running Windows Server 2008 R2, and thus clients will not be able to connect to network shares.

The solution is to set the lmauthlevel to 4:

sharectl set -p lmauth_level=4 smb

(previously on b148 and lower this needed to be set to level 2 to work correctly with Win2K8R2)