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

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-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>