This is ridiculous

I've complained about Blastwave before, but this is just terrible.

Trying to install VLC on a Solaris 10 machine using Blastwave. Says that CSWcommon is out of date, so please run pkg-get -u. As this always includes thousands of prompts that look like this:

The following package is currently installed:
CSWoldapclient  openldap_client - OpenLDAP client executables (oldapclient)
               (sparc) 2.3.31,REV=2007.01.07

Do you want to remove this package? [y,n,?,q] y

## Removing installed package instance <CSWoldapclient>
## Verifying package <CSWoldapclient> dependencies in global zone
The <CSWoldap> package depends on the package currently
being removed.
Dependency checking failed.

Do you want to continue with the removal of this package [y,n,?,q]

...I look around for a way to automate this. And surprise, there is, and I've missed it the whole time. My bad. So: pkg-get -f upgrade it is, then.

It runs for 45 minutes and stops with an error about CSWcommon:

Current administration requires that a unique instance of the
<CSWcommon> package be created.  However, the maximum number of
instances of the package which may be supported at one time on the
same system has already been met.

Hm, sez I. That's strange, but maybe that's what it's like for package managers that suck. pkg-get -r common and pkg-get -i common, and I'm ready for the upgrade again.

Somehow in the process I managed to remove the pkg_get package, which (surprise) contains the pkg-get command. Fortunately I have a backup copy around and use that to install pkg_get. Life continues.

And it's not for another 15 minutes after that that I notice that the package manager is going in loops. It keeps going over the same packages again and again, giving the same errror about unique instances each time. A quick search turns up this link, which tells me I'm a fool for believing the help offered by pkg-get:

$ pkg-get -h
pkg-get,   by Philip Brown ,
 (Internal SCCS code revision 3.6)
Originally from

pkg-get is used to install free software packages
Need one of 'install', 'upgrade', 'available','compare'
  '-i|install'   installs a package
  '-u|upgrade'   upgrades already installed packages if possible
  '-a|available' lists the available packages in the catalog
  '-c|compare'   shows installed package versions vs available
  '-l|list'      shows installed packages by software name only

Optional modifiers:
  '-d|download'  just download the package, not install
  '-D|describe'  describe available packages, or search for one
  '-U|updatecatalog'   updates download site inventory
  '-S|sync'      Makes update mode sync to version on mirror site
  '-f'           dont ask any questions: force default pkgadd behaviour
         Normally used with an override admin file
         See /var/pkg-get/admin-fullauto
  '-s ftp://site/dir'  temporarily override site to get from

and that the correct way to do what I want is to run:

true | sudo pkg-get upgrade

I admit that I neither knew nor sought to find out what "default pkgadd behaviour" would be, so that's my fault. I admit that I was the one who borked things by removing the pkg-get command. I admit that I did not think to record all of this with script, so at the moment I'm going on scribbled notes and memory. This is not a bug report, which is what I really should be writing. These are all things I did wrong or badly.

But isn't this what apt has fixed? On its worst day, I've never had to set up yes to be the drinking bird that would let me get stuff done. And — when all was done, and I got to go back to installing VLC — I've never had it depend on gcc.

Arghh. Arghh arghh arghh.