Software Packages for Solaris 
There are several famous free software archives for Solaris: 
 
  pkgsrc 
pkgsrc is my favorite package manager for Solaris 10, because it is very flexible, well maintained and highly customable. And you can use the same package manager on most other operating systems.
  Download 
Download the lastest tar from 
ftp://ftp.netbsd.org/pub/pkgsrc/. For Solaris 10 it is a good idea to choose the lastest stable quartal version over the current  i.e. 2007Q3, 2007Q4 ...
cd /usr
wget ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2008Q2/pkgsrc-2008Q2.tar.gz
gtar xfz pkgsrc-2008Q2.tar.gz
cd pkgsrc/bootstrap
Read the README.Solaris and choose between 
gcc and 
SunStudio and between 32 Bit and 64 Bit. gcc 32 Bit is suitable in most cases. I had trouble with 
OpenSSL and 
OpenLDAP and switched to 
SunStudio cc 32 Bit.
  
  
setenv CC /opt/SUNWspro/bin/cc
setenv SUNWSPROBASE /opt/SUNWspro
  
CC=/opt/SUNWspro/bin/cc
SUNWSPROBASE=/opt/SUNWspro
export CC SUNWSPROBASE
  bootstrap 
for both gcc and cc:
./bootstrap
[... lot of output ...]
a more sophisticat version
./bootstrap --compiler gcc --pkgdbdir /opt/pkg/db/pkg --prefix /opt/pkg --sysconfdir /opt/pkg/etc --workdir=/tmp/work --varbase /var/pkg
[... lot of output ...]
  Path to library 
If you get an error about a library not being found, remember to use 
crle -u -l libpath to add it to the link path.
With 
crle you get the current PATH.
Links: 
 
  install a package 
Now you can choose a package by changing into that directory:
rehash
cd /usr/pkgsrc/editor/vim
bmake install
  hints 
  include ccs in your PATH. 
set your PATH to 
/usr/sfw/bin:/usr/ccs/bin:/usr/bin:/usr/sbin befor you bootstrap pkgsrc, so that the libtool find 
/usr/ccs/bin/ar
if you miss that you get problem with libiconv
gcc -shared -Wl,-h -Wl,libcharset.so.1 -o .libs/libcharset.so.1.0.0
.libs/localcharset.o .libs/relocatable.o
-L/opt/pkgsrc/converters/libiconv/work/.buildlink/lib -lc
-Wl,-R/usr/pkg/lib
(cd .libs && rm -f libcharset.so.1 && ln -s libcharset.so.1.0.0 libcharset.so.1)
(cd .libs && rm -f libcharset.so && ln -s libcharset.so.1.0.0 libcharset.so)
false cru .libs/libcharset.a  localcharset.o relocatable.o
If you use zones it is a good idea to put 
/opt/pkg in a extra ZFS-filesystem. So you can decide later on if like to import the 
/opt/pkg from the global zone or to manage the packages in the zone itself. Or you can make ZFS-snapshots before you make an upgrade.
tar cvfp pkg.tar pkg
mv pkg pkg.old
zfs create -o mountpoint=/opt/pkg rpool/ROOT/s10x_u6wos_07b/pkg
zfs list
tar cvfp pkg.tar pkg
example 
Solaris mk.conf
  update your packages 
 
-  pkg_chk 
-  pkg_rolling-replace -suvX bmake,bootstrap-mk-files,pax,pkg_install
-  pkg_rolling-replace -rsuvX bmake,bootstrap-mk-files,pax,pkg_install
Links: 
 
  update bmake and bootstrap-mk-files 
... that are not upgrade-able with the methods above 
Whenever the bmake and bootstrap-mk-files packages need updating, the automated process fails because both of those packages are needed to do the update ==> chicken-and-egg problem.
cd pkgtools/bootstrap-mk-files
bmake USE_DESTDIR=yes package
pkg_add -uu /usr/pkgsrc/packages/All/bootstrap-mk-files...tgz
cd ../../devel/bmake
bmake USE_DESTDIR=yes package
pkg_add -uu /usr/pkgsrc/packages/All/bmake...tgz
... 
same for install-sh, pdksh, pkg_install
Maybe you have to force the installation for pkg_install with 
pkg_add -f -uu
Check the database afterwards with 
pkg_admin check
  Badly formated man pages 
Man pages in pkgsrc are sometimes badly formated under Solaris. Have a look at 
FormattedManPages
  get rid of old sfw libraries 
If you have used the GCC from /usr/sfw so far, the packages built in advance of GCC contain references to /usr/sfw/lib/libgcc_s.so. Among these packages are libiconv and gettext. As a consequence, every subsequent package you compile with the pkgsrc GCC that uses these libraries may contain references to this libgcc and the one from the pgksrc GCC. This is ugly at best, but may cause real trouble at worst. To remove all traces of the wrong libgcc, reinstall (i.e. bmake replace) the packages converter/libiconv, devel/gettext-lib and devel/gettext-tools.
ldd /opt/pkg/bin/* | grep sfw
You can also check your packages with
pkg_admin check
pkg_admin rebuild
  packages