Which version of Sun Studio do I have installed?
Tags: Developer Tools - SolarisRecipes for supported packaging formats
Sun Studio is available on three different packaging systems. Here are some examples that show you how to get information about the Sun Studio packages on each kind of system.
- IPS packaging system – on OpenSolaris
- SYSV packages – on Solaris 10
- RPMs – on SuSE and RedHat Linux
If you want to know what version of a Studio component you’re using, the steps are shown below. The compiler or tool you’re interested in might be on your search path (you can find the location with “which cc”) or you might already know the full path. Once you have the full path, here are the things you might want to find out:
- Find out the name of the package containing that binary.
- Dump out information about that package.
- Optionally look for other packages from the same Studio release, to see what else is installed.
Generally the multiple packages that make up Sun Studio will use a similar naming convention. In the currently available releases, these package names are cryptic.
Sun Studio 12 update 1 installed on Solaris 10
What version is built into the binary?
% /opt/sunstudio12.1/bin/cc -V cc: Sun C 5.10 SunOS_sparc 2009/06/03 usage: cc [ options] files. Use 'cc -flags' for details
Which package is that binary in?
% pkgchk -l -p '/opt/sunstudio12.1/bin/cc' NOTE: Couldn't lock the package database. Pathname: /opt/sunstudio12.1/bin/cc Type: symbolic link Source of link: ../prod/bin/cc Referenced by the following packages: SPROcc Current status: installed
What other packages are installed?
% pkginfo | grep SPRO application SPROatd Sun Studio 12 update 1 Advanced Tools Development Module application SPROcc Sun Studio 12 update 1 C Compiler application SPROcmpl Sun Studio 12 update 1 C++ Complex Library application SPROcpl Sun Studio 12 update 1 C++ Compiler application SPROcplx Sun Studio 12 update 1 C++ 64-bit Libraries ...
Sun Studio 12 update 1 installed on OpenSolaris
What version is built into the binary?
% /opt/sunstudio12.1/bin/cc -V cc: Sun C 5.10 SunOS_i386 2009/06/03 usage: cc [ options] files. Use 'cc -flags' for details% /opt/sunstudio12.1/bin/cc -V
Which package is that binary in?
% pkg search -lp /opt/sunstudio12.1/bin/cc PACKAGE PUBLISHER pkg:/developer/sunstudio12u1@12.1.1-0.111
What other packages are installed?
% pkg list | grep -i studio developer/sunstudio12u1 12.1.1-0.111 installed -----
Sun Studio 12 update 1 installed on SuSE 11 Linux
What version is built into the binary?
% /opt/sun/sunstudio12.1/bin/cc -V cc: Sun C 5.10 Linux_i386 2009/06/03 usage: cc [ options] files. Use 'cc -flags' for details
Which package is that binary in?
% rpm -qf /opt/sun/sunstudio12.1/bin/cc sun-cc-12.1-1
What other packages are installed?
% rpm -qa | grep sun- | head sun-lang-12.1-1 sun-idext-12.1-1 sun-mr3m-12.1-1 sun-prfan-12.1-1 sun-stl4h-12.1-1 sun-cplx-12.1-1 sun-dbxx-12.1-1 sun-pls-12.1-1 sun-dwrfs-12.1-1 sun-rtmx-12.1-1 ...
Notes
The excessively terse naming convention is because of the ancient restrictions in AT&T System V UNIX that limited package names to 9 characters. Sun also made an early decision to prefix packages names with 4 letters to mark the part of the company that was releasing the packages. In all fairness, Sun was trying to invent a scheme where outside software vendors could reasonably choose package names without accidentally conflicting with any of the Sun packages. That’s difficult to do in only 9 characters. On OpenSolaris, you can see that we merged everything into one package. Because the friendly new packaging system is one of the highlights of OpenSolaris, we didn’t want to confuse new users with the multitude of small packages we have for Sun Studio.
Hopefully, this information will be useful in a variety of circumstances. Inside the Studio team, we need to go back and forth between all three packaging systems, and it’s not easy to remember the right system commands to work with the packages on a given system. In the support team, one of the first things they ask a customer is which version of the Sun Studio software they are running. It’s also possible to install subsets of Sun Studio, so you may want to know which tools are currently installed.
Note: Studio will actually run fine on lots of different versions of Linux, including distributions that don’t use RPM as their native package format (like Ubuntu). The tarball downloads are useful for those Linux distributions.