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>