Contained WithinFind More DocumentationFeatured Support Resources | Scarica il manuale in formato PDF (1498 KB)
Part V Managing SoftwareThis part provides instructions for managing Solaris software packages and patches. This part contains these chapters.
Chapter 16 Software Administration (Overview)Software administration involves installing and removing software from standalone systems, servers, and their clients. This chapter describes background and other useful information about installing and managing software. This chapter does not describe installing the Solaris software, which has its own installation and setup procedures. This is a list of the overview information in this chapter. Where to Find Software Administration TasksUse this reference to find step-by-step instructions for administering software.
Software PackagesFor the purpose of this discussion, software administration involves installing or removing software products. Sun and its third-party vendors deliver products in a form called a software package. (The term packaging generically refers to the method for distributing and installing software products to systems where the products will be used.) In its simplest form, you can think of a package as a collection of files and directories in a defined format. This format conforms to the Application Binary Interface (ABI), which is a supplement to the System V Interface Definition. The Solaris operating environment provides a set of utilities that interpret this format and provide the means to install or remove a package or to verify its installation. Tools for Managing SoftwareThere are two tools for adding and removing software from a system:
Although either of these are appropriate to use, each has its merits. Using the pkgadd and pkgrm commands offers flexibility. For example, you can incorporate these commands into scripts, set up optional files to avoid user interaction or perform special checks, and copy software packages to spool directories. If you're already familiar with adding and removing packages with the pkgadd and pkgrm commands, it's probably easiest for you to continue using them. Using Admintool to add and remove software offers ease of use, because it is a graphical interface to the pkgadd and pkgrm commands and it includes online help that provides general information on using the tool. Using the Admintool graphical interface is an especially nice way to view software already installed on a system or the software that resides on the installation media. If you're unfamiliar with software package naming conventions, you're uncomfortable using command line options, and you're managing software only on one system at time, it's probably easiest for you to use Admintool to add and remove software. Table 16-1 suggests some of the relative merits of using Admintool as opposed to using the pkgadd and pkgrm commands to manage software. Table 16-1 Admintool Software Management Capabilities
Note that prior to the Solaris 2.5 release, Software Manager (accessed with the swmtool command) was the graphical tool for adding and removing software. With the Solaris 2.5 release and compatible versions, Admintool (accessed with the admintool command) provides that capability. If you use the swmtool command on a Solaris 2.5 or compatible system, it will start Admintool. What Happens When You Add or Remove a PackageThe pkgadd and pkgrm commands or Admintool are used to add and remove software. Admintool is a graphical front-end to the pkgadd and pkgrm commands. When you add a package, the pkgadd command uncompresses and copies files from the installation media to a local system's disk. When you remove a package, the pkgrm command deletes all files associated with that package, unless those files are also shared with other packages. Package files are delivered in package format and are unusable as they are delivered. The pkgadd command interprets the software package's control files, and then uncompresses and installs the product files onto the system's local disk. Although the pkgadd and pkgrm commands do not log their output to a standard location, they do keep track of the product installed or removed. The pkgadd and pkgrm commands store information about a package that has been installed or removed in a software product database. By updating this database, the pkgadd and pkgrm commands keep a record of all software products installed on the system. What You Should Know Before Adding or Removing PackagesBefore installing or removing packages on your system, you should know:
Guidelines for Client Software AdministrationManaging software on a standalone system is fairly straightforward, after you're familiar with the package installation tools and conventions. You install the software package on a system's local disk and that software is then available for use. However, managing software on client systems can be more difficult--especially when the software resides partially on the server and partially on the client. (For example, a piece of software may have a package with files that are installed on the client's root file system and a package with files that are installed on the /usr file system, which the client typically mounts from a server.) Solaris supports diskless clients and Solstice AutoClient systems. On diskless and AutoClient systems, all software resides on the server. For example, when you add a software package to a diskless client, you don't actually install the package on the client, because it doesn't have any local disk storage device. Instead, you add the package either to the server or to the client's root file system (which resides on the server), or both. A diskless or AutoClient system's root file system is typically in /export/root/hostname on the server. AutoClient systems have their own disk storage, but it is only used for caching. The software resides on a server. (See the Solstice AutoClient 2.1 Administration Guide for more information.) Because diskless and AutoClient systems may have software partially installed on their root file system and partially installed on a server's /usr (or some other shared file system), adding software packages to these clients requires that you know where (in what file systems) a software package is supposed to be installed. Installing Sun Packages on Servers and ClientsWhen adding packages for diskless and AutoClient systems, it is important to know where those packages' files are installed--in the client's root file system or in a server's /usr file system (or any other file system shared with the client). Many Sun software packages are named to indicate where they are installed. For example, the SUNWvolr package is installed in the root file system and the SUNWvolu package is installed in the /usr file system. The "r" suffix stands for root, and the "u" suffix stands for /usr. However, the surest way to determine where a Sun package's files are installed is to examine the Some Sun packages do not have a When installing Sun packages on diskless or AutoClient systems, follow the general guidelines in Table 16-2. Table 16-2 Installing Sun Packages on Clients
Installing Third-Party Packages on Servers and ClientsThird-party packages do not use the
Installing Packages in Heterogeneous EnvironmentsThere are two cases in which software management on clients/servers is further complicated:
These are generically referred to as heterogeneous environments. When managing software in heterogeneous environments, you must first add the proper Solaris and architecture services appropriate for the server's clients. To do this, you use Host Manager to "add services" to the server (for detailed information, see Chapter 4, Managing Server and Client Support (Tasks). For detailed information about how to add packages in a heterogeneous environment, see "Adding Packages in a Heterogeneous Client/Server Environment". Guidelines for Removing PackagesBecause the pkgadd and pkgrm commands update information in a software products database, it is important when you remove a package to use the pkgrm command--even though you might be tempted to use the rm command instead. For example, you could use the rm command to remove a binary executable file, but that is not the same as using pkgrm to remove the software package that includes that binary executable. Using the rm command to remove a package's files will corrupt the software products database. (If you really only want to remove one file, you can use the removef command, which will update the software product database correctly. See removef(1M) for more information.) If you intend to keep multiple versions of a package (for example, multiple versions of a document processing application), install new versions into a different directory than the already installed package. The directory where a package is installed is referred to as the base directory, and you can manipulate the base directory by setting the basedir keyword in a special file called an administration file. See "Avoiding User Interaction When Adding Packages" and admin(4) for more information on use of an administration file and setting the base directory. Note - If you use the upgrade option when installing the Solaris software, the Solaris installation software consults the software product database to determine the products already installed on the system. Avoiding User Interaction When Adding PackagesUsing an Administration FileWhen you use the pkgadd -a command, the pkgadd command consults a special administration file for information about how the installation should proceed. Normally, pkgadd performs several checks and prompts the user for confirmation before actually adding the specified package. You can, however, create an administration file that indicates to pkgadd it should bypass these checks and install the package without user confirmation. The pkgadd command, by default, looks in the current working directory for an administration file. If pkgadd doesn't find an administration file in the current working directory, pkgadd looks in the /var/sadm/install/admin directory for the specified administration file. The pkgadd command also accepts an absolute path to the administration file. Use administration files judiciously. You should know where a package's files are installed and how a package's installation scripts run before using an administration file to avoid the checks and prompts pkgadd normally provides. This is an example of an administration file that will prevent pkgadd from prompting the user for confirmation before installing the package.
Besides using administration files to avoid user interaction when adding packages, you can use them in several other ways. For example, you can use an administration file to quit a package installation (without user interaction) if there's an error or to avoid interaction when removing packages with the pkgrm command. You can also assign a special installation directory for a package. (It would make sense to do this if you wanted to maintain multiple versions of a package on a system.) To do this, set an alternate base directory in the administration file (using the basedir keyword), which specifies where the package will be installed. See admin(4) for more information. Using a Response FileA response file contains your answers to specific questions asked by an interactive package. An interactive package includes a request script that asks you questions prior to package installation, such as whether or not optional pieces of the package should be installed. If you know that the package you want to install is an interactive package, prior to installation, and you want to store your answers to prevent user interaction during future installations of this package, you can use the pkgask command to save your response. See pkgask(1M) for more information on this command. Once you have stored your responses to the questions asked by the request script, you can use the pkgadd -r command to install the package without user interaction. Chapter 17 Software Administration (Tasks)This chapter describes how to install, remove, and administer software packages with Solaris commands and the Admintool graphical interface. This is a list of step-by-step instructions in this chapter.
Commands for Handling Software PackagesTable 17-1 shows commands to use for adding, removing, and checking the installation of software packages. Table 17-1 Commands for Adding and Removing Packages
Known Problem With Adding and Removing PackagesThere is a known problem with adding or removing some packages developed before the Solaris 2.5 release. If adding or removing a package fails during user interaction, or if you are prompted for user interaction and your responses are ignored, set the following environment variable: NONABI_SCRIPTS=TRUE Adding PackagesHow to Add Packages to a Standalone System
Example--Installing Software From a Mounted CDNote - The name of this release is Solaris 7 but code and path or package path names may use Solaris 2.7 or SunOS 5.7. Always follow the code or path as it is written. The following example shows a command to install the SUNWaudio package from a mounted Solaris 7 CD. The example also shows use of the pkgchk command to verify that the packages files were installed properly.
Example--Installing Software From a Remote Package ServerIf the packages you want to install are available from a remote system, you can manually mount the directory containing the packages (in package format) and install packages on the local system. The following example shows the commands to do this. In this example, assume the remote system named package-server has software packages in the /latest-packages directory. The mount command mounts the packages locally on /mnt, and the pkgadd command installs the SUNWaudio package.
If the automounter is running at your site, you do not need to mount the remote package server manually. Instead, use the automounter path (in this case, /net/package-server/latest-packages) as the argument to the -d option.
The following example is similar to the previous one, except it uses the -a option and specifies an administration file named noask-pkgadd, which is illustrated in "Avoiding User Interaction When Adding Packages". In this example, assume the noask-pkgadd administration file is in the default location, /var/sadm/install/admin.
Using a Spool DirectoryFor convenience, you can copy frequently installed packages to a spool directory. If you copy packages to the default spool directory, /var/spool/pkg, you do not need to specify the source location of the package (-d device-name argument) when using the pkgadd command. The pkgadd command, by default, looks in the /var/spool/pkg directory for any packages specified on the command line. Note that copying packages to a spool directory is not the same as installing the packages on a system. How to Add a Package to a Spool Directory
Example--Setting Up a Spool Directory From a Mounted CDThe following example shows a command to copy the SUNWaudio and SUNWab2m packages from a mounted SPARC Solaris 7 CD to the default spool directory (/var/spool/pkg).
Example--Setting Up a Spool Directory From a Remote Package ServerIf packages you want to copy are available from a remote system, you can manually mount the directory containing the packages (in package format) and copy them to a local spool directory. The following example shows the commands to do this. In the following example, assume the remote system named package-server has software packages in the /latest-packages directory. The mount command mounts the package directory locally on /mnt, and the pkgadd command copies the SUNWman package from /mnt to the default spool directory (/var/spool/pkg).
If the automounter is running at your site, you do not have to mount the remote package server manually. Instead, use the automounter path (in this case, /net/package-server/latest-packages) as the argument to the -d option.
Example--Installing a Package From the Default Spool DirectoryThe following example shows a command to install the SUNWman package from the default spool directory. (When no options are used with pkgadd, it searches /var/spool/pkg for the named packages.)
Adding Packages in a Homogeneous Client/Server EnvironmentFor the purposes of this discussion, a homogeneous client/server means the clients and servers are running the same version of the Solaris operating environment and are the same hardware platform (either all SPARC or all x86 platforms). This section describes how to install packages that place files in a client's root file system. If you are installing a package for clients, and that package does not place files on the client's root file system, the package can be installed directly on the server and shared. (This assumes that the package is installed to a file system such as /usr on the server.) Use the pkgadd command with the -R option to specify the location of the client's root file system for the client installation. (There's a common misconception that you can use the -R option to specify an alternate base directory for a package installation. That is not the case. The -R option is specifically for defining the client's root file system. To specify an alternate base directory, use pkgadd with the -a option and provide an administration file that has the basedir keyword set to the new installation directory.) Note - Packages installed on the server for diskless and AutoClient systems are read-only to the client and are shared with other clients. Although there are several ways to install and maintain packages in a client/server environment, this section provides instructions on how to do this from a server. This is a centralized software administration model. Note, however, that you can log in to clients and install software directly on them. Adding Sun Packages on ClientsIn general, when installing Sun packages on clients in a homogeneous environment, follow the guidelines in Table 17-2. Table 17-2 Installing Sun Packages on Clients in a Homogeneous Environment
You can determine where a Sun package's files are installed by using the procedure "How to Determine Where a Package's Files Will Be Installed". Adding Third-Party Packages on ClientsWhen installing third-party packages on clients, follow these guidelines:
Adding Packages in a Heterogeneous Client/Server EnvironmentFor the purposes of this discussion, a heterogeneous client/server environment means the clients and servers are either running different versions of the Solaris operating environment or are different hardware platforms (for example, a Solaris 2.3 server of Solaris 7 clients, or an x86 server with SPARC clients). Adding packages in a heterogeneous client/server environment presents its own difficulties. The server will have multiple /usr file systems for the heterogeneous clients it supports. For example, it might have an x86 /usr file system for its x86 clients, a Solaris 2.4 /usr file system for its Solaris 2.4 clients, and so on. In general, when installing packages in a heterogeneous client/server environment, follow the guidelines in Table 17-3. Table 17-3 Installing Packages in a Heterogeneous Environment
How to Determine Where a Package's Files Will Be InstalledThis procedure is valid only for Sun software packages. For third-party software products, the surest way to determine where the package's files will be installed is to look in the package's directory in the pkgmap file.
Example--Determining Where a Package's Files Will Be Installed
How to Add a Package to a Diskless or AutoClient System's root (/) File SystemWhen you add a package to a diskless or AutoClient system, you don't actually install the package on the client. Instead, you add the package to the client's root file system, which resides on a server. A diskless or AutoClient system's root file system is typically in /export/root/hostname on the server. Note - If the package's files are installed into the /usr file system, you need to install the package on the server. If you are working in a homogeneous client/server environment, use Table 17-2 to determine how to install the package. If you are working in a heterogeneous client/server environment, use Table 17-3 to determine how to install the package.
Example--Installing a Package From a Mounted CD to a Diskless Client's Root File SystemNote - The name of this release is Solaris 7 but code and path or package path names may use Solaris 2.7 or SunOS 5.7. Always follow the code or path as it is written. The following example shows a command to install the SUNWadmr (software to support system and network administration) package from a server onto a diskless client's root file system. In this case, the diskless client's root file system is /export/root/client-1. This example assumes the SUNWadmr package is available from a mounted SPARC 2.7 Solaris CD (/cdrom/cdrom0/s0/Solaris_2.7/Product). The example also shows use of pkginfo and pkgchk to verify that the package's files were installed properly.
Example--Installing a Package From a Package Server to a Diskless Client's Root File SystemThe following example shows a command to install the SUNWcg6 package from a server onto a diskless client's root file system. In this case, the diskless client's root file system is /export/root/client-2. This example assumes the SUNWcg6 package is available from a package server on the network (/net/package-server/latest-packages).
How to Add Packages to a Server
Example--Installing Software From a Mounted CDThe following example shows a command to install a fictitious package SUNWtoolu, which will install files into a /usr file system. Assume that the package resides on a mounted product CD, which is mounted on /cdrom/cdrom0 by default. The pkgadd command uses an administration file named new-basedir, which specifies a new installation directory for the package. The example also shows use of pkgchk to verify that the package's files were installed properly.
Checking the Installation of PackagesYou use the pkgchk command to check installation completeness, path name, file contents, and file attributes of a package. See pkgchk(1M) for more information on all the options. Use the pkginfo command to display information about the packages that are installed on the system. How to List Information About All Installed PackagesList information about installed packages with the pkginfo command.
Example--Listing All Packages InstalledThe following example shows the pkginfo command to list all packages installed on a local system, whether that system is a standalone, server, diskless client, or AutoClient system. The output shows the primary category, package name, and a description of the package.
Example--Listing All Packages Installed on a Diskless or AutoClient SystemIn a diskless or AutoClient system client/server setup, you may want to manage software from a central location. Since the server is the place to do this, you would need to use a variation of the pkginfo command. The following example shows the pkginfo -R command to list all packages installed on a diskless client named io. This command is executed from the diskless client's server.
How to Check the Integrity of an Installed Package
Example--Checking the Contents of an Installed PackageThe following example shows how to check the contents of a package.
If pkgchk determines there are no errors, it returns the system prompt. Otherwise, it reports the error. Example--Checking the File Attributes of an Installed PackageThe following example shows how to check the file attributes of a package.
If pkgchk determines there are no errors, it returns the system prompt. Otherwise, it reports the error. Example--Checking Packages Installed in a Spool DirectoryThe following example shows how to check a software package copied to a spool directory (/export/install/packages).
Note - The checks made on a spooled package are limited because not all information can be audited until a package is installed. How to Display Detailed Information About a PackageList information about installed packages with the pkginfo -l command.
Example--Displaying Detailed Information About a Package
Removing Packages From Servers and Standalone SystemsAlways use the pkgrm command to remove installed packages. Do not use the rm command, which will corrupt the system's record-keeping of installed packages. How to Remove a Package
How to Remove a Spooled Package
How to Remove a Diskless or AutoClient System's Package
Example--Removing a Diskless Client's PackageIn the following example, assume the client's root file system is shared. Also, assume these commands are executed on the client's server.
Adding and Removing Packages Using AdmintoolThe Solaris 7 operating environment includes Admintool, which is a graphical user interface for performing several administration tasks, including adding and removing software packages. Specifically, you can use Admintool to:
How to Add Packages With Admintool
How to Remove Packages With Admintool
Chapter 18 Patch Administration (Overview)For the purpose of this discussion, patch administration involves installing or removing Solaris patches from a running Solaris system. It may also involve removing (called backing out) unwanted or faulty patches. This is a list of the overview information in this chapter. What Is a PatchIn its simplest form, you can think of a patch as a collection of files and directories that replace or update existing files and directories that are preventing proper execution of the software. The existing software is derived from a specified package format, which conforms to the Application Binary Interface. (For details about packages, see Chapter 16, Software Administration (Overview).) Tools For Managing PatchesThere are two utilities for managing patches:
Detailed information about how to install and back out a patch is provided in the Install.info file with each patch. Each patch also contains a README file that contains specific information about the patch. Before installing patches, you might want to know more about patches that have previously been installed. Table 18-1 shows commands that provide useful information about patches already installed on a system. Table 18-1 Helpful Commands for Patch Administration
Patch DistributionAll Sun customers can access security patches and other recommended patches via the World Wide Web or anonymous ftp. Sun customers who have purchased a service contract can access an extended set of patches and a complete database of patch information. This information is available via the World Wide Web, anonymous ftp, and it is regularly distributed on a CD-ROM (See Table 18-2). Table 18-2 Customer Patch Access Information
What You Need to Access Sun PatchesYou can access Sun patches via the World Wide Web or anonymous ftp. If you have purchased a Sun service contract, you will also be able to get patches from the patch CD-ROM that is regularly distributed. To access patches on the World Wide Web, you need a machine that is:
To access patches via anonymous ftp, you need a machine that is:
Patch Access Via the World Wide WebTo access patches via the World Wide Web, use this uniform resource locator (URL): http://www.sun.com/ After reaching the Sun home page, click on the Sales and Service button and navigate your way to the SunSolve patch database. The patch database for publicly available patches are labeled "Public patch access." The patch database for the comprehensive set of patches and patch information available to contract customers is labeled "Contract customer patch access." You will be prompted for a password to access this contract customer database. You can also access publicly available patches using this URL: http://sunsite.unc.edu/ Patch Access Via ftpTo access patches via ftp, you can use the ftp command to connect to either the sunsolve1.sun.com (provided by Sun Service) or sunsite.unc.edu (maintained by the University of North Carolina). When ftp prompts you for a login, enter anonymous as the login name. Use your complete email address when prompted for a password. After the connection is complete, you can find publicly available patches in the /pubs/patches directory. Note - To transfer patches, you will need to change the ftp transfer mode to binary. To do this, enter bin at the ftp prompt. Patch NumberingPatches are identified by unique alphanumeric strings, with the patch base code first, a hyphen, and a number that represents the patch revision number. For example, patch 101977-02 is a Solaris 2.4 patch to correct the lockd daemon. What Happens When You Install a PatchWhen you install a patch, the patchadd command copies files from the patch directory to a local system's disk. More specifically, patchadd:
During the patch installation, patchadd keeps a log of the patch installation in /var/sadm/patch/patch-number/log for the Solaris 2.4 release and compatible versions. The Solaris 2.5 release and compatible versions also store log files in this location, but only if installation errors occurred. The patchadd command will not install a patch under the following conditions:
What Happens When You Remove a PatchWhen you back out a patch, the patchrm command restores all files modified by that patch, unless:
The patchrm command calls pkgadd to restore packages that were saved from the initial patch installation. During the patch installation, patchrm keeps a log of the patch installation in /tmp/backoutlog.process_id. This log file is removed if the patch backs out successfully. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||