File:  [LON-CAPA] / loncom / build / system_dependencies / README
Revision 1.1: download - view: text, annotated - select for diffs
Wed Aug 14 21:33:39 2002 UTC (21 years, 10 months ago) by harris41
Branches: MAIN
CVS tags: version_0_6_2, version_0_6, HEAD
notes about the history, philosophy and strategy about LON-CAPA and
its system dependencies

    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>