Configuring a Red Hat Enterprise Linux 6 machine for WeBWorK
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.
If you are using kickstart to build your machines, then this is what we put into our
%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.
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
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.