Child pages
  • Troubleshooting image-update failures
Skip to end of metadata
Go to start of metadata

"No updates available for this image"

A common error is that upgrades will fail with the message:

ERROR
No updates available for this image.

Before anything try this (if you think your pkg cache is messed):

# pfexec pkg refresh --full

Then try and update again!

If that does not work this failure is usually caused by package dependencies which can't be satisfied by the updated packages. Often, this is because of packages from third-party repositories.

The following can be run to help determine why image-update does nothing OR fails to update as many packages as you expect:

pfexec pkg install --no-refresh -nv \
 pkg:/entire@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/cde/cde-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/gfx/gfx-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/jdmk/jdmk-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/sic_team/sic_team-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/cacao/cacao-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/cns/cns-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/l10n/l10n-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/xvm/xvm-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/dbtg/dbtg-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/gnome_l10n/gnome_l10n-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/sfw/sfw-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/hcts/hcts-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/man/man-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/sunpro/sunpro-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/gnome/gnome-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/admin/admin-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/SunVTS/SunVTS-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/nspg/nspg-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/nvidia/nvidia-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/osnet/osnet-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/solaris_re/solaris_re-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/install/install-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/X/X-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/vpanels/vpanels-incorporation@0.5.11,5.11-0.151.1.8 \
 pkg:/consolidation/ips/ips-incorporation@0.5.11,5.11-0.151.1.8 \
 > pkg-debug.log 2>&1

You are looking for two strings in the output:

  1. "FAIL"
  2. "OBSOLETE"

An existing package which you had installed and working with your current version of the OS, but which depends on a package which has been deleted or renamed since your install, might look like this:

incorporate: SUNWphp52-pgsql@5.2.12-0.146

Requires one of:   pkg://opensolaris.org/SUNWphp52-pgsql@5.2.12,5.11-0.146:20100813T052503Z   (OBSOLETE and incompatible with installed pkgs:   pkg://opensolaris.org/amp-dev@0.5.11,5.11-0.111:20090508T164640Z

Removing pkg://opensolaris.org/amp-dev will get past this particular error – but there may be others in your output.

Certificate Issues

I was getting the following error when attempting to do an image-update.

$ pfexec pkg image-update -nv
Creating Plan |Traceback (most recent call last):
  File "/usr/bin/pkg", line 4225, in handle_errors
    __ret = func(*args, **kwargs)
  File "/usr/bin/pkg", line 4204, in main_func
    return func(img, pargs)
  File "/usr/bin/pkg", line 1549, in update
    verbose)
  File "/usr/bin/pkg", line 1546, in update
    update_index=update_index)
  File "/usr/lib/python2.6/vendor-packages/pkg/client/api.py", line 629, in plan_update_all
    log_op_end=[apx.IpkgOutOfDateException])
  File "/usr/lib/python2.6/vendor-packages/pkg/client/api.py", line 601, in plan_update_all
    progtrack=self.__progresstracker):
  File "/usr/lib/python2.6/vendor-packages/pkg/client/image.py", line 2686, in ipkg_is_up_to_date
    check_cancelation, noexecute)
  File "/usr/lib/python2.6/vendor-packages/pkg/client/image.py", line 2605, in make_install_plan
    noexecute, pkg_list)
  File "/usr/lib/python2.6/vendor-packages/pkg/client/image.py", line 2591, in __make_plan_common
    self.__call_imageplan_evaluate(ip)
  File "/usr/lib/python2.6/vendor-packages/pkg/client/image.py", line 1206, in __call_imageplan_evaluate
    ip.evaluate()
  File "/usr/lib/python2.6/vendor-packages/pkg/client/imageplan.py", line 673, in evaluate
    pp.evaluate(self.__old_excludes, self.__new_excludes)
  File "/usr/lib/python2.6/vendor-packages/pkg/client/pkgplan.py", line 153, in evaluate
    self.image.trust_anchors)
  File "/usr/lib/python2.6/vendor-packages/pkg/client/image.py", line 333, in trust_anchors
    trusted_ca = m2.X509.load_cert(pth)
  File "/usr/lib/python2.6/vendor-packages/M2Crypto/X509.py", line 611, in load_cert
    return load_cert_bio(bio)
  File "/usr/lib/python2.6/vendor-packages/M2Crypto/X509.py", line 639, in load_cert_bio
    raise X509Error(Err.get_error())
X509Error: 1:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: CERTIFICATE



pkg: This is an internal error.  Please let the developers know about this
problem by filing a bug at http://defect.opensolaris.org and including the
above traceback and this message.  The version of pkg(5) is '052adf36c3f4+'.

I got this error for any pkg command that connected to a repository as well.

I had long ago removed the opensolaris.org repository, which is the only repo I know of that used SSL keys.

It turned out I had a corrupted certificate in /etc/certs/CA/. Once I removed the corrupt cert, pkg image-update worked without issues.

The error returned is a bit vague and confusing. You don't expect it to try to do anything with certs since the openindiana.org repo doesn't use SSL. Keep in mind that pkg will read in all certs in /etc/cert/CA regardless of what repo you're using.

Python library issues, pkg not working in local zones

The bug report https://www.illumos.org/issues/2692 describes a situation which arose in oi_151a3 and was fixed in oi_151a4, that package dependencies for pkg itself got broken, and if local zones were installed (or even updated to oi_151a4 via zoneadm attach -u) – their pkg commands did not work with an error like this:

# pkg install sudo
Traceback (most recent call last):
  File "/usr/bin/pkg", line 45, in <module>
    import pkg.client.api as api
  File "/usr/lib/python2.6/vendor-packages/pkg/client/api.py", line 34, in <module>
    import pkg.client.image as image
  File "/usr/lib/python2.6/vendor-packages/pkg/client/image.py", line 31, in <module>
    import pkg.client.imageconfig           as imageconfig
  File "/usr/lib/python2.6/vendor-packages/pkg/client/imageconfig.py", line 16, in <module>
    import pkg.client.publisher as publisher
  File "/usr/lib/python2.6/vendor-packages/pkg/client/publisher.py", line 24, in <module>
    import pycurl
ImportError: ld.so.1: isapython2.6: fatal: libcurl.so.3: open failed: No such file or directory

The workaround is to copy libcurl* and libidn* from another box/zone (perhaps from the global zone) to temporarily fix pkg, and then do pkg install web/curl to fix the core issue.

Alternately, if the host GZ has been updated to oi_151a4, an update or image-update for the local zone issued from the GZ should fix things:

# zoneadm -z zone1 halt
# zoneadm -z zone1 detach  
# zoneadm -z zone1 attach -u
# pkg -R /zones/build/zone1/root update -v

This problem remains actual despite the presence of fixes delivered in updates,as well as known workarounds, because an oi_151a3 ISO/USB distribution is out there, and it is possible to have newly installed systems containing and hitting this bug...

  • No labels