Determining installed packages on Solaris 11

If we need to determine which packages have been added to a solaris 11 machine, say because someone is asking for documentation, or you need to build a similar machine/zone, we can use the pkg command's built in history function:

Show everything, from all time:

# pkg history -l

Show which base group is installed (small-server, large-server or desktop groups)

# pkg list group/system* NAME (PUBLISHER)                                  VERSION                    IFO 
group/system/solaris-small-server                 0.5.11-0.175.0.0.0.2.2576  i--

Show just install operations:

# pkg history -Ho start,command | grep "pkg install" (long output removed) 

Now verify these are all still installed (the inverse grep removes the zone install time operations)

# pkg list -Hs pkg history -Ho command |grep install |sed s/.*install//  | grep -v -- -z  
developer/build/ant                                     Apache Ant 
developer/build/make                                    A utility for managing compilations. 
diagnostic/top                                          provides a rolling display of top cpu using processes 
editor/nano                                             A small text editor 
terminal/xterm                                          xterm - terminal emulator for X 
x11/diagnostic/x11-info-clients                         X Window System diagnostic and information display clients 
x11/library/libxp                                       libXp - X Print Client Library 
x11/session/xauth                                       xauth - X authority file utility 
x11/xclock                                              xclock - analog / digital clock for X

Then store this in your documentation, or pipe it to awk '{print $1}', or whatever tool of choice to grab the first column.