RHEL6 notes

From WeBWorK_wiki
Revision as of 17:21, 16 June 2021 by Berndsing (talk | contribs) (marked as historical, added tags)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
This article has been retained as a historical document. It is not up-to-date and the formatting may be lacking. Use the information herein with caution.

Configuring a Red Hat Enterprise Linux 6 machine for WeBWorK

Strategy

We install the WeBWorK servers to be single-purpose servers that don't do much of anything else. We presume that shell (login) access is restricted to one or two people who are trusted and that nothing else of consequence is running on the machine. That said, we've adopted the strategy that determining what WeBWorK needs will let us backtrack to determine what needs to be installed in support of that, and that's all we install, except some system monitoring tools.

Installing RHEL 6 base system

We install using kickstart files, as that enables us to install far less at the beginning, then add what we need later. The kickstart file specifies many of the characteristics of the system, not least of which is the list of packages that get installed. This is done in the section labeled %post by listing either a package or package group to install, or one can list packages to remove from a group.

If you install from the DVD and take the minimal installation, then you should be able to get your WeBWorK server running by following the instructions below.

kickstart

If you are using kickstart to build your machines, then this is what we put into our %packages section.

%packages  --ignoremissing
@base
curl
wget
gpm
@development
# exclude some interactive development tools we probably won't ever need
-intltool
-cscope
-ctags
-doxygen
-indent
-swig
-systemtap
-crash
-libXtst
-libart_lgpl
-libgcj
# end of excludes from @development
-autofs
-bluez-gnome
-bluez-libs
-bluez-utils
-cups
-cups-libs
-irda-utils
-nfs-utils
-nfs-utils-lib
-oddjob
-oddjob-libs
-paps
-pcsc-lite
-pcsc-lite-libs
-redhat-lsb
-yp-tools
-ypbind

We don't use NFS or automounter, so we take all that out. If you need it, you can put it back.

Once the server is installed, make sure that you have access to the repository containing the Red Hat packages, either the Red Hat Network, or your installation DVD.

The first thing we do is to update yum itself, as we've sometimes had trouble if it's not. Then, once it is updated, clear all its caches.

/usr/bin/yum update yum\*
/usr/bin/yum clean all

Next, make sure that everything on your system is up-to-date with

/usr/bin/yum -y update

Reboot, as there was almost certainly a kernel or glibc update included. If not, reboot anyway because of superstition, and it's a good excuse to get coffee, tea, stop for the day.

Post-install installations

We next install things we know we need for our environment,

/usr/bin/yum -y install mysql mysql-server \
    httpd httpd-devel httpd-manual mod_perl mod_ssl \
    openssl-perl subversion

We also install these, but they may not be strictly speaking necessary for WeBWorK

/usr/bin/yum -y install kernel-headers kernel-devel \
    ntp net-snmp openssl-devel patch procps python-devel
    python-docs sysstat rpm-build pam_krb5 cvs 

Next we install TeX, though we skip installing the asian language extensions.

/usr/bin/yum -y install texlive\* --exclude \*asian\*

Finally, we get to this set of packages that seem to be definitely required.

/usr/bin/yum -y install netpbm netpbm-progs netpbm-devel gd \
   ghostscript ghostscript-devel ghostscript-fonts ghostscript-gtk \
   perl-TimeDate perl-XML-Parser perl-Net-IP perl-CPAN gdbm-devel

Many of the perl libraries come from EPEL, so we install that

/bin/rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm

Finally, we get to the list of additional perl modules that are required for WeBWorK.

/usr/bin/yum -y --enablerepo epel install libapreq2 perl-libapreq2
   perl-Class-Singleton perl-Time-HiRes \
   perl-Params-Validate perl-DateTime perl-GD perl-XML-Parser \
   perl-Mail-Sender perl-SQL-Abstract perl-String-ShellQuote \
   perl-Class-Data-Inheritable perl-Exception-Class \
   perl-Devel-StackTrace perl-CGI perl-XML-Writer perl-MIME-Lite \
   perl-MailTools perl-version perl-Tie-IxHash \
   perl-Email-Address perl-SOAP-Lite perl-pmtools

There are few packages that are not precompiled and available at EPEL, and those we install using perl's CPAN module.

Older versions of the CPAN module would hang downloading because of a missing FTP_PASSIVE environment variable. If your CPAN installation seems to hang when fetching the package try breaking out, then

export FTP_PASSIVE=1

Otherwise, the following set of perl invocations should complete the perl collection.

perl -MCPAN -e "install Iterator"
perl -MCPAN -e "install Iterator::Util"
perl -MCPAN -e "install Data::UUID"
perl -MCPAN -e "install Digest::SHA1"
perl -MCPAN -e "install UUID::Tiny"
perl -MCPAN -e "install XML::Parser::EasyTree"

At this point, you should be able to read the directions for configuring WeBWorK itself.