Scott Harrison, last updated 05/19/2001
Within our source repository, there are 420 files which are mapped into 39 different system directories.
We manage all the installation file details of LON-CAPA within one file. This file keeps track of the associated file ownerships and permissions as well as directory ownerships and permissions. We also allow for different sets of file/directory ownerships and permissions to be applied (a development set, and a run-time "secure" set).
This "one file" also encodes the invocation of "build" commands whenever compiled binaries need to be regenerated due to changing source code.
To most efficiently manage details associated with groups of files, we categorize them as shown in the table below.
Type | Permissions | Development Permissions |
---|---|---|
symbolic link | root:root | root:root |
interface file | 0444 root:root | 0644 www:users |
setuid script | 6755 root:root | 6755 root:root |
system file | 0644 root:root | 0644 root:root |
script | 0700 www:users | 0500 www:users |
conf | 0644 root:root | 0644 root:root |
root script | 0700 root:root | 0700 root:root |
handler | 0444 root:root | 0600 www:users |
static conf | 0444 root:root | 0444 root:root |
graphic file | 0444 root:root | 0400 www:users |
During both installation and upgrades, our procedures safeguard the contents of your machine's configuration. During a CVS upgrade, when you type: "make install", NONE of your "conf" files are overwritten. These include:
The command "make configinstall" will correctly upgrade these files and intelligently conserve configuration information present within them.
A standard LON-CAPA development system has a total of 47464 files belonging to a total of 416 different software packages.
409 of these packages come from ftp.redhat.com. The other 7 of these packages represent "custom-built subsystems" needed to implement LON-CAPA on a machine.
LON-CAPA-setup-3.1-1 | Used only during a fresh installation, this RPM overwrites the /etc/passwd, /etc/group, /etc/hosts.deny, /etc/pam.d/login, and /etc/pam.d/passwd files of the standard RedHat setup-*.rpm. This RPM is installed automatically by the LON-CAPA installation CD. (You should never install this manually since you will lose ability to log into your computer). This RPM also sets up a /home/www directory during the installation. |
LON-CAPA-base-3.1-1 | This RPM can be built from CVS by the RPM target in CVS:loncom/build/Makefile. This RPM handles the installation of all 420 CVS source files. We recommend that you do NOT upgrade this RPM on a running LON-CAPA system since you may lose your machine's configuration. All "conf" files are saved with .rpmsave extensions during an RPM upgrade. However, if you upgrade twice, you will wind up with useless .rpmsave backup files. |
LON-CAPA-krb4-3.1-1 | This RPM encodes 222 files needed to support Athena-Kerberos version 4 authentication. |
LON-CAPA-mysql-3.1-1 | This encodes MySQL version 3.23.33. This is the backend 'engine' for handling libraries of metadata. The usage of MySQL and LON-CAPA is described in greater detail at http://install.lon-capa.org/docs/loncapasqldatabase.html. This RPM contains 1066 files. |
LON-CAPA-systemperl-3.1-1 | This RPM contains 445 files which encode for various builds of perl modules taken from www.cpan.org. These perl modules come from about 16 different CPAN packages: Algorithm::Diff, Authen::Krb4, Crypt::DES, Crypt::IDEA, DBI, Digest::MD5, HTML-Tree, HTML::Parser, HTML::Tagset, MIME-tools, MIME::Base64, Msql-Mysql-modules, Net, Safe::Hole, URI, and libwww-perl. |
LON-CAPA-barcode-3.1-1 | This RPM contains 73 files which encode for the GD graphics library and a perl module GD::Barcode which manipulates the graphics library to produce a wide range of barcode formats. This RPM is described better at CVS:doc/build/barcode.html |
In an ideal world, we could understand how to install anything and how every piece of software relied on every other piece of software. This would make compiling installations and upgrading computers a LOT easier.
Ideally, we would have used pre-existing RPMs for MySQL and some of the perl modules. The current, pre-existing RPMs for these components are found within ftp "contrib" repositories.
Unfortunately, these "contrib" RPMs make false assumptions about the standard directory setup of a RedHat 6.2 system as well as the existing shared object libraries. The solution was to "roll our own" RPMs based on compilations directly from source.
We make every effort to include up-to-date RPMs on our installation CDs. This helps reduce the number of errors and increase security on LON-CAPA systems.
Unfortunately, it is not straightforward to have up-to-date kernels installed on machines. This is because the installation code (mostly written by RedHat) only supports one kernel version. After installation, you will need to upgrade your kernel by following instructions at http://www.redhat.com/support/docs/howto/kernel-upgrade/kernel-upgrade.html. I recommend that you do this soon after installation. In case something goes wrong, you can always start again.
The only other minor note is that the RedHat 6.2 upgrade RPM xntp3-5.93-15 was not installing correctly from the installation CD due to a dependency on a high version of rpmlib not present in the installation CD binaries. This was fixed by rebuilding the xntp3-5.93-15 RPM from a .src.rpm (source rpm) on a RedHat system with old versions of the rpm-* RPMs.