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>