Docstoc

The Idiot's Guide to Building a

Document Sample
The Idiot's Guide to Building a Powered By Docstoc
					            The Idiot's Guide
to Building a Perseus Development Server



    Thoughtfully produced for fellow programmatically challenged Perseids (present & future)

                                             by
                                      Thomas L. Milbank


                                 with generous assistance from

                                      Robert F. Chavez
                                       Anne Mahoney
                                     Clifford E. Wulfman




                                        March 2003
                                           Contents



I: Red Hat Linux v7.2 Clean Installation
      How to install Red Hat Linux v7.2 on a scavenged Windows box.


II: Red Hat Linux v7.2 Configuration
      What you need to do to your new Linux installation to make it a secure and comfortable
      environment that plays well with the Perseus network.


III: Perseus Hopper Installation
       How to get your new Linux installation to run the Perseus Digital Library, albeit without
       the morphological analyzer (Morpheus).
                            I: Red Hat Linux v7.2 Clean Installation
1. Gather the following information:
                          Hard drive size:    ______________________________________________________
                            RAM amount:       ______________________________________________________
                           Keyboard type:     ______________________________________________________
                      Keyboard key count:     ______________________________________________________
                              Mouse type:     ______________________________________________________
                       Mouse connection:      ______________________________________________________
                          Computer name:      ______________________________________________________
                               IP address:    ______________________________________________________
                                  User ID:    ______________________________________________________
                          Video card type:    ______________________________________________________
                         Video card RAM:      ______________________________________________________
                             Monitor type:    ______________________________________________________
             Monitor horizontal sync rate:    ______________________________________________________
                Monitor vertical sync rate:   ______________________________________________________
               Monitor optimal resolution:    ______________________________________________________

1. Place installation in CD-ROM drive. Reboot.

2. At prompt, enter CTRL + S to enter Setup program.

3. Set PnP/BEV Boot: Enable. "Esc" to quit Setup program and finish booting.
         This will bypass the Boot Agent image on the next boot cycle, permitting the CD-ROM to be selected as
         the boot device.

4. Reboot.

5. At prompt, enter CTRL + S to enter Setup program.

6. "Esc" to quit Setup program and bring up the boot device selector. Select CD-ROM.

7. CD-ROM installation initiates. "Enter" to start graphical mode installation.
       Language Selection: English
       Keyboard Configuration: Keyboard type and key count
               e.g. Generic 104-key PC, US English, Enable dead keys
       Mouse Configuration: Mouse type and mouse connection
               e.g. Microsoft Intellimouse (PS/2)

         (Welcome Screen)

         Installation Type: Custom
         Disk Partitioning Setup: Manual partition
         Disk Setup: Delete all displayed partitions, leaving only free space. Create the desired partitions with
         "Force to be a primary partition" and "Check for bad blocks" checked on.
                  e.g. a partitioning scheme for 40 GB drive and 384 MB RAM:
                            /boot     ext3    50MB       Fixed size              (hda1)
                            /         ext3    700MB Fill to max allowable (hda2)
                                      swap    384MB Fill to 768MB                (hda3)
         Boot Loader Configuration: Accept defaults
         Boot Loader Password Configuration: Create GRUB password
Network Configuration: Assign a name to the computer.
                  Uncheck DHCP
                  Enter Hostname (e.g. computer_name.perseus.tufts.edu)
                  Recheck DHCP
        Request static IP address from the appropriate Tufts FSP (http://training.tccs.tufts.edu:8080/).
        Also request/confirm proper Gateway address.
Firewall Configuration: Select "None"
Additional Language Support: English (USA)
Time Zone Selection: America/New_York
Account Configuration:
        Create root password
        Create user account for user_id (i.e. personal account)
Authentication Configuration: Accept defaults
Package Group Selection: Select "Select individual packages"
Individual Package Selection: From "Tree View," select first subfolder of first folder. Then choose "Flat
View" and click on "Select all in group." This will select the contents of every package.
Graphical Interface (X) Configuration: Video card type and video card RAM
        e.g. Voodoo3 (generic), 16 MB
About to Install: Go for it! Install log will be written to /tmp/install.log
Boot Disk Creation: Insert blank diskette. "Next" to create boot disk.
Monitor Configuration: Accept default or select matching monitor type and monitor sync rates
        e.g. Dell M791, HorSync 30-96 kHz, VerSync 50-160 Hz
Customize Graphics Configuration:
        Select monitor optimal resolution
                  e.g. "True Color (24 bit)" and "1024 x 768" resolution
        Select "GNOME" as desktop environment
        Select "Graphical" login type
Congratulations: Remove boot disk. "Enter" to reboot.
                              II: Red Hat Linux v7.2 Configuration
1. Login.

2. Disable sendmail service. Execute the following:
        % su
        % /etc/rc.d/init.d/sendmail stop
        % /usr/sbin/ntsysv
                 Deselect sendmail
        % /etc/init.d/identd start
        % exit

3. Configure and enable identd service. Execute the following:
        % su
        % cd /etc
        % emacs identd.conf
                 Set/comment the following, then save the file:
                           server:user = nobody
                           #server:group = ident
                           #result:encrypt = yes
                           #encrypt:key-file = "/etc/identd.key"
        % /etc/init.d/identd start
        % exit

4. Customize monitor resolution. Execute the following, then reboot:
        % su
        % Xconfigurator
               Select "1280 x 1024" and "1024 x 768" resolutions
               XF86Config file is created in the /etc/X11 directory
        % exit

5. Customize network connection. Configure the network with Network Manager. Add the following under the
hosts tab (Tantalos must be added):
         130.64.33.21     tantalos.perseus.tufts.edu tantalos
         130.64.33.29     geryon.perseus.tufts.edu   geryon
         130.64.33.11     ibis.perseus.tufts.edu     ibis
         130.64.33.13     typhon.perseus.tufts.edu   typhon

6. Customize .bash_profile.
        Add the following variable and value. Also add the variable to the "export" list, then save the file:
                EDITOR=emacs

7. Add network printer. Use the Printer Configuration tool.
       Queue Name: Wynkyn
       Queue Type: Unix printer (LPD)
       Server: 172.16.33.120
       Queue: lpr

8. Customize user interface. Make desired changes to:
        GNOME with gnomecc
        Panel
        Emacs
        Mozilla
9. Secure the system. Download security patches from Red Hat (https://rhn.redhat.com/errata/rh72-errata-
security.html) to ~user_id/. Execute % su and move the downloaded rpms to /var/spool/up2date/. The patches are
typically installed with the command % rpm -Fvh package_names, but % rpm -Uvh package_names is required
twice. Command line updates to Mozilla and the kernel were not successful; run GnoRPM instead. Where
dependencies are problematic, execute % rpm -qa | grep filenames to inspect installed versions. The following list
includes all security patches provided by Red Hat as of January 23, 2003.

        Patch groups are listed beginning with the most recent; install patch groups in the reverse order listed.

        % su
        % rpm -Fvh package_names (except where indicated otherwise):

                 RHSA-2002:202
                 python-1.5.2-42.72.i386.rpm
                 python2-2.1.1-2.72.i386.rpm
                 python2-devel-2.1.1-2.72.i386.rpm
                 python-devel-1.5.2-42.72.i386.rpm
                 python-docs-1.5.2-42.72.i386.rpm
                 python-tools-1.5.2-42.72.i386.rpm
                 tkinter-1.5.2-42.72.i386.rpm

                 RHSA-2003:012
                 cvs-1.11.1p1-8.7.i386.rpm

                 RHSA-2002:288
                 mysql-3.23.54a-3.72.i386.rpm
                 mysqlclient9-3.23.22-8.i386.rpm
                 mysql-devel-3.23.54a-3.72.i386.rpm
                 mysql-server-3.23.54a-3.72.i386.rpm

                 RHSA-2002:297
                 vim-common-6.1-18.7x.2.i386.rpm
                 vim-enhanced-6.1-18.7x.2.i386.rpm
                 vim-minimal-6.1-18.7x.2.i386.rpm
                 vim-X11-6.1-18.7x.2.i386.rpm

                 RHSA-2003:006
                 libpng-1.0.14-0.7x.4.i386.rpm
                 libpng-devel-1.0.14-0.7x.4.i386.rpm

                 RHSA-2003:010
                 postgresql-7.1.3-4bp.2.i386.rpm
                 postgresql-contrib-7.1.3-4bp.2.i386.rpm
                 postgresql-devel-7.1.3-4bp.2.i386.rpm
                 postgresql-docs-7.1.3-4bp.2.i386.rpm
                 postgresql-jdbc-7.1.3-4bp.2.i386.rpm
                 postgresql-libs-7.1.3-4bp.2.i386.rpm
                 postgresql-odbc-7.1.3-4bp.2.i386.rpm
                 postgresql-perl-7.1.3-4bp.2.i386.rpm
                 postgresql-python-7.1.3-4bp.2.i386.rpm
                 postgresql-server-7.1.3-4bp.2.i386.rpm
                 postgresql-tcl-7.1.3-4bp.2.i386.rpm
                 postgresql-tk-7.1.3-4bp.2.i386.rpm
RHSA-2002:290
ethereal-0.9.8-0.72.0.i386.rpm
ethereal-gnome-0.9.8-0.72.0.i386.rpm

RHSA-2002:270
pine-4.44-1.72.2.i386.rpm

RHSA-2002:293
fetchmail-5.9.0-21.7.3.i386.rpm
fetchmailconf-5.9.0-21.7.3.i386.rpm


RHSA-2002:220
arts-2.2.2-3.i386.rpm
kdegraphics-2.2.2-2.1.i386.rpm
kdegraphics-devel-2.2.2-2.1.i386.rpm
kdelibs-2.2.2-3.i386.rpm
kdelibs-devel-2.2.2-3.i386.rpm
kdelibs-sound-2.2.2-3.i386.rpm
kdelibs-sound-devel-2.2.2-3.i386.rpm
kdenetwork-2.2.2-2.i386.rpm
kdenetwork-ppp-2.2.2-2.i386.rpm

RHEA-2001:158
libxml2-2.4.10-0.7x.2.i386.rpm
libxml2-devel-2.4.10-0.7x.2.i386.rpm
libxslt-1.0.7-2.i386.rpm
libxslt-devel-1.0.7-2.i386.rpm

RHSA-2002:229
wget-1.8.2-4.72.i386.rpm

RHSA-2002:246
Canna-3.5b2-50.7.2.i386.rpm
Canna-devel-3.5b2-50.7.2.i386.rpm
Canna-libs-3.5b2-50.7.2.i386.rpm

RHSA-2002:254
webalizer-2.01_09-1.72.i386.rpm

RHSA-2002:196
xinetd-2.3.7-4.7x.i386.rpm
         Note: warning /etc/xinetd.d/chargen-udp created as chargen-udp.rpmnew
         Note: warning /etc/xinetd.d/daytime created as daytime.rpmnew
         Note: warning /etc/xinetd.d/daytime-udp created as daytime-udp.rpmnew
         Note: warning /etc/xinetd.d/echo created as echo.rpmnew
         Note: warning /etc/xinetd.d/echo-udp created as echo-udp.rpmnew
         Note: warning /etc/xinetd.d/time created as time.rpmnew
         Note: warning /etc/xinetd.d/time-udp created as time-udp.rpmnew
RHSA-2002:222
apache-1.3.27-1.7.2.i386.rpm
apache-devel-1.3.27-1.7.2.i386.rpm
apache-manual-1.3.27-1.7.2.i386.rpm
mod_ssl-2.8.12-2.i386.rpm

*Install with GnoRPM

RHBA-2002:292
kernel-BOOT-2.4.18-19.7.x.i386.rpm
kernel-doc-2.4.18-19.7.x.i386.rpm
kernel-source-2.4.18-19.7.x.i386.rpm
kernel-2.4.18-19.7.x.i686.rpm
kernel-bigmem-2.4.18-19.7.x.i686.rpm
kernel-debug-2.4.18-19.7.x.i686.rpm
kernel-smp-2.4.18-19.7.x.i686.rpm

RHSA-2002:205
dev-3.3-4.i386.rpm
hwcrypto-1.0-3.i386.rpm
iptables-1.2.5-3.i386.rpm
iptables-ipv6-1.2.5-3.i386.rpm
kernel-utils-2.4-8.13.7.2.i386.rpm
MAKEDEV-3.3-4.i386.rpm
modutils-2.4.18-3.7x.i386.rpm
modutils-devel-2.4.18-3.7x.i386.rpm

RHBA-2002:104
kernel-headers-2.4.9-34.i386.rpm
kernel-enterprise-2.4.9-34.i686.rpm

RHSA-2002:007
tux-2.2.0-1.i386.rpm

RHSA-2002:197
glibc-2.2.4-31.i686.rpm
glibc-common-2.2.4-31.i386.rpm
glibc-devel-2.2.4-31.i386.rpm
glibc-profile-2.2.4-31.i386.rpm
nscd-2.2.4-31.i386.rpm

RHSA-2002:242
krb5-devel-1.2.2-15.i386.rpm
krb5-libs-1.2.2-15.i386.rpm
krb5-server-1.2.2-15.i386.rpm
krb5-workstation-1.2.2-15.i386.rpm
RHSA-2002:213
php-4.1.2-7.2.6.i386.rpm
php-devel-4.1.2-7.2.6.i386.rpm
php-imap-4.1.2-7.2.6.i386.rpm
php-ldap-4.1.2-7.2.6.i386.rpm
php-manual-4.1.2-7.2.6.i386.rpm
php-mysql-4.1.2-7.2.6.i386.rpm
php-odbc-4.1.2-7.2.6.i386.rpm
php-pgsql-4.1.2-7.2.6.i386.rpm
php-snmp-4.1.2-7.2.6.i386.rpm
         Note: warning /etc/php.ini created as php.ini.rpmnew

RHSA-2002:223
ypserv-2.5-2.7x.i386.rpm

*Install with GnoRPM

RHSA-2002:192
galeon-1.2.6-0.7.2.i386.rpm
gdk-pixbuf-0.14.0-0.7.2.i386.rpm
gdk-pixbuf-devel-0.14.0-0.7.2.i386.rpm
gdk-pixbuf-gnome-0.14.0-0.7.2.i386.rpm
mozilla-1.0.1-2.7.2.i386.rpm
mozilla-chat-1.0.1-2.7.2.i386.rpm
mozilla-devel-1.0.1-2.7.2.i386.rpm
mozilla-dom-inspector-1.0.1-2.7.2.i386.rpm
mozilla-js-debugger-1.0.1-2.7.2.i386.rpm
mozilla-mail-1.0.1-2.7.2.i386.rpm
mozilla-nspr-1.0.1-2.7.2.i386.rpm
mozilla-nspr-devel-1.0.1-2.7.2.i386.rpm
mozilla-nss-1.0.1-2.7.2.i386.rpm
mozilla-nss-devel-1.0.1-2.7.2.i386.rpm
mozilla-psm-1.0.1-2.7.2.i386.rpm
nautilus-1.0.4-48.i386.rpm
nautilus-devel-1.0.4-48.i386.rpm
nautilus-mozilla-1.0.4-48.i386.rpm

RHEA-2001:158
kdebindings-kmozilla-2.2.2-1.i386.rpm

RHSA-2002:207
ggv-1.0.2-5.1.i386.rpm
gv-3.5.8-18.7x.i386.rpm

RHSA-2002:194
tetex-1.0.7-38.3.i386.rpm
tetex-afm-1.0.7-38.3.i386.rpm
tetex-dvilj-1.0.7-38.3.i386.rpm
tetex-dvips-1.0.7-38.3.i386.rpm
tetex-fonts-1.0.7-38.3.i386.rpm
tetex-xdvi-1.0.7-38.3.i386.rpm
RHSA-2002:094
arpwatch-2.1a11-11.7.2.0.i386.rpm
libpcap-0.6.2-11.7.2.0.i386.rpm
tcpdump-3.6.2-11.7.2.0.i386.rpm

RHSA-2002:084
authconfig-4.1.19.2-1.i386.rpm

RHSA-2002:175
nss_ldap-189-4.i386.rpm
        Note: warning /etc/ldap.conf created as ldap.conf.rpmnew

RHSA-2002:096
tar-1.13.25-4.7.1.i386.rpm
unzip-5.50-2.i386.rpm

RHSA-2002:189
gaim-0.59.1-0.7.2.i386.rpm

RHSA-2002:162
pxe-0.1-31.99.7.3.i386.rpm

RHSA-2002:176
mailman-2.0.13-1.i386.rpm

RHSA-2002:133
bind-9.2.1-1.7x.2.i386.rpm
bind-devel-9.2.1-1.7x.2.i386.rpm
bind-utils-9.2.1-1.7x.2.i386.rpm

RHSA-2002:160
openssl-0.9.6b-28.i686.rpm
openssl-devel-0.9.6b-28.i386.rpm
openssl-perl-0.9.6b-28.i386.rpm
openssl095a-0.9.5a-18.i386.rpm
openssl096-0.9.6-13.i386.rpm

RHBA-2002:273
mm-1.1.3-11.i386.rpm
mm-devel-1.1.3-11.i386.rpm

RHSA-2002:132
util-linux-2.11f-17.7.2.i386.rpm

RHSA-2002:051
squid-2.4.STABLE6-6.7.3.i386.rpm

RHSA-2002:127
openssh-3.1p1-6.i386.rpm
openssh-askpass-3.1p1-6.i386.rpm
openssh-askpass-gnome-3.1p1-6.i386.rpm
openssh-clients-3.1p1-6.i386.rpm
openssh-server-3.1p1-6.i386.rpm
RHSA-2002:089
LPRng-3.7.4-28.1.i386.rpm

RHSA-2002:097
xchat-1.8.9-1.72.0.i386.rpm

Execute % rpm -Uvh package_names

RHSA-2002:083
ghostscript-6.51-16.2.i386.rpm
printconf-0.3.61-4.1.i386.rpm
printconf-gui-0.3.61-4.1.i386.rpm

RHBA-2001:174
foomatic-1.1-0.20011218.3.i386.rpm

RHSA-2001:138
Omni-0.5.0-4.i386.rpm
Omni-foomatic-0.5.0-4.i386.rpm

RHSA-2002:092
imap-2001a-1.72.0.i386.rpm
imap-devel-2001a-1.72.0.i386.rpm
        Note: warning /etc/xinetd.d/imap created as imap.rpmnew
        Note: warning /etc/xinetd.d/ipop2 created as ipop2.rpmnew
        Note: warning /etc/xinetd.d/ipop3 created as ipop3.rpmnew

RHSA-2002:048
imlib-1.9.13-3.7.x.i386.rpm
imlib-cfgeditor-1.9.13-3.7.x.i386.rpm
imlib-devel-1.9.13-3.7.x.i386.rpm

RHSA-2002:065
sharutils-4.2.1-8.7.x.i386.rpm
RHSA-2002:026
binutils-2.11.90.0.8-12.i386.rpm
cvs-1.11.1p1-7.i386.rpm
dump-0.4b25-1.72.0.i386.rpm
gcc3-3.0.4-1.i386.rpm
gcc3-c++-3.0.4-1.i386.rpm
gcc3-g77-3.0.4-1.i386.rpm
gcc3-java-3.0.4-1.i386.rpm
gcc3-objc-3.0.4-1.i386.rpm
libgcc-3.0.4-1.i386.rpm
libgcj-2.96-28.i386.rpm
libgcj3-3.0.4-1.i386.rpm
libgcj3-devel-3.0.4-1.i386.rpm
libgcj-devel-2.96-28.i386.rpm
libstdc++3-3.0.4-1.i386.rpm
libstdc++3-devel-3.0.4-1.i386.rpm
rmt-0.4b25-1.72.0.i386.rpm
rsync-2.4.6-13.i386.rpm
vnc-3.3.3r2-18.4.i386.rpm
vnc-doc-3.3.3r2-18.4.i386.rpm
vnc-server-3.3.3r2-18.4.i386.rpm
zlib-1.1.3-25.7.i386.rpm
zlib-devel-1.1.3-25.7.i386.rpm

RHSA-2002:071
sudo-1.6.5p2-1.7x.1.i386.rpm

RHSA-2002:014
openldap-2.0.21-1.i386.rpm
openldap-clients-2.0.21-1.i386.rpm
openldap-devel-2.0.21-1.i386.rpm
openldap-servers-2.0.21-1.i386.rpm

RHSA-2002:070
mod_python-2.7.8-1.i386.rpm

Execute % rpm -Uvh package_names

RHSA-2002:078
libmad-0.14.2b-3.i386.rpm
mpg321-0.2.9-2.5.i386.rpm

RHSA-2002:062
docbook-utils-0.6.9-2.1.noarch.rpm
docbook-utils-pdf-0.6.9-2.1.noarch.rpm

RHSA-2002:053
logwatch-2.6-1.noarch.rpm

RHSA-2002:012
enscript-1.6.1-16.2.i386.rpm
RHSA-2002:004
groff-1.17.2-7.0.2.i386.rpm
groff-gxditview-1.17.2-7.0.2.i386.rpm
groff-perl-1.17.2-7.0.2.i386.rpm

RHSA-2002:015
at-3.1.8-23.i386.rpm

RHSA-2001:139
htdig-3.2.0-2.011302.i386.rpm
htdig-web-3.2.0-2.011302.i386.rpm

RHBA-2002:106
ucd-snmp-4.2.5-7.72.0.i386.rpm
ucd-snmp-devel-4.2.5-7.72.0.i386.rpm
ucd-snmp-utils-4.2.5-7.72.0.i386.rpm
       Note: warning /etc/rc.d/init.d/snmpd created as snmpd.rpmnew
       Requires prior installation of the following:
                 RHEA-2002:024
                 gnorpm-0.96-12.7x.i386.rpm
                 kdeadmin-2.2.2-3.i386.rpm
                 popt-1.6.4-7x.i386.rpm
                 rpm-4.0.4-7x.i386.rpm
                 rpm-build-4.0.4-7x.i386.rpm
                 rpm-devel-4.0.4-7x.i386.rpm
                 rpm-perl-4.0.4-7x.i386.rpm
                 rpm-python-4.0.4-7x.i386.rpm
                 rpm2html-1.7-3.7x.i386.rpm
                 rpmfind-1.7-4.7x.i386.rpm

                 RHBA-2002:052
                 python-popt-0.8.8-7.x.2.i386.rpm


RHSA-2001:165
uucp-1.06.1-33.7.2.i386.rpm

RHSA-2002:020
ncurses4-5.0-5.i386.rpm

RHSA-2002:002
stunnel-3.22-1.i386.rpm

RHSA-2002:003
mutt-1.2.5.1-1.i386.rpm

RHSA-2001:171
sane-backends-1.0.5-4.1.i386.rpm
sane-backends-devel-1.0.5-4.1.i386.rpm
xsane-0.82-3.1.i386.rpm
xsane-gimp-0.82-3.1.i386.rpm
RHSA-2001:150
cyrus-sasl-1.5.24-23.i386.rpm
cyrus-sasl-devel-1.5.24-23.i386.rpm
cyrus-sasl-gssapi-1.5.24-23.i386.rpm
cyrus-sasl-md5-1.5.24-23.i386.rpm
cyrus-sasl-plain-1.5.24-23.i386.rpm

RHSA-2001:157
wu-ftpd-2.6.1-20.i386.rpm

RHSA-2001:124
mod_auth_pgsql-0.9.9-2.i386.rpm
                                  III: Perseus Hopper Installation
1. Install Red Hat Linux (v. 7.2). Elect to perform a custom installation and select everything for installation.
This will install the following required components:

         Postgres (Applications/Databases Group:
                  postgresql-7.1.3-2
                  postgresql-server-7.1.3-2
                  postgresql-perl-7.1.3-2
                  postgresql-tcl-7.1.3-2)
                  Postgres development (Development/Libraries Group: postgresql-devel-7.1.3-2)
         DBD-Pg Perl module (Applications/Databases Group: perl-DBD-Pg-1.01-1)
                  Note that the module's files are stored in the following two directories:
                           /usr/lib/perl5/site_perl/5.6.0/i386-linux/DBD
                           /usr/lib/perl5/site_perl/5.6.0/i386-linux/auto/DBD
                  These directories will have to be included in perl's @INC. Otherwise look for an installation of
                  the Pg module in a /usr/lib/perl5/site_perl/5.6.1/i386-linux directory (if not installed with Red Hat,
                  it might be installed with the security patches or during the CPAN operations below). Move this
                  module to the /usr/lib/perl5/site_perl/5.6.0/i386-linux directory; execute the following:
                           % cd /usr/lib/perl5/site_perl
                           % su
                           % mv 5.6.1/i386-linux/Pg.pm ./5.6.0/i386-linux/Pg.pm
                           % mv 5.6.1/i386-linux/auto/* ./5.6.0/i386-linux/auto/
                           % rm -r 5.6.1
                           % exit
         DBI Perl module (Applications/Databases Group: perl-DBI-1.18-1)
         ImageMagick (Applications/Multimedia Group: ImageMagick-5.3.8-3)
                  ImageMagick development (Development/Libraries Group: ImageMagick-devel-5.3.8-3)
         SP suite of SGML parser tools: onsgmls, osx (Applications/Text Group: openjade-1.3-17)

         JPEG development (Development/Libraries Group: libjpeg-devel-6b-16)
         PNG development (Development/Libraries Group: libpng-devel-1.0.12-2)
         ZLIB development (Development/Libraries Group: zlib-devel-1.1.3-24)

         Perl (Development/Languages Group: perl-5.6.0-17)
         Tcl (Development/Languages Group: tcl-8.3.3-65)

         Make (Development/Tools Group: make-3.79.1-8)

         GD (System Environment/Libraries Group: gd-1.8.4-4)

2. Create correct path to osx SGML parser tool. Requires the uninstallation of the lrzsz package
(Applications/Communications Group: a zmodem solution for Linux systems).
        % cd
        % su
        % rpm -e lrzsz
        % ln -s /usr/bin/osx /usr/bin/sx
        % exit
3. Install additional required Perl modules and executable files.
         Obtain and install the following modules using the CPAN module:
                  % su
                  % perl -MCPAN -e shell
                           Elect manual configuration and accept all defaults excepted when prompted on how to
                           handle prerequisites--answer "ask." Do not allow Perl to be upgraded; if this is initiated
                           (as happens during installation of XML::DOM) use "ctrl-c" to cancel the upgrade.
                  cpan> install XML::Parser
                  cpan> install XML::DOM
                  cpan> install Bit::Vector
                  cpan> install CGI
                  cpan> install Date::Calc
                  cpan> install Text::Template
                  cpan> install Text::English
                  cpan> install Roman
                  cpan> install XBase
                           Do not install the "Xbase" module. Xbase with a lower case "b" is a different module!
                  cpan> exit
                  % exit
         Obtain and install the GD module from Tantalos (in ~dasmith/src/) manually:
                  % cd
                  % scp user_id@tantalos.perseus.tufts.edu:/home/dasmith/src/GD-1.18.tar.gz
                  % zcat G-1.18.tar.gz | tar xvf -
                  % cd GD-1.18
                  % perl Makefile.PL
                  % make
                  % make test
                  % su
                  % make install
                  % exit
                  % rm -r GD-1.18
                  % rm GD-1.18.tar.gz
         Obtain and install the pMDBmaker executable file from Tantalos (in /usr/local/bin/) manually:
                  % cd
                  % scp user_id@tantalos.perseus.tufts.edu:/usr/local/bin/pMDBmaker
                  % su
                  % mv pMDBmaker /usr/local/bin/pMDBmaker
                  % exit

4. Install CoST. Download cost-2.3-2001-12-20.tar.gz from http://www.flightlab.com/cost/ to ~user_id/.
         % cd
         % zcat cost-2.3-2001-12-20.tar.gz | tar xvf -
         % cd cost-2.3/src
         % ./configure --with-tcl=/usr/lib
         % make all
                  Do not execute "% make package" or "% make" as directed in the CoST installation guide. Doing
                  so will not build the costsh command.
         % make -n install
         % su
         % make install
         % make clean
         % make spotless
         % exit
         % rm -r cost-2.3
         % rm cost-2.3-2001-12-20.tar.gz
5. Install MG/MG++. Download mg-1.2.1.tar.gz from http://www.cs.mu.oz.au/mg/ to ~user_id/. If not available,
copy the file from Tantalos (in ~dasmith/src/). Copy mgpp-2.36.tar.gz from Tantalos (in ~dasmith/src/).
         % cd
         % zcat mg-1.2.1.tar.gz | tar xvf -
         % cd mg-1.2.1
         % ./configure
         % make
         % make check
         % su
         % make install
         % make clean
         % exit
         % rm -r mg-1.2.1
         % rm mg-1.2.1.tar.gz
         % cd
         % tar -zxvf mgpp-2.36.tar.gz
         % cd mgpp-2.36
         % ./configure
         % make
         % su
         % make install
         % make clean
         % exit
         % rm -r mgpp-2.36
         % rm mgpp-2.36.tar.gz

6. Configure webserver. Execute the following:
        % cd /etc/httpd/conf
        % su
        % emacs httpd.conf
                 Set the following in "Section 2: 'Main' server configuration," then save the file:
                           DocumentRoot "/usr/web/docs"
                                    For DocumentRoot, also set:
                                    <Directory "/usr/web/docs">
                                    Options Indexes Includes FollowSymLinks
                           Add to TypesConfig:
                                    AddType image/vnd.dwg .dwg
                                    AddType image/vnd.dxf .dxf
                                    AddType drawing/x-dwf .dwf
                           Alias /icons/ "/usr/web/icons/"
                           ScriptAlias /cgi-bin/ "/usr/web/cgi-bin/"

                  Immediately following Section 2, add to a new line:
                         XBitHack on
         % exit

7. Start webserver. Execute following:
         % su
         % /sbin/chkconfig --level 2345 httpd on
         % /etc/init.d/httpd start
         % exit
8. Configure Postgres. If one does not already exist, create a "postgres" user (and password) with the Red Hat
User Manager. If one exists, change its password:
        % su
        % passwd postgres
                Change password for user postgres
        % exit

9. Start Postgres. Execute the following:
         % su
         % /sbin/chkconfig --level 2345 postgresql on
         % /etc/init.d/postgresql start
         % exit

10. Create Postgres users. Use the "createuser" command; use the "dropuser" command to delete a user which has
been created incorrectly. Execute the following:
         % su postgres
                  Use password created step 8
         % createuser user_id
                  For the hopper administrator. Use your own user id. When prompted, give permission to create
                  databases and users
         % createuser apache
                  For the webserver daemon. When prompted, forbid permission to create databases and users
         % exit

11. Create Postgres sor, archdb, and londondb databases. Execute the following while logged on as the hopper
administrator (i.e. logged on as yourself):
        % cd
        % createdb sor
        % createdb archdb
        % createdb londondb

12. Define environment variables. Execute the following:
        % cd
        % emacs .bash_profile
                Add the following variables and values. Also add the variables to the "export" list, then save the
                file:
                        CVSROOT=:pserver:user_id@tantalos.perseus.tufts.edu:/local/cvsroot
                        SGML_CATALOG_FILES=/usr/sgml/dtd/catalog
                        COSTLIB=/usr/local/lib/cost2.3
                        MORPHLIB=/usr/sgml/morph/stemlib

13. Initialize CVS. Execute the following:
         % cd
         % cvs -d :pserver:user_id@tantalos.perseus.tufts.edu:/local/cvsroot login
                 Use the CVS password from the vault

14. Install the run-time code with CVS. Execute the following:
        % cd
        % cvs checkout web
        % su
        % mv ~user_id/web/ /usr/web/
        % ln -s /usr/web /web
        % exit
        % cd /usr/web/cgi-src
        % cvs checkout common filters perl
        % make gkfilts perlmods
15. Install Mapserver. Download mapserver-3.6.4.tar.gz from http://mapserver.gis.umn.edu/ to ~user_id/.
        % cd
        % mv mapserver-3.6.4.tar.gz /usr/web/cgi-src/mapserver-3.6.4.tar.gz
        % cd /usr/web/cgi-src/
        % tar -zxvf mapserver-3.6.4.tar.gz
        % cd mapserver-3.6.4
        % ./configure
        % less Makefile
                   Check settings in auto-generated Makefile. Edit the file if necessary.
        % make
        % ./mapserv
                   Executing mapserv should display the text: "This script can only be used to decode form results
                   and should be initiated as a CGI process via a httpd server." This indicates a successful build.
        % cd mapscript/perl
        % perl Makefile.PL
        % make
        % su
        % make install
        % exit
        % cd ../..
        % cp mapserv /usr/web/cgi-bin/mapserv
        % cd ..
        % rm mapserver-3.6.4.tar.gz

16. Install Java. Download Java 2 SDK Standard Edition (j2sdk-1_4_1_01-linux-i586-rpm.bin) from
http://java.sun.com/ to ~user_id/.
          % cd
          % chmod a+x j2sdk-1_4_1_01-linux-i586-rpm.bin
          % ./j2sdk-1_4_1_01-linux-i586-rpm.bin
          % su
          % rpm -iv j2sdk-1_4_1_01-fcs-linux-i586-rpm
          % exit
          % rm j2sdk-1_4_1_01-linux-i586-rpm.bin
          % rm j2sdk-1_4_1_01-fcs-linux-i586-rpm

17. Install Xalan. Download xalan-j_2_4_1-bin.tar.gz from http://xml.apache.org/xalan-j/ to ~user_id/. Add the
appropriate classpaths.
        % cd
        % tar -zxvf xalan-j_2_4_1-bin.tar.gz
        % mv xalan-j_2_4_1 /usr/web/cgi-bin/Progs/xalan-j_2_4_1
        % rm xalan-j_2_4_1-bin.tar.gz
        % emacs .bash_profile
                  Add/modify the following variables and values. Also add the variables to the "export" list, then
                  save the file:
                           JAVA_HOME=/usr/java/j2sdk1.4.1_01
                           PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
                           CLASSPATH=/usr/web/cgi-bin/Progs/xalan-j_2_4_1/bin/xalan.jar: /usr/web/cgi-
                           bin/Progs/xalan-j_2_4_1/bin/xml-apis.jar:/usr/web/cgi-bin/Progs/xalan-
                           j_2_4_1/bin/xercesImpl.jar:.

         Optional: Install Xerces 2. Download Xerces-J-bin.2.2.1.tar.gz, Xerces-J-src.2.2.1.tar.gz, Xerces-J-
         tools.2.2.1.tar.gz from http://xml.apache.org/xerces2-j/ to ~user_id/.
18. Install the compile-time code with CVS. Execute the following:
        % cd
        % cvs checkout sgml
        % su
        % mv ~user_id/sgml/ /usr/sgml/
        % ln -s /usr/sgml /sgml
        % exit
        % cd /usr/sgml
        % cvs checkout texts
                  Note: there is no separate "editing" module (automatic tagging tools) for checkout, but an
                  "editing" directory is contained in the "sgml" module. Also, the "morph" module (Morpheus code
                  and data) and the "qasuite" module (regression tests and installation procedures) may also be
                  checked out if desired.

19. Create required symlinks. Execute the following:
       % cd
       % ln -s /usr/sgml/xml/wlist /usr/web/cgi-bin/DBs/Glimpse/wlist
       % ln -s /usr/sgml/xml/wlist /usr/web/cgi-bin/DBs/MG/wlist
       % ln -s /usr/sgml/xml/texts /usr/web/cgi-bin/XML

20. Create optional symlinks. Execute the following:
       % cd
       % su
       % ln -s /usr/sgml/xml/pix /pix
       % exit

21. Mount the image files. Execute the following:
       % cd
       % su
       % mkdir /mnt/images
       % mount geryon.perseus.tufts.edu:/images /mnt/images
       % emacs /etc/fstab
                 Add the following lines, then save the file:
                           geryon.perseus.tufts.edu:/images /mnt/images      nfs      defaults 0 0
       % exit
       % rm -r /usr/web/cgi-bin/Images
                 Remove pre-existing directory to make the symlink
       % ln -s /mnt/images /usr/web/cgi-bin/Images
       % cd /usr/web/docs
       % ln -s ../cgi-bin/Images Images
       % ln -s ../cgi-bin/Images/thumbs Thumbs

22. Mount additional drives. Execute the following:
       % cd
       % su
       % mkdir /mnt/typhon
       % mount typhon.perseus.tufts.edu:/typhon /mnt/typhon
       % emacs /etc/fstab
                Add the following lines, then save the file:
                        typhon.perseus.tufts.edu:/typhon /mnt/typhon         nfs      defaults 0 0
       % ln -s /mnt/typhon /typhon
       % exit
23. Install data with rsync. Execute the following:
        % cd
        % rsync -avz ibis.perseus.tufts.edu::DBs /usr/web/cgi-bin/DBs
        % rsync -avz ibis.perseus.tufts.edu::wlist /usr/sgml/xml/wlist

24. Create system_config file. Execute the following:
       % cd /usr/sgml/xml
       % emacs system_config

                 ## Enter the following information, modified as appropriate
                 system:Perseus
                 perseus:yes
                 development:yes
                 webdir:/web
                 webuser:apache
                 library:/usr/lib/perl5/5.6.0/i386-linux:/usr/lib/perl5/site_perl/5.6.0
                 path:/usr/local/bin:/usr/java/j2sdk1.4.1_01/bin

                 ## Classpath required for XSLT
                 classpath:/usr/web/cgi-bin/Progs/xalan-j_2_4_1/bin/xalan.jar:/usr/web/cgi-bin/Progs/xalan-
                 j_2_4_1/bin/xml-apis.jar:/usr/web/cgi-bin/Progs/xalan-j_2_4_1/bin/xercesImpl.jar:.

                 costlib:/usr/local/lib/cost2.3
                 # morphlib:/usr/sgml/morph/stemlib

                 sor_access:dbi:Pg:dbname=sor
                 sor_dbms:pgsql
                 sor_name:sor
                 sor_monitor:psql
                 tgn:-h tantalos.perseus.tufts.edu tgn
                 gazetteers:perseus tgn bart
                 extra_dbs:arch.sch atlas.sch beazley.sch

                 #source:../doc/doc.xml
                 #source:../texts/Bolles/bolles.xml
                 #source:../texts/Bolles/dcabolles.xml
                 #source:../texts/Boyle/boyle.xml
                 #source:../texts/Tufts/tufts150.xml
                 #source:../texts/USGS/nsdl-alist.xml
                 #source:ammem.xml
                 source:classics.xml
                 source:corpora.xml
                 #source:cwar.xml
                 #source:cwimbook.xml
                 #source:ddbdp.xml
                 source:develop.xml
                 #source:docsouth.xml
                 #source:earlymod.xml
                 #source:external.xml
                 #source:harvest/archives.db
                 #source:harvest/harvest.db
                 #source:mpi.xml
                 source:persinfo.xml
                 source:persres.xml

                 source:/web/cgi-bin/DBs/Pg/Raw/ptext.images.txt
                 #source:/mnt/lagash/Transfer/dca.ptext.txt
25. Create develop.xml file. Execute the following:
       % cd /usr/sgml/xml
       % emacs develop.xml

                  ## Enter the following information, modified as appropriate
                  <?xml version="1.0"?>
                  <rdf:RDF xmlns="http://www.perseus.org/meta/perseus.rdfs#"
                       xmlns:dc="http://purl.org/dc/elements/1.1/"
                       xmlns:dcterms="http://purl.org/dc/terms/"
                       xmlns:dctype="http://purl.org/dc/dcmitype/"
                       xmlns:perseus="http://www.perseus.org/meta/perseus.rdfs#"
                       xmlns:persq="http://www.perseus.org/meta/persq.rdfs#"
                       xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                       xmlns:tufts="http://www.tufts.edu/"
                  >

                  Example record:
                  <rdf:Description rdf:about="Perseus:text:1999.00.0001">
                  <text>Reisner/reisner_giza.sgml</text>
                  <persq:template>classics.html</persq:template>
                  </rdf:Description>

                  </rdf:RDF>

26. Build archaeology *.sgml files. Execute the following:
        % cd /usr/sgml/texts/ArchDB
        % make all > ~user_id/archdbbuild.log 2>&1
                Builds building.sgml, coin.sgml, gem.sgml, sculpture.sgml, site.sgml, vase.sgml, and flat.sgml.
                Check the log file for errors. Make will not produce good sgml files if the Pg.pm module is not in
                the correct directory; see "III.1. Install Red Hat Linux: DBD-Pg Perl module" above.

27. Build Smith (antiquity and geography) dictionaries *.sgml files. Execute the following:
        % cd /usr/sgml/texts/Smith
        % make do_xrefs
        % make all > ~user_id/smithbuild.log 2>&1
                Builds geo.sgml, realia.sgml, results.lis.

28. Configure the hopper. Execute the following:
       % cd /usr/sgml/xml
       % make ids.mk > ~user_id/idsmake.log 2>&1
                Check the log file for errors. If the final line reads "make: 'ids.mk' is up to date," hopper
                installation may proceed successfully even if errors were logged. But if there are errors, it is better
                to fix them and delete ids.mk. Then run the "make ids.mk" step again.

29. Build Postgres databases.
        % cd /usr/sgml/xml
        % make sor.pg
        % cd /usr/web/cgi-bin/DBs/Pg
        % make all > ~user_id/postgresbuild.log 2>&1
                Builds admin.db, archdb.db, londondb.db, papy.db, sor.db, and tlglsj.db.
        % cd /usr/sgml/xml/pix
        % make all > ~user_id/pixbuild.log 2>&1
                Builds the sor database "image_version" and "image_location" tables that are necessary for image
                tiling
30. Build run-time code.
        % cd /usr/web/cgi-src
        % make clean
        % make gkfilts perlmods > ~user_id/rtcodebuild.log 2>&1
                (gkfilts:) Builds GreekXlit, Sgreek, SMK2, UTF8, SuperGreek, SPionic, CUTF8, gkbabel, TeXlit.
                (perlmods:) Builds Mdb.pm.

31. Build texts. Execute the following:
        either:
        % cd /usr/sgml/xml
        % make cats > ~user_id/textsbuild.log 2>&1&
                 Builds the sor database "catalog" table, necessary for the perscoll.data target which must be
                 successfully built (with "make develop") for the Perseus Table of Contents to work properly.
        % make develop >> ~user_id/textsbuild.log 2>&1&
                 Builds all texts from the sources listed in the system_config file, and creates required files in the
                 empty /usr/sgml/xml/wlist/1999.00 directory.
                 Check the log file for errors. If there are errors, fix them and execute "make clean" before
                 performing this step again.

         or:
         % cd /usr/sgml/xml
         % make all > ~user_id/textsbuild.log 2>&1&
                 Check the log file for errors. If there are errors, fix them and execute "make clean" before
                 performing this step again.

32. Build compile-time databases.
        % cd /usr/sgml/xml/sor
        % make install.topo geo.db > ~user_id/sorbuild.log 2>&1
                (install.topo:) Copies topo.mi and topo.md up one directory to /usr/sgml/xml.
                (geo.db:) Prerequisite files (tgn.sql, tgnfilt, topostand, and ../geo/perseus.raw) are all maintained
                under CVS. Make will not produce geo.db successfully if the identd service is not configured
                correctly; see "II.3. Configure and enable identd service" above.
        % make geofull.md >> ~user_id/sorbuild.log 2>&1
                Builds geofull.md and geofull.mi.
        % cd /usr/sgml/xml/geo
        % make geometa.md atlas.db > ~user_id/geobuild.log 2>&1
                Check the log file for errors. If there are errors, fix them and execute "make clean" before
                performing this step again.
                (geometa.md:) Make will not produce geometa.md successfully if /usr/sgml/xml/wlist/1999.00
                directory is empty; see "III.31. Build texts" above.
                (atlas.db:) Make will not produce atlas.db successfully if the "atlas" table does not exist in the sor
                database; to add this table, run "make cats" as described in "III.31. Build texts" above.

33. Build editing routines.
        % cd /usr/sgml/editing
        % make all > ~user_id/editingbuild.log 2>&1

34. Test installation. Open the web error log and test the local installation with a web browser.
        % cd /etc/httpd/logs
        % tail -f error_log
35. Set up periodic system rebuild. Refresh code using cvs and data using rsync.
        % cd ~user_id/crontab
        % emacs schedule

                 Example schedule, updates Saturdays at 10:00 pm:
                 00 22 * * 6 /usr/bin/perl ~user_id/cron/hopper_update

        % crontab schedule
                Note: to display the crontab file, execute % crontab -l; to remove the crontab file, execute %
                crontab -r.
        % emacs hopper_update

                 #!/bin/bash

                 # update databases and local cvs files

                 day=$(date +"%A")
                 logfile="/tmp/updates_${day}.lis"
                 echo "creating $logfile at $(date)"
                 echo "updates start at $(date)" > $logfile

                 export PATH="/usr/local/bin:/usr/sgml/morph/bin:$PATH:."
                 export TMPDIR="/usr/tmp"

                 echo "now updating run-time code and html files"
                 echo "" >> $logfile
                 echo "" >> $logfile
                 echo "now updating run-time code and html files" >> $logfile
                 cd /usr/web
                 cvs update >> ${logfile} 2>>$logfile

                 echo "now building run-time code at $(date)"
                 echo "" >> $logfile
                 echo "" >> $logfile
                 echo "now building run-time code at $(date)" >> $logfile
                 cd /usr/web/cgi-src
                 make -k gkfilts perlmods >> $logfile 2>>$logfile

                 echo "now updating compile-time code"
                 echo "" >> $logfile
                 echo "" >> $logfile
                 echo "now updating compile-time code" >> $logfile
                 cd /usr/sgml
                 cvs update >> ${logfile} 2>>$logfile

                 echo "now building the editing routines at $(date)"
                 echo "" >> $logfile
                 echo "" >> $logfile
                 echo "now building the editing routines at $(date)" >> $logfile
                 cd /usr/sgml/editing
                 make -k all >> ${logfile} 2>>$logfile
echo "now syncing databases"
echo "" >> $logfile
echo "" >> $logfile
echo "now syncing databases" >> $logfile
rsync -avz ibis.perseus.tufts.edu::DBs /usr/web/cgi-bin/DBs >> $logfile 2>>$logfile
rsync -avz ibis.perseus.tufts.edu::wlist /usr/sgml/xml/wlist >> $logfile 2>>$logfile

echo "updates complete at $(date)"
echo "" >> $logfile
echo "" >> $logfile
echo "updates complete at $(date)" >> $logfile

export COSTLIB=/usr/local/lib/cost2.3
export SGML_CATALOG_FILES=/usr/sgml/dtd/catalog
export WEBDIR=/usr/web
export TEXTDIR=/usr/sgml/xml/texts
export MORPHLIB=/usr/sgml/morph/stemlib

echo "now building Postgres databases at $(date)"
echo "" >> $logfile
echo "" >> $logfile
echo "now building Postgres databases at $(date)" >> $logfile
cd /usr/web/cgi-bin/DBs/Pg
make -k all >> $logfile 2>>$logfile

echo "" >> $logfile
echo "" >> $logfile
echo "now building Images database at $(date)" >> $logfile
cd /usr/sgml/xml/pix
make -k all >> $logfile 2>>$logfile

# missing morpheus components will throw non-fatal errors; these
# are registered as "other errors" in emailed summary of the logfile.
echo "" >> $logfile
echo "" >> $logfile
echo "now building texts at $(date)" >> $logfile
cd /usr/sgml/xml
make -k all >> $logfile 2>>$logfile

echo "" >> $logfile
echo "" >> $logfile
echo "now building compile-time databases at $(date)" >> $logfile
cd /usr/sgml/xml/sor
make -k install.topo geo.db geofull.md >> $logfile 2>>$logfile
cd /usr/sgml/xml/geo
make -k geometa.md atlas.db >> $logfile 2>>$logfile

self="$(id -un)@perseus.tufts.edu"
/usr/sgml/xml/log_summary $logfile | mail -s "summary of $(hostname -s) $logfile" $self

echo "done at $(date)"
echo "" >> $logfile
echo "" >> $logfile
echo "done at $(date)" >> $logfile

				
DOCUMENT INFO