Annotation of doc/build/understanding_files.html, revision 1.2

1.1       harris41    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-mysql-3.1-1</td>
                    145: <td>This encodes MySQL version 3.23.33.  This is the backend 'engine'
                    146: for handling libraries of metadata.  The usage of MySQL and LON-CAPA
                    147: is described in greater detail at 
                    148: http://install.lon-capa.org/docs/loncapasqldatabase.html.
                    149: This RPM contains 1066 files.</td></tr>
                    150: <tr><td>LON-CAPA-systemperl-3.1-1</td>
                    151: <td>This RPM contains 445 files which encode for various builds
                    152: of perl modules taken from www.cpan.org.  These perl modules
                    153: come from about 16 different CPAN packages: 
                    154: Algorithm::Diff, Authen::Krb4, Crypt::DES,
                    155: Crypt::IDEA, DBI,
                    156: Digest::MD5,
                    157: HTML-Tree,
                    158: HTML::Parser,
                    159: HTML::Tagset,
                    160: MIME-tools,
                    161: MIME::Base64,
                    162: Msql-Mysql-modules,
                    163: Net,
                    164: Safe::Hole,
                    165: URI,
                    166: and libwww-perl.
                    167: </td></tr>
                    168: <tr><td>LON-CAPA-barcode-3.1-1</td>
                    169: <td>This RPM contains 73 files which encode for the GD graphics library
                    170: and a perl module GD::Barcode which manipulates the graphics library
                    171: to produce a wide range of barcode formats.  This RPM is described
                    172: better at CVS:doc/build/barcode.html</td></tr>
                    173: </table>
                    174: </p>
                    175: <h3>A note on dependencies</h3>
                    176: <p>
                    177: In an ideal world, we could understand how to install anything
                    178: and how every piece of software relied on every other piece
                    179: of software.  This would make compiling installations and upgrading
                    180: computers a LOT easier.
                    181: </p>
                    182: <p>
                    183: Ideally, we would have used pre-existing RPMs for MySQL and some of
                    184: the perl modules.  The current, pre-existing RPMs for these components
                    185: are found within ftp "contrib" repositories.
                    186: </p>
                    187: <p>
                    188: Unfortunately, these "contrib" RPMs make false assumptions about
                    189: the standard directory setup of a RedHat 6.2 system as well as
                    190: the existing shared object libraries.  The solution was to "roll
                    191: our own" RPMs based on compilations directly from source.
                    192: </p>
                    193: <h3>A note on the installation CD</h3>
                    194: <p>
                    195: We make every effort to include up-to-date RPMs on our installation
                    196: CDs.  This helps reduce the number of errors and increase security
                    197: on LON-CAPA systems.
                    198: </p>
                    199: <p>
                    200: Unfortunately, it is not straightforward to have up-to-date
                    201: kernels installed on machines.  This is because the installation
                    202: code (mostly written by RedHat) only supports one kernel
                    203: version.  After installation, you will need to upgrade your
                    204: kernel by following instructions at 
                    205: http://www.redhat.com/support/docs/howto/kernel-upgrade/kernel-upgrade.html.
                    206: I recommend that you do this soon after installation.
                    207: In case something goes wrong, you can always start again.
                    208: </p>
                    209: <p>
                    210: The only other minor note is that the RedHat 6.2 upgrade RPM xntp3-5.93-15
                    211: was not installing correctly from the installation CD due to a
                    212: dependency on a high version of rpmlib not present in the
                    213: installation CD binaries.  This was fixed by rebuilding the
                    214: xntp3-5.93-15 RPM from a .src.rpm (source rpm) on a RedHat system
                    215: with old versions of the rpm-* RPMs.
                    216: </p>
                    217: </body>
                    218: </html>
                    219: 

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