This chapter explains what you need to know about the installation of Elego ComPact.
The first section gives an overview of the steps to be performed and things that need to be considered prior to installation.
The following sections detail two alternative installation procedures: an automatic one using ComPact Installer, and a non-automatic Do-It-Yourself one. This comprises descriptions of the installation and configuration of the source code repository, ComPact programs and documentation, the package pools, and the central initialization file compactrc.
Note: In order to operate the licensed version of Elego ComPact, a valid passphrase must be communicated to the ComPact tools via the environment variable COMPACT_PASSPHRASE. This can be done in the shell you use to start the ComPact programs, for example
setenv COMPACT_PASSPHRASE my_favourite_passphraseif you use a csh,export COMPACT_PASSPHRASE=my_favourite_passphraseif you use a bash,COMPACT_PASSPHRASE=my_favourite_passphrase; export COMPACT_PASSPHRASEif you use a sh, orset COMPACT_PASSPHRASE=my_favourite_passphraseif you use a cmd shell on Windows NT.
The passphrase will be sent to you together with the installation CD and the license contract. The demonstration version of Elego ComPact does not require a passphrase.
Elego ComPact is designed to help coordinate a team's efforts in their chosen process of software development.
When introducing tool support for a process, you first need to establish the team member's different needs and tasks in the process, their roles. Typical roles are developer, project manager, release engineer, backup operator etc. The given process determines what roles can be identified.
Then make a plan for giving team members the resources they need, based on their respective roles. The resources include
the ability to run the ComPact programs on a computer
access to the online documentation
access to one or more central source code repositories
access to pools of packages that are dedicated to special purposes, for example projects
access to project descriptions
access to the problem report and bug tracking facilities
You will have to decide what machines will host the source code repositories. Also, if you want to use shared package pools, machines providing storage for those have to be set up.
We will assume that the source code repository is always accessed in CVS client/server mode. [1] It is advisable to have a dedicated machine serve the version repository. [2] The installation of the repository is described in Section 10.3.
Package pools must always be accessible through the file system, as their elements are working files for compilers, assemblers, linkers, and other tools that are usually not client-server-oriented. If you plan to use shared package pools -- let's say one global pool for all your developers and one package pool for the use of every project you run -- you will have to locate these pools on machines that share their file systems via some network file system protocol.
The most readily available network file system protocols are NFS on the UNIX platform, and SMB/CIFS on the Windows platform. Interoperability is an issue that usually needs to be addressed by add-on "glueware". SAMBA, for instance, is Free Software which implements SMB on UNIX and makes a UNIX server look like a Windows server to Windows clients, as far as file services go.
Please consider that every developer needs storage space for her/his local package pool. In a typical setup, this additional space would be required in the users' home directories.
Elego ComPact is not concerned very much with the access rights and restrictions you plan to enforce for your development organization. This is because the models for access control are too different on different kinds of operating and networking systems, and you can most easily use the tools and methods for access control and authentification that your system offers. For example, on Unix and Unix-like operating systems, you would create groups of developers for different purposes and tasks, and grant them access to package pools as you desire. Thus said, it must be added that Elego ComPact (to be more exact, the underlying version control system CVS) offers a simple kind of access control for the source code repository (the CVS pserver protocol with passwords for every user), though this is only one of several possible configurations. Access of the repository through the remote shell service (514/TCP) is probably more widely used. Both methods have advantages and disadvantages. See section Remote repositories in the CVS manual for details.
All Elego ComPact programs use one common initialization file, and some can make use of more initialization and configuration files (e.g.the package manager pkgm). All initialization and configuration files are treated as resources that are bundled with the program, but may be overridden by external remote and local resources, if they exist. Resources are accessed either from the remote ComPact resource service provided by compactrsrcd, or locally via a resource path that can de defined in the central configuration file (for all special resources programs may need) and which is predefined as
for the central initialization file. For most complex resources, local definitions partially override remote definitions, which partially override bundled resources. This holds for the resources compactrc, PkgBase.DefaultData, pkgconf.cbcl, HTTPdActions. For other resources, like the ExHTML pages needed by the ComPact GUI, local resources completely override remote ones, which completely override bundled ones.{HOME}/compact:/usr/contrib/lib/compact:/usr/local/lib/compact:/opt/compact
The common central configuration file read by all Elego ComPact tools is either named {HOME}/.compactrc (in coherence with old Unix conventions) or compactrc, which is searched for in the resource path given above, in the remote resource service, and the bundled resources.
All ComPact programs evaluate several different platform-independend and platform-dependend resources from different locations. For every resource name these locations are checked:
The bundled resource is evaluated if it exists.
If the environment variable COMPACTSERVER is set, or the value of compactserver is defined in the internal environment, an attempt is made to connect to the remote resource service and read the resource from it. The environment variables always predominates an internal definition. I you want to learn more about the compact configuration resource service, invoke compactrsrcd with the -man option.
A local resource is searched via the default configuration path in the file system.
A run-command file named like the resource but with a leading period is evaluated if it exists.
compactrc
compactrc-{hosttype} (e.g. compactrc-i386)
compactrc-{ostype} (e.g. compactrc-freebsd)
compactrc-{hosttype}-{ostype} (e.g. compactrc-i386-freebsd)
compactrc-{hostname} (e.g. compactrc-phaidros)
If variables are defined more than once, the latter setting always overrides the older one. This is also true for mapping definitions.
More about the use of these files can be found in Section 10.5; the complete details of the initialization file are described in Section A.1 in Elego ComPact Manual Appendices.
| [1] |
The traditional CVS local mode of operation is currently not recommended or supported by Elego ComPact. |
| [2] |
Using CVS 1.10.8, the version shipped with ComPact, the CVS server would have to be running some flavor of UNIX, although there is work underway to support the Windows platform as well. |