File:  [LON-CAPA] / doc / build / Attic / understanding_files.html
Revision 1.1: download - view: text, annotated - select for diffs
Sat May 19 14:44:23 2001 UTC (23 years ago) by harris41
Branches: MAIN
CVS tags: stable_2002_spring, stable_2001_fall, HEAD
description of how files and software packages are handled for the
LON-CAPA system

    1: <html>
    2: <head>
    3: <title>Understanding the Files</title>
    4: </head>
    5: <body>
    6: <h1>Understanding the Files</h1>
    7: <p>
    8: Scott Harrison, last updated 05/19/2001
    9: </p>
   10: <h3>Source repository summary</h3>
   11: <p>
   12: Within our source repository, there are 420 files which
   13: are mapped into 39 different system directories.
   14: </p>
   15: <h3>The "one file" information strategy</h3>
   16: <p>
   17: We manage all the installation file details of LON-CAPA
   18: within one file.  This file
   19: keeps track of the associated
   20: file ownerships and permissions as well as directory ownerships
   21: and permissions.  We also allow for different sets of 
   22: file/directory ownerships and permissions to be applied
   23: (a development set, and a run-time "secure" set).
   24: </p>
   25: <p>
   26: This "one file" also encodes the invocation of "build"
   27: commands whenever compiled binaries need to be
   28: regenerated due to changing source code.
   29: </p>
   30: <h3>Categorizing the files</h3>
   31: <p>
   32: To most efficiently manage details associated with
   33: groups of files, we categorize them as shown in
   34: the table below.
   35: <TABLE BORDER=1 CELLPADDING=5 WIDTH=60%>
   36: <TR>
   37: <TH ALIGN=LEFT BGCOLOR=#FFFFFF>Type</TH>
   38: <TH ALIGN=LEFT BGCOLOR=#FFFFFF>Permissions</TH>
   39: <TH ALIGN=LEFT BGCOLOR=#FFFFFF>Development Permissions</TH>
   40: </TR>
   41: <TR>
   42: <TD>symbolic link</TD>
   43: <TD><TT> root:root</TT></TD>
   44: <TD><TT> root:root</TT></TD>
   45: </TR>
   46: <TR>
   47: <TD>interface file</TD>
   48: <TD><TT>0444 root:root</TT></TD>
   49: <TD><TT>0644 www:users</TT></TD>
   50: </TR>
   51: <TR>
   52: <TD>setuid script</TD>
   53: <TD><TT>6755 root:root</TT></TD>
   54: <TD><TT>6755 root:root</TT></TD>
   55: </TR>
   56: <TR>
   57: <TD>system file</TD>
   58: <TD><TT>0644 root:root</TT></TD>
   59: <TD><TT>0644 root:root</TT></TD>
   60: </TR>
   61: <TR>
   62: <TD>script</TD>
   63: <TD><TT>0700 www:users</TT></TD>
   64: <TD><TT>0500 www:users</TT></TD>
   65: </TR>
   66: <TR>
   67: <TD>conf</TD>
   68: <TD><TT>0644 root:root</TT></TD>
   69: <TD><TT>0644 root:root</TT></TD>
   70: </TR>
   71: <TR>
   72: <TD>root script</TD>
   73: <TD><TT>0700 root:root</TT></TD>
   74: <TD><TT>0700 root:root</TT></TD>
   75: </TR>
   76: <TR>
   77: <TD>handler</TD>
   78: <TD><TT>0444 root:root</TT></TD>
   79: <TD><TT>0600 www:users</TT></TD>
   80: </TR>
   81: <TR>
   82: <TD>static conf</TD>
   83: <TD><TT>0444 root:root</TT></TD>
   84: <TD><TT>0444 root:root</TT></TD>
   85: </TR>
   86: <TR>
   87: <TD>graphic file</TD>
   88: <TD><TT>0444 root:root</TT></TD>
   89: <TD><TT>0400 www:users</TT></TD>
   90: </TR>
   91: </table>
   92: </p>
   93: <h3>Special treatment of the "conf" category</h3>
   94: <p>
   95: During both installation and upgrades, our procedures
   96: safeguard the contents of your machine's configuration.
   97: During a CVS upgrade, when you type: "make install",
   98: NONE of your "conf" files are overwritten.  These include:
   99: </p>
  100: <ul>
  101: <li>"/etc/httpd/conf/access.conf"</li>
  102: <li>"/etc/smb.conf"</li>
  103: <li>"/home/httpd/lonTabs/hosts.tab"</li>
  104: <li>"/home/httpd/lonTabs/spare.tab"</li>
  105: <li>"/etc/krb.conf"</li>
  106: <li>"/etc/ntp.conf"</li>
  107: </ul>
  108: <p>
  109: The command "make configinstall" will correctly
  110: upgrade these files and intelligently conserve
  111: configuration information present within them.
  112: </p>
  113: <h3>The entire file space</h3>
  114: <p>
  115: A standard LON-CAPA development system has a total
  116: of 47464 files belonging to a total of 416 different
  117: software packages.
  118: </p>
  119: <p>
  120: 409 of these packages come from ftp.redhat.com.
  121: The other 7 of these packages represent "custom-built
  122: subsystems" needed to implement LON-CAPA on a machine.
  123: </p>
  124: <table border=1>
  125: <tr><td>LON-CAPA-setup-3.1-1</td>
  126: <td>Used only during a fresh installation, this RPM overwrites
  127: the /etc/passwd, /etc/group, /etc/hosts.deny, /etc/pam.d/login,
  128: and /etc/pam.d/passwd files of the standard RedHat setup-*.rpm.
  129: This RPM is installed automatically by the LON-CAPA installation
  130: CD. (You should never install this manually since you will lose
  131: ability to log into your computer).  This RPM also sets up
  132: a /home/www directory during the installation.</td></tr>
  133: <tr><td>LON-CAPA-base-3.1-1</td>
  134: <td>This RPM can be built from CVS by the RPM target in 
  135: CVS:loncom/build/Makefile.  This RPM handles the installation
  136: of all 420 CVS source files.  We recommend that you do NOT upgrade
  137: this RPM on a running LON-CAPA system since you may lose your
  138: machine's configuration.  All "conf" files are saved with .rpmsave
  139: extensions during an RPM upgrade.  However, if you upgrade
  140: twice, you will wind up with useless .rpmsave backup files.</td></tr>
  141: <tr><td>LON-CAPA-krb4-3.1-1</td>
  142: <td>This RPM encodes 222 files needed to support Athena-Kerberos version
  143: 4 authentication.</td></tr>
  144: <tr><td>LON-CAPA-loncapaconfig-3.1-1</td>
  145: <td>This RPM encodes a python-Tk GUI for configuring variables
  146: on your LON-CAPA machine.  There are 569 files in this RPM.
  147: /usr/sbin/loncapaconfig launches the GUI.  The GUI works well,
  148: but is not yet recommended for standard use.
  149: </td></tr>
  150: <tr><td>LON-CAPA-mysql-3.1-1</td>
  151: <td>This encodes MySQL version 3.23.33.  This is the backend 'engine'
  152: for handling libraries of metadata.  The usage of MySQL and LON-CAPA
  153: is described in greater detail at 
  154: http://install.lon-capa.org/docs/loncapasqldatabase.html.
  155: This RPM contains 1066 files.</td></tr>
  156: <tr><td>LON-CAPA-systemperl-3.1-1</td>
  157: <td>This RPM contains 445 files which encode for various builds
  158: of perl modules taken from www.cpan.org.  These perl modules
  159: come from about 16 different CPAN packages: 
  160: Algorithm::Diff, Authen::Krb4, Crypt::DES,
  161: Crypt::IDEA, DBI,
  162: Digest::MD5,
  163: HTML-Tree,
  164: HTML::Parser,
  165: HTML::Tagset,
  166: MIME-tools,
  167: MIME::Base64,
  168: Msql-Mysql-modules,
  169: Net,
  170: Safe::Hole,
  171: URI,
  172: and libwww-perl.
  173: </td></tr>
  174: <tr><td>LON-CAPA-barcode-3.1-1</td>
  175: <td>This RPM contains 73 files which encode for the GD graphics library
  176: and a perl module GD::Barcode which manipulates the graphics library
  177: to produce a wide range of barcode formats.  This RPM is described
  178: better at CVS:doc/build/barcode.html</td></tr>
  179: </table>
  180: </p>
  181: <h3>A note on dependencies</h3>
  182: <p>
  183: In an ideal world, we could understand how to install anything
  184: and how every piece of software relied on every other piece
  185: of software.  This would make compiling installations and upgrading
  186: computers a LOT easier.
  187: </p>
  188: <p>
  189: Ideally, we would have used pre-existing RPMs for MySQL and some of
  190: the perl modules.  The current, pre-existing RPMs for these components
  191: are found within ftp "contrib" repositories.
  192: </p>
  193: <p>
  194: Unfortunately, these "contrib" RPMs make false assumptions about
  195: the standard directory setup of a RedHat 6.2 system as well as
  196: the existing shared object libraries.  The solution was to "roll
  197: our own" RPMs based on compilations directly from source.
  198: </p>
  199: <h3>A note on the installation CD</h3>
  200: <p>
  201: We make every effort to include up-to-date RPMs on our installation
  202: CDs.  This helps reduce the number of errors and increase security
  203: on LON-CAPA systems.
  204: </p>
  205: <p>
  206: Unfortunately, it is not straightforward to have up-to-date
  207: kernels installed on machines.  This is because the installation
  208: code (mostly written by RedHat) only supports one kernel
  209: version.  After installation, you will need to upgrade your
  210: kernel by following instructions at 
  211: http://www.redhat.com/support/docs/howto/kernel-upgrade/kernel-upgrade.html.
  212: I recommend that you do this soon after installation.
  213: In case something goes wrong, you can always start again.
  214: </p>
  215: <p>
  216: The only other minor note is that the RedHat 6.2 upgrade RPM xntp3-5.93-15
  217: was not installing correctly from the installation CD due to a
  218: dependency on a high version of rpmlib not present in the
  219: installation CD binaries.  This was fixed by rebuilding the
  220: xntp3-5.93-15 RPM from a .src.rpm (source rpm) on a RedHat system
  221: with old versions of the rpm-* RPMs.
  222: </p>
  223: </body>
  224: </html>
  225: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>