Package updates and patching
As mentioned in the first half of this chapter, patching as a separate process no longer exists. To patch, you must upgrade to a newer version of the software package in question.
At a simple level, to update all packages on your system, if newer versions are available on your configured repository, you can just run the following command:
pkg update
If you are unsure whether you need to run an update or would like to know which packages need an update first, you can use the following command:
pkg list -u
If you want to downgrade a package, or similarly, do not want to upgrade it to the latest version, you can also call the update subcommand with a specific version of a package if it is available, for example:
pkg update somepkg@1.2.3
That being said, Solaris packages are usually locked into a particular set of revisions via a meta package called entire. It is normally not possible to manually install a package from a newer release of Solaris 11: one must first explicitly upgrade to a newer entire package. To see the available versions, use the following command
pkgrepo list -s (repo_url) entire
If you have chosen to previously set up your own repository for Solaris, (as mentioned in the first part of this chapter, by downloading your own Solaris Repository Image from Oracle), you might add your own local repository. As pkg update
and pkg install
will by default install the latest version of a package, if it finds that multiple are available, there is not much risk involved in having this available as a
fallback.
Here's an example of configuring your own repository to be the primary source for Solaris packages, with the Oracle site as a backup:
pkg set-publisher -g http://your.site solaris pkg set-publisher -m http://pkg.oracle.com/solaris/release solaris
Gaining access to the latest versions of Solaris packages (that is, patch updates) requires a support contract to get access to a private repository. Full details for this can be found at: