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