ReferencePlatforms/Linux-CentOS-5.0: Difference between revisions
Line 204: | Line 204: | ||
python setup.py install --prefix=/tools/buildbot-077 | python setup.py install --prefix=/tools/buildbot-077 | ||
cd /tools; ln -s buildbot-trunk buildbot | cd /tools; ln -s buildbot-trunk buildbot | ||
# buildbotcustom is only required if you're running a Buildbot master | |||
mkdir buildbotcustom | mkdir buildbotcustom | ||
cd buildbotcustom | cd buildbotcustom |
Revision as of 13:31, 11 April 2008
This procedure will re-create the CentOS 5.0-based reference VM image. The current version is Version 4. Internally, this VM is named CentOS-5.0-ref-tools-vm.
Things Done For You
Version 2
Install CentOS 5.0 from CDs
f749d7e17fa01604b9956304efba2333 CentOS-5.0-i386-bin-1of6.iso 963258ceafda5c5e6f79be86028b6b3d CentOS-5.0-i386-bin-2of6.iso a08ec9ccfdc89c24f3d6567219f90c42 CentOS-5.0-i386-bin-3of6.iso b31c239009b780d1c89c311c192e43be CentOS-5.0-i386-bin-4of6.iso 0c3990be2271bf44c1495aa0003b5552 CentOS-5.0-i386-bin-5of6.iso 9e6f91a5292f46b02777133765fc03fe CentOS-5.0-i386-bin-6of6.iso
Package Selection
The Easy Way: the installer kickstart file (stored in internal repo).
The Hard Way:
While installing, select a the GNOME Desktop and then select Custom package development; the following categories were selected:
- Desktop Environments
- Gnome Desktop Environment
- Applications
- Editors
- Test-based internet
- Add lynx
- Development
- Development Tools
- Development Libraries
- X Software Development
- GNOME Software Development
- Legacy Software Development
- Servers
- Turn all off, except for "Printing Support
- Base System
- Turn off Dialup Networking
- Turn on System Tools
Some Sys-prepping
On first boot, CentOS will ask some questions:
- Turn the firewall off (we run our build machines on their own network, behind a firewall)
- Disable SELinux
- Enable NTP
- Login; install VMwareTools-3.0.1-32039.rpm
- vmware-config-tools.pl
- add clock=pit and vdso=no lines to /boot/grub/grub.conf
- turn on syncTime in VMware config
- for s in auditd avahi-daemon acpid bluetooth cpuspeed hplip hidd mcstrans pcscd ntpd cups cups-config-daemon mdmonitor openibd smartd pcmcia isdn atd gpm anacron autofs apmd kudzu yum-updated; do chkconfig $s off; done
- chkconfig vncserver on
- Copy over cltbld's ssh keys from another tinderbox
- Edit /etc/mail/sendmail.cf and add mail.build.mozilla.org as the "Smart Relay"
- rm /etc/sshd/ssh_host_*
Add the following lines to ~/.bash_profile
export CVS_RSH=ssh export JAVA_HOME=/builds/jdk export TBOX_CLIENT_CVS_DIR="/builds/tinderbox/mozilla/tools"
Install Sun Java JDK
Note: we should archive this binary somewhere
- Go to http://java.sun.com/javase/downloads/
- Click through to JDK 5.0 Update 10
- Download the "Linux self-extracting file"... not the RPM
d916c24bed9eef7aebc2626115e14a11 jdk-1_5_0_10-linux-i586.bin
- Save to /tools
cd /tools chmod 0755 ./dist/jdk-1_5_0_10-linux-i586.bin ./dist/jdk-1_5_0_10-linux-i586.bin # type 'yes' to accept the license ln -s jdk1.5.0_10/ jdk
Make GCC 4.1 (redhat branch)
md5sum gcc-4.1.1-30.src.rpm # 555b8cb95d3d7d851b2ebd5c3cec7837 rpm2cpio gcc-4.1.1-30.src.rpm | cpio -i gcc-4.1.1-20061011.tar.bz2 tar xfvj gcc-4.1.1-20061011.tar.bz2 mkdir gcc-obj-release cd gcc-obj-release/ ../gcc-4.1.1-20061011/configure --enable-long-long --enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++ --with-system-zlib --prefix=/tools/gcc-4.1.1 2>&1 | tee ../gcc-4.1.1-configure.log make 2>&1 | tee ../gcc-4.1.1-make.log make install 2>&1 | tee ../gcc-4.1.1-make_install.log
Build Python 2.5.1
(Some VMs use Python 2.5 or Python 2.4.4 but this is what is on the ref platform.)
wget http://python.org/ftp/python/2.5.1/Python-2.5.1.tar.bz2 tar xfvj dist/Python-2.5.1.tar.bz2 cd Python-2.5.1/ ./configure --prefix=/tools/python-2.5.1 2>&1 | tee /tools/dist/logs/python2.5.1-configure.log make 2>&1 | tee /tools/dist/logs/python2.5.1-make.log make install 2>&1 | tee /tools/dist/logs/python2.5.1-make_install.log cd /tools/ ln -s python2.5.1/ python
Version 3
Make directories
mkdir -p /tools/dist/logs mkdir -p /builds/logs
Initial Setup Steps
export PYTHONHOME="/tools/python" export PATH="/tools/python/bin:$PATH"
Installing Zope Interface
cd /tools/dist/ wget http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz tar xfvz zope.interface-3.3.0.tar.gz cd zope.interface-3.3.0/ python setup.py install --prefix=/tools/zope-interface-3.3.0 cd /tools; ln -s zope-interface-3.3.0/ zope-interface export PYTHONPATH="/tools/zope-interface/lib/python2.5/site-packages/:$PYTHONPATH"
Installing Twisted
cd /tools/dist/ wget http://tmrc.mit.edu/mirror/twisted/Twisted/2.4/TwistedCore-2.4.0.tar.bz2 wget http://tmrc.mit.edu/mirror/twisted/Twisted/2.4/Twisted-2.4.0.tar.bz2 tar xfvj TwistedCore-2.4.0.tar.bz2 tar xfvj Twisted-2.4.0.tar.bz2 cd TwistedCore-2.4.0 python setup.py install --prefix=/tools/twisted-core-2.4.0 pushd /tools/; ln -s twisted-core-2.4.0/ twisted-core; popd export PYTHONPATH="/tools/twisted-core/lib/python2.5/site-packages:$PYTHONPATH" cd /tools/dist/Twisted-2.4.0/ python setup.py install --prefix=/tools/twisted-2.4.0 cd /tools; ln -s twisted-2.4.0 twisted export PYTHONPATH="/tools/twisted/lib/python2.5/site-packages/:$PYTHONPATH"
Version 4
Installing Mercurial
wget http://www.selenic.com/mercurial/release/mercurial-0.9.5.tar.gz tar -zvxf mercurial-0.9.5.tar.gz cd mercurial-0.9.5 export PYTHONHOME="/tools/python" export PATH="/tools/python/bin:$PATH" python setup.py install
Installing Scratchbox
As root:
wget http://repository.maemo.org/stable/chinook/maemo-scratchbox-install_4.0.1.sh chmod a+x ./maemo-scratchbox-install_4.0.sh ./maemo-scratchbox-install_4.0.sh -s /scratchbox /scratchbox/sbin/sbox_adduser cltbld yes
As cltbld:
Comment out the PYTHONHOME and PATH entries in ~/.bash_profile.
source ~/.bash_profile wget http://tablets-dev.nokia.com/chinook/maemo-sdk-install_4.0.1.sh chmod +x maemo-sdk-install_4.0.sh bash maemo-sdk-install_4.0.sh /scratchbox/login wget http://ftp.gnome.org/pub/gnome/sources/libIDL/0.8/libIDL-0.8.9.tar.gz tar -xzvf libIDL-0.8.9.tar.gz cd libIDL-0.8.9 ./configure --prefix=/usr make make install
Remove the comments from the PYTHONHOME and PATH entries in ~/.bash_profile and source it again.
Installing Nagios NRPE Daemon
wget http://dag.wieers.com/rpm/packages/nagios-plugins/nagios-plugins-1.4.9-1.el5.rf.i386.rpm wget http://dag.wieers.com/rpm/packages/nagios-nrpe/nagios-nrpe-2.5.2-1.el5.rf.i386.rpm wget http://dag.wieers.com/rpm/packages/nagios-nrpe/nagios-plugins-nrpe-2.5.2-1.el5.rf.i386.rpm rpm --nodeps -i *.rpm chkconfig --level 235 nrpe on # todo: make sure this is right after configs get checked in cvs co -d nagios mozilla/tools/nagios mv nagios/nrpe-linux.cfg /etc/nagios/nrpe.cfg
Post-Install Setup
Post-install instructions are written for the latest version (currently, Version 4).
You should have a /builds drive added to the VM before completing this section.
Move Scratchbox
Scratchbox takes up a non-trivial amount of space and should be moved to a different partition.
- Boot into single user mode (append 'init=/bin/sh' to the kernel params from grub).
- mount -o remount,rw /
- mv /scratchbox /builds
- ln -s /builds/scratchbox /scratchbox
- mount -o remount,ro /
- Reboot the VM.
Installing BuildBot
Because our Buildbot code changes fairly regularly we don't keep a copy of it on the VM.
export PYTHONPATH=".:/tools/zope-interface/lib/python2.5/site-packages/:/tools/twisted-core/lib/python2.5/site-packages:/tools/twisted/lib/python2.5/site-packages/:$PYTHONPATH" export PYTHONHOME="/tools/python" export PATH="/tools/python/bin:/tools/twisted/bin:/tools/twisted-core/bin:$PATH" cd /tools cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d buildbot-077 mozilla/tools/buildbot cd /tools/buildbot-077 python setup.py install --prefix=/tools/buildbot-077 cd /tools; ln -s buildbot-trunk buildbot # buildbotcustom is only required if you're running a Buildbot master mkdir buildbotcustom cd buildbotcustom cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d buildbotcustom mozilla/tools/buildbotcustom
Path Setup
Add the appropriate paths to the cltbld user's .bash_profile
export PYTHONPATH="/tools/buildbotcustom:/tools/buildbot/lib/python2.5/site-packages:/tools/twisted/lib/python2.5/site-packages:/tools/twisted-corelib/python2.5/site-packages/:/tools/zope-interface/lib/python2.5/site-packages/" export PATH="/opt/local/bin:/tools/buildbot/bin:/tools/twisted/bin:/tools/twisted-core/bin:$PYTHONHOME/bin:$PATH"
To build mozilla
The mozconfig for building mozilla should contain the following settings:
CC=/tools/gcc/bin/gcc CXX=/tools/gcc/bin/g++