Software Package Administration
Both Sun Microsystems and third-party vendors deliver software as easily manipulated collections of files and executable installation/removal procedures referred to as packages. Software packages can be installed on or removed from standalone systems or servers in a fairly straightforward manner because both the root and /usr file systems are local.
Solaris 8 package tools provide a convenient mechanism for installing and removing packaged software. These package tools are standard Unix commands and are accessible through the shell command-line interface. In addition, the system administration tool, admintool(1M), provides a GUI for installing and removing packages.
These are the most commonly used command-line package tools:
pkginfo(1) and pkgparam(1)Displays information about packages
pkgrm(1M)Removes a package
pkgchk(1M)Checks that a package has been correctly installed
Installing a Package by Using the pkgadd Command
The pkgadd command can install a package from disk or CD-ROM. Typically, software obtained through the network or from magnetic tape or floppy disk is copied into a spool directory on the system before installation. The default package spool directory is /var/spool/pkg, but you can use any location with adequate free space.
To install one or more packages located in the default spool directory by using the pkgadd command, only the package names need to be specified as command-line arguments. For example, to install the SUNWast package, you use the following command:
# pkgadd SUNWast Processing package instance <SUNWast> from </var/spool/pkg> Automated Security Enhancement Tools (i386) 11.8.0,REV=2000.01.08.18.17 Copyright 2000 Sun Microsystems, Inc. All rights reserved. Using </> as the package base directory. ## Processing package information. ## Processing system information. 1 package pathname is already properly installed. ## Verifying package dependencies. ## Verifying disk space requirements. ## Checking for conflicts with packages already installed. ## Checking for setuid/setgid programs. This package contains scripts which will be executed with super-user permission during the process of installing this package. Do you want to continue with the installation of <SUNWast> [y,n,?] y Installing Automated Security Enhancement Tools as <SUNWast> ## Installing part 1 of 1. Installation of <SUNWast> was successful. #
If a package was spooled onto the system into a different directory, you specify the alternative spool directory by using the -d command-line argument. For example, if the /tmp directory was used to spool the SUNWast package onto the system, use the following command to install the package:
pkgadd d /tmp SUNWast
To install a package located on CD-ROM, use the -d command-line argument to specify the pathname to the CD-ROM drive. For example, you can use the pkgadd command to install the SUNWast package from a CD-ROM mounted at /cdrom/cdrom0:
pkgadd d /cdrom/cdrom0 SUNWast
Actually, the pkgadd command does not require the name of a package. If no package name is specified, the pkgadd command prompts you with a list of packages that are available in the specified spool directory or on the CD-ROM.
You use the -s command-line argument to spool a package into a spool directory instead of installing it. The following command spools the SUNWast package in from the second CD-ROM of the Solaris distribution to the /var/spool/pkg directory (long lines are wrapped):
# pkgadd -s /var/spool/pkg -d /cdrom/sol_8_600_ia_2/Solaris_8/Product SUNWast Transferring <SUNWast> package instance #
When you're using the default spool directory, just the word spool can be specified with the -s command-line argument.
Installing a Package by Using admintool
After you start the admintool command, choose Browse, Software from the menu to open the Software dialog box (see Figure 3.1).
Figure 3.1 The Admintool: Software dialog box.
To install a package, choose Edit, Add from the menu. The Set Source Media dialog box opens, in which you can select either CD-ROM or Hard Disk. Figure 3.2 shows the Software Location set to CD with Volume Management. The other choices are CD Without Volume Management and Hard Disk. If you're using a CD-ROM, fill in the pathname in the CD Path text box.
Figure 3.2 Selecting source media settings in the Admintool: Set Source Media dialog box.
If the package has been spooled onto disk, change the Software Location selection to Hard Disk (as shown in Figure 3.3) and specify the spool directory if necessary.
Figure 3.3 Selecting the Hard Disk setting in the Admintool: Set Source Media dialog box.
After selecting the source media, click OK. The Add Software dialog box opens (see Figure 3.4).
Figure 3.4 The Admintool: Add Software dialog box.
The available packages on the CD-ROM or in the spool directory are listed. Figure 3.4 shows one package in the /var/spool/pkg directory, the Automated Security Enhancement Tools package. To install the package, select the check box to the left of the package title and click the Add button. The admintool command calls the pkgadd command and opens a window to display the results.
Obtaining Package Information by Using the pkginfo Command
The pkginfo command with no command-line arguments displays a list of installed packages. The following example shows a partial listing of installed packages:
# pkginfo system AMImega MEGA Family SCSI Host Bus Adapter system CPQcnft Compaq NetFlex Family NIC system CPQncr Compaq Family SCSI HBA system CPQsmii Compaq SMART-2/E Array Controller system MADGFmt Madge Token Ring Family of NIC system MYLXflp Buslogic FlashPoint Ultra PCI SCSI . . . system SUNWapchu Apache Web Server (usr) system SUNWarc Archive Libraries system SUNWarrf X11 Arabic required fonts system SUNWast Automated Security Enhancement Tools system SUNWatfsr AutoFS, (Root) system SUNWatfsu AutoFS, (Usr) system SUNWaudd Audio Drivers system SUNWaudh Audio Header Files system SUNWaudio Audio applications . . . #
Each software package includes a file named pkginfo containing various pieces of information about the package. This file is also used to store information generated during and after installation, such as the installation date and a list of any patches applied to the package. To view the contents of the pkginfo file for a particular package, use the pkginfo command and specify the -l command-line argument and the name of the package. For example, to display the pkginfo file for the SUNWast package, use the following pkginfo command:
# pkginfo -l SUNWast PKGINST: SUNWast NAME: Automated Security Enhancement Tools CATEGORY: system ARCH: i386 VERSION: 11.8.0,REV=2000.01.08.18.17 BASEDIR: / VENDOR: Sun Microsystems, Inc. DESC: administrative utilities for improving system security by monitoring or restricting access to system files and directories PSTAMP: catsup20000108183522 INSTDATE: Jan 13 2001 21:31 HOTLINE: Please contact your local service provider STATUS: completely installed FILES: 41 installed pathnames 1 shared pathnames 8 directories 29 executables 232 blocks used (approx) #
Obtaining Package Information by Using admintool
You can also use the admintool command to obtain the same information as from the pkginfo command. To display a list of installed packages, choose Browse, Software from the menu to display a list similar to the one in Figure 3.1.
To view selected contents of the pkginfo file for a particular package, highlight the package name in the list and click the Show Details button. The Software Details dialog box opens (see Figure 3.5).
Figure 3.5 The Admintool: Software Details dialog box.
The pkginfo file for each installed package, along with other package-related files, is located under the /var/sadm/pkg directory in a subdirectory with the same name as the package.
Removing a Package by Using the pkgrm Command
The pkgrm command is used to remove installed packages. To remove one or more packages, only the package names need to be specified as command-line arguments. For example, to remove the SUNWast package, use the following command:
# pkgrm SUNWast The following package is currently installed: SUNWast Automated Security Enhancement Tools (i386) 11.8.0,REV=2000.01.08.18.17 Do you want to remove this package? y # Removing installed package instance <SUNWast> ## Verifying package dependencies. ## Processing package information. ## Removing pathnames in class <none> /usr/aset/util/taskstat /usr/aset/util/str_to_mode . . . /usr/aset/masters/uid_aliases /usr/aset/masters/tune.med /usr/aset/masters/tune.low /usr/aset/masters/tune.high /usr/aset/masters /usr/aset/asetenv /usr/aset/aset.restore /usr/aset/aset /usr/aset/archives /usr/aset /usr <shared pathname not removed> ## Updating system information. Removal of <SUNWast> was successful. #
Removing a Package by Using admintool
You can also remove an installed package by using the admintool command. First, to display a list of installed packages, choose Browse, Software from the menu.
To delete a package, highlight its name in the list and choose Edit, Delete from the menu. A Warning dialog box opens to confirm removal of the package (see Figure 3.6). Click Delete to delete the package. The admintool command calls the pkgrm command and opens a dialog box to display the results.
Figure 3.6 The Admintool: Warning dialog box.