1: LON-CAPA AND SYSTEM DEPENDENCIES
2:
3: Contributed by Scott Harrison, sharrison@users.sourceforge.net, 2002.
4:
5: SYNOPSIS
6: --------
7: This directory, system_dependencies, is concerned with testing requisite
8: subsystems of LON-CAPA. Two such subsystems are MySQL (a database layer
9: needed for both library and access servers), and perl (meaning the total
10: collection of necessary perl modules).
11:
12: The rest of this file explains the history and philosophy of LON-CAPA
13: subsystems.
14:
15: HISTORY
16: -------
17: Earlier approaches toward these subsystems were based on an
18: install-and-forget assumption. For example, a system administrator
19: need only install an auxiliary perl software package (in addition
20: to the RedHat packages) and then the subsystem was considered
21: to be "valid".
22:
23: However, the install-and-forget assumption does not take into
24: account the many dependency and filesystem conflicts that are
25: produced over time by events such as:
26:
27: * changes in the LON-CAPA code;
28: * changes in perl (version 5.005 becomes 5.6.0 which becomes 5.6.1, etc.);
29: * RedHat OS changes (from RH6.2 to RH7.2 to RH7.3);
30: * available RedHat software packages change
31: (RH7 has many subpackages for perl);
32: * the number and versions of perl modules being used by LON-CAPA change
33: (we are adding Image::Magick as well as beginning to add SSL and XSLT
34: perl modules);
35: * the multiple versions of subsystems that we produce to be compatible
36: with different combinations of the changes above;
37: * needing to custom-patch various perl modules (such as HTML::Parser);
38: and
39: * needing to expand the MySQL metadata table (which we have been postponing
40: for a long time...).
41:
42: I have identified at least 10 more CPAN distributions that should eventually
43: be added to a running LON-CAPA server system. But with all the criteria
44: above, there is too much friction associated with adjusting the CPAN
45: composition on the server.
46:
47: The install-and-forget assumption also creates difficulties for making
48: LON-CAPA portable to other UNIX-like systems such as Solaris, BSD-Unix,
49: and Debian. While RedHat is the "supported" GNU/Linux system of choice,
50: it is negligent to not at least try and run LON-CAPA on top of other operating
51: system versions and flavors.
52:
53: I am a hardcore advocate of being able to install LON-CAPA anywhere,
54: on any server (except for software that crashes too much--like Mircrosoft).
55:
56: THE WORKING PHILOSOPHY
57: ----------------------
58: The new approach is to, in a sense, work with sub-subsystems.
59:
60: Since there are difficulties with the diagnosis and treatment of "MySQL"
61: and "1000+ perl modules" as standalone subsystems, the approach is to
62: work with sub-subsystems which are small enough to have:
63:
64: * well-defined characteristics of installation;
65: * well-defined characteristics of unique identification and version-typing
66: on the operating system;
67: * well-defined characteristics of testing.
68:
69: Thus, you will see a certain flux right now as we move away from
70: one big "systemperl" RPM, to 32 CPAN-distribution-based self-extracting
71: binaries.
72:
73: Never again will we be overlapping the filesystem with conflicting RPMs
74: (systemperl has encroached upon RedHat RPMs). Never again will we be
75: maintaining multiple systemperl RPMs for multiple systems.
76:
77: Now, the handling of perl is simply a process of asking:
78:
79: * Is a CPAN distribution present on a LON-CAPA server system?
80: * Is a CPAN distribution the correct version for the current LON-CAPA code
81: system?
82: * Is a CPAN distribution working on a LON-CAPA server when tested?
83:
84: And, also very important:
85:
86: * How do I add or update a CPAN distribution on a LON-CAPA server?
87: (Answer: Download a self-extracting binary and execute!
88: Or install manually from www.cpan.org. It's up to you!)
89:
90: CPAN handling on LON-CAPA is getting better.
91:
92: .
93: .
94: .
95:
96: Next on the list is MySQL.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>