ipsutil README ============== This is a utility to access IPS repositories, without using the Solaris 11 pkg binary Note that this is written for the 2nd revision format of repos, that support multiple publishers. It currently requires the auxiliary util, also found in this directory: parseipscatalog (must be compiled from parseipscatalog.c) Initial prototype goal of ipsutil: To allow speedy download of a named package, on any platform Currently, IPS is mostly limited to Solaris 11, due to choice of the IPS team to rely on certain versions of python and related libraries. However, this would seem to be entirely unneccessary for basic operation. This util will initially attempt to piggyback on existing cached catalog data in /var/pkg (from pkg(1))if it exists. No sense duplicating stuff. Initial prototype is written in ksh, of course. Future versions may be written in pure C, for speed purposes. BENEFITS =========== Can be used as NON-ROOT-USER Will by default, install files to $HOME/root/ USAGE ======= (after you install parseipscatalog) (first time only) $ ipsutil -p publisher -u url getcatalog $ ipsutil -p publisher install xyz if you dont specify publisher, will default to "solaris", or value of $PUBLISHER TIP FOR USE ============ ipsutil defaults to keeping its cache data and download space in $HOME/varpkg If your $HOME is NFS mounted, then set IPSUTIL_MAIN to some other, local fs Future tip: When and if this becomes a full-on replacement for IPS/pkg, then make sure IPSUTIL_MAIN is set to something under a "boot environment" fs. That way, it will stay in sync if you create multiple BEs NOTES AND WARNINGS: This is a very "quick-n-dirty" util, and initial prototype is very "unsafe". This should not be used for OS level packages at this point: only custom in-house "pure binary" packages. * It does not do snapshots * It does not interact with multiple zones (feature! :) * It does not do dependency handling (yet) * It does not track "packages already installed" (yet) * It does not do "uninstall" (yet) All it does is grab the binaries and install em. It should be noted that if a directory does not exist (probably because it is only defined in a dependency) ipsutil will at this time, SILENTLY ignore it and keep going. Why write ipsutil =================== Because the default pkg installer is HORRIBLY, HORRIBLY slow, even on a mostly idle machine with 8x3ghz cpus and 16 gigs ram !! Related to this: even though http://docs.oracle.com/cd/E23824_01/html/821-1460/z.pkginst.ov-14.html claims, "The pkg install command is used in the global zone to add the package to the global zone only. The package is not propagated to any other zones." it still decides it has to go mess with ALL child zones, even for a trivial package with no actions!! A trivial binaries-only package, with 32 files, thus takes multiple minutes to install using Solaris 11's pkg binary, on the above box with 5 zones. IMO, it should be trivially fast, but it is not. This is unacceptible. Also, I like portability. It's not nice for the IPS Solaris packages to be "locked away" in this odd little format that no-one else in the world speaks.