Chapter 3. Distributing Software

Go here for info on the current status of SCO Linux products
Table of Contents
3.1. Working with the Software Repository
3.1.1. Adding Packages to the Software Repository
3.1.1.1. Adding SCO OpenServer Packages
3.1.1.2. Adding UnixWare or Open UNIX 8 Packages
3.1.1.3. Adding UNIX System Patches
3.1.2. Understanding Software Repository Daemon Processing
3.1.3. Working with Caldera Volution Online
3.1.3.1. Viewing Package Security Alerts
3.1.3.2. Updating Package Versions
3.2. Creating a Software Profile
3.2.1. Using the Distribute Software Wizard
3.2.2. Manually Creating a Software Profile
3.2.3. Specifying Installation and Removal Flags

One of the most powerful features of Caldera Volution Manager is the ability to remotely manage the software on client systems. You can:

The package distribution tools are flexible and customizable. Through the use of constraints and links to particular groups of computers you can; for example, create a profile that only updates your Open UNIX 8 clients that have a particular hardware or software configuration. In addition, profiles support standard RPM installation flags and scripts, as well as any scripts you define.

3.1. Working with the Software Repository

The Software Repository contains all of the packages you can distribute to client systems. You define the location of the Software repository package distribution directories during installation (/opt/volution/srdfiles, by default). VM then sets up a virtual Software Repository in the directory structure and automatically generates package objects corresponding to software packages as you add them to a package distribution directory.

The virtual Software Repository is located under your organization container. Its default name is Software Repository, though you might have specified a different name during installation.

The Software Repository has these characteristics:

3.1.1. Adding Packages to the Software Repository

Any software package you want to install, update or remove must first be placed in a package distribution directory. The Software Repository package distribution directories consist of directory pathnames of the form /opt/volution/srdfiles/type/OS/arch/vendor/release, where:

  • type is one of RPM (Linux system), custom (SCO OpenServer), or pkg (UnixWare or Open UNIX 8)

  • OS is one of Linux, UnixWare, Open UNIX 8, or SCO OpenServer

  • arch is either IA32 or IA64

  • vendor is one of the supported vendors, such as Caldera or Mandrake

  • version is the supported version for the package, such as 3.1.1 for a Caldera OpenLinux system.

For example, the directory /opt/volution/srdfiles/rpm/Linux/IA32/Caldera/3.1.1/ is where you should place RPMs for a Caldera OpenLinux 3.1.1 system. The first part of the path (/opt/volution/srdfiles) might be different if you specified a different location when Caldera Volution Manager was installed.

When you place a software package into a Software Repository package distribution directory, the Software Repository Daemon (SRD) makes the package available for distribution. For a technical description of SRD processing, see Section 3.1.2

3.1.1.1. Adding SCO OpenServer Packages

SCO OpenServer custom packages are typically provided as a single VOL.000.000 file, or a tarball of several VOL.xxx.xxx files. For the SRD to create an object for SCO OpenServer packages, you must provide a either a single VOL file or a tarball of multiple VOL files. If you have several cpio archives or VOL files, you must tar them up before the SRD can process them. Also note that the filename cannot begin with ``VOL.'' (VOL followed by a period).

We strongly recommend that you review the READMEs included with SCO OpenServer packages to determine prerequisites and the order in which software must be installed. You need to set up per-product ``Custom Requires'' files that define dependencies.

VM only deals with custom packages at the product level. Only products can be distributed, and only products show up in a software inventory.

3.1.1.2. Adding UnixWare or Open UNIX 8 Packages

Caldera Volution Manager can only distribute UnixWare or Open UNIX 8 packages or package sets that are in datastream format. The first line of a datastream file begins with

    #PaCkAgE DaTaStReAm

VM can also process a compressed datastream package. You can convert a package to datastream format using pkgtrans(1).

When you place a package set datastream in the repository, an object is created for the set, and another object for each package in the set. A software inventory shows both types of objects.

3.1.1.3. Adding UNIX System Patches

A patch is a type of package issued to update SCO OpenServer, UnixWare, and Open UNIX 8 systems. Unlike most packages, it might be desirable to install a patch more than once. Some points to consider when installing patches include:

  • When you include a patch in a profile, the patch will be installed regardless of whether it was previously installed.

  • If the profile includes both packages and patches, all of the packages are installed before any of the patches are installed.

  • If you are distributing a package that needs to be patched after installation, you should include both the package and the patch in the profile.

3.1.2. Understanding Software Repository Daemon Processing

It is not necessary to understand SRD processing to distribute software successfully, but this information is useful when troubleshooting or reconfiguring the SRD.

  1. The SRD scans the Software Repository package distribution directories to see if there are any new software packages.

    The scan interval and the directories to scan are defined in /etc/opt/volution/volutionsrd.conf

  2. If a new package is found, the package is moved from the package distribution directory to a directory where it will be available to an http/ftp server.

    A packagename.signature file is also created and moved into this directory. The .signature file is later downloaded to client(s) along with the package, and is used to verify the integrity of the software package. The http/ftp directory is also defined in /etc/opt/volution/volutionsrd.conf

  3. The SRD retrieves information about the package from the package file.

  4. An object representing the package is created and placed in the appropriate secure container.

    This object contains the URL to the http/ftp server directory where the package is located.

  5. If an object for the package already exists in pub (that is, an object representing an older instance or version of the package), the pub object is deleted.

3.1.2.1. Changing the Software Repository Daemon Scan Interval

The SRD scans for new packages every minute, by default. You can increase or decrease this interval by logging onto the VM Server as the root user and editing /etc/opt/volution/volutionsrd.conf to change the value for theFilesystem Polling variable. You then need to stop and restart the daemon, using the commands /etc/rc.d/init.d/volutionsrd stop and /etc/rc.d/init.d/volutionsrd start.

3.1.3. Working with Caldera Volution Online

Caldera Volution Online is a proactive software management service for managing RPMs on Linux systems. It utilizes an extensive knowledge base of alerts, patches, releases, and dependencies to help you keep current with changes in Open Source software. An innovative "What If" feature provides information about the impact of software changes before you implement them. It also supplies you with an Install Plan script that works with the Caldera Volution Manager to install or remove required packages on your computers. Additional information about features is available at http://www.caldera.com/products/volutiononline. Click Volution Online to access Caldera Volution Online.

With Caldera Volution Online package management features, you can:

  • Scan for security alerts pertaining to the packages installed on your clients, then take corrective action (see Section 3.1.3.1).

  • View whether or not a currently-installed package has an update available, then download the package into a Software Repository package distribution directory (see Section 3.1.3.2).

Caldera Volution Online information is integrated into both software inventories for a single system and the package lists shown in the pub and secure directories of the Software Repository.

When scanning for alerts or updates, you can access a package list in any of these ways:

  • To view the result of a software inventory on a particular system, select the software> rpm object beneath the computer object.

  • To view all packages available for installation or removal in the Software Repository, select the secure directory beneath the RPM directory.

  • To view all packages currently inventoried on your clients, select the pub directory beneath the RPM directory.

3.1.3.1. Viewing Package Security Alerts

Caldera Volution Online maintains a repository of software alerts that are updated regularly with the latest information about problems and workarounds. Alerts provide information about the nature of the security problem, the affected software and operating systems, and how to work around the problem.

To view security alerts:

  1. Access a package list.

  2. Select the box labelled Show Volution Online information and click Apply.

  3. Scan the Alert column for packages containing an alert icon. Packages are indexed alphanumerically. To view additional packages, click one of the letter or number index buttons at the top of the list.

  4. Select an alert icon to view a summary of the alerts pertaining to the package.

  5. Select Full Details for information about the alert and any workarounds.

Based on the alert, you might need to update or remove the associated package, or perform other configuration tasks.

3.1.3.2. Updating Package Versions

Caldera Volution Online maintains status for the current release of a variety of Linux packages, then lets you view information about a newer package along with instructions to download it to the repository.

To view and update package versions:

  1. Access a package list.

  2. Check the box labelled Show Volution Online information and click Apply.

  3. Scan the Current column for an icon indicating that a newer version is available.

  4. Select the icon to view information about the new package.

  5. Select the package name in the information window to download the package to the Software Repository package distribution directory.

Once the package is downloaded to the repository, you must create a profile to distribute it to the desired clients.

3.2. Creating a Software Profile

You can create a software profile to install, update, or remove software packages on one or more of your client systems. The packages must be placed in the Software Repository before they can be distributed (see Section 3.1.1). You can use the Distribute Software wizard to create a software profile to distribute software, or manually create a profile.

3.2.1. Using the Distribute Software Wizard

The Distribute Software wizard guides you through the process of creating a software profile.

  1. Click Wizards->Distribute Software.

  2. Follow the directions presented on the screens.

The wizard asks you to supply:

  • a unique name for the profile you are creating

  • the type of software package(s) you want to distribute (RPM, pkg, or custom).

  • a list of packages to be distributed

  • the operating system type(s) you want to distribute to

  • whether you want to distribute to a computer, computer group, or container

  • when you want the distribution process to begin

3.2.2. Manually Creating a Software Profile

This procedure shows how to create a basic software profile to install a single package:

  1. From the VM Management Console, select the profiles directory.

  2. Select Create an Object.

  3. Select the profile object type from the drop-down list. Enter a profile name (such as Install gimp), then click Create.

  4. Select the object you just created (Install gimp) from the Contents pane.

  5. If you are installing a Linux RPM, select Edit Package Flags.

    Enter the Install Mode (Install, Upgrade, or Freshen) and specify any necessary installation or removal flags (see Section 3.2.3).

    For this example, ensure that Install is checked and click OK.

  6. Select Edit Package Lists.

    Select packages to add or remove to the profile. For this example:

    1. Click Add.

    2. Enter a search string for the package; for example, gimp. Also, select the appropriate operating system; for example,Linux.

    3. Click Search.

    4. Select the desired package from the resulting list and click Link.

      Note: SCO OpenServer packages have names like; for example, SCO:tcp:oss4856. When searching for these packages you might want to use a wildcard asterisk before and after the literal ``oss'', as in *oss*.

  7. Select Edit Constraints.

    Constrain the profile to a subset of clients based on their operating system, vendor, release, and architecture. You could create a constraint to run this profile only on Linux systems. Then, even if you linked the profile to a computers directory containing computers with various types of operating systems, it would only run on Linux systems. This step is optional and, for this example, no changes are necessary.

  8. Select Edit the Scripts.

    Enter one or more shell scripts to be run on the client before or after software is installed or removed. You might use a script to clean up temporary installation directories left behind by a package installation, or remove files not successfully removed by a package removal. This step is optional and, for this example, no changes are necessary.

  9. Select Edit the Schedule, select a schedule type, and click OK.

  10. Select Add or Remove Links.

    1. Click Add.

    2. Enter a search string corresponding to the computer, or computer container you want to link to, then click Search. For more information about searching, see Section 2.3.1.

    3. Select the checkbox next to the desired computer or container, then click Link.

  11. Review the Summary to ensure that your profile lists the correct package flags, packages, constraints, scripts, and links. If it does not, correct the information and review the Summary again.

  12. Click Save Changes.

3.2.3. Specifying Installation and Removal Flags

When creating a software profile for Linux RPMs, you can specify the installation mode and installation and removal flags. These flags are set by selecting Edit Package Flags and are described in the following tables:

Table 3-1. Install Mode

Install ModeExplanation
Install Install a new package.
Upgrade Install a new version of the package and remove the older version, if it exists.
Freshen Upgrade a package if a previous version is installed. This is useful if a profile contains a number of packages, some of which are updates and others are new packages. You could use Freshen to apply updates to only those computers where the previous version is already installed. If the profile contains packages that are not installed on all of the computers in the container, the new packages aren't installed. This makes it unnecessary to create a separate profile for each computer container.

Table 3-2. Install Flags

Install FlagsExplanation
nodeps Do not check dependencies before installing or upgrading a package.
notriggers Do not execute scripts that are triggered when this package is installed.
ignoreos Install or upgrade even if the operating system of the binary package and host don't match.
ignoresizeDo not check mount filesystems for sufficient disk space before installing this package.
excludedocs Do not install any files that are marked as documentation (including man pages and textinfo documents).
ignorearch Install or upgrades even if the architecture of the binary package and host don't match.
force Install the packages even if some of them are already installed or they replace files from other installed packages.
noscripts Do not execute preinstall or postinstall scripts.
allfiles Install or upgrade all the missing files in the package, even if they already exist.
replacepkgs Install the package even if some of them are already installed on this system.
justdb Update the database, not the filesystem.
replacefiles Install the package even if it replaces files from other already installed packages.
oldpackages Allow an upgrade to replace a newer package with an older one.

Table 3-3. Remove Flags

Remove FlagsExplanation
nodeps Do not check dependencies before uninstalling the package.
allmatches Remove all versions of the package that match package-name. Normally, an error is issued if package-name matches multiple packages.
noscripts Do not execute scripts that are triggered when this package is installed.
justdb Update only the database, not the filesystem.
notriggers Do not execute scripts that are triggered when this package is removed.