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>