ReferencePlatforms/Linux-CentOS-5.0: Difference between revisions
(remove dup md5sum) |
No edit summary |
||
Line 1: | Line 1: | ||
This procedure will re-create the CentOS 5.0-based reference VM image. | This procedure will re-create the CentOS 5.0-based reference VM image. The current version is '''Version 4''' | ||
== Install CentOS 5.0 from CDs == | = Things Done For You = | ||
== Version 2 == | |||
=== Install CentOS 5.0 from CDs === | |||
f749d7e17fa01604b9956304efba2333 CentOS-5.0-i386-bin-1of6.iso | f749d7e17fa01604b9956304efba2333 CentOS-5.0-i386-bin-1of6.iso | ||
Line 10: | Line 12: | ||
9e6f91a5292f46b02777133765fc03fe CentOS-5.0-i386-bin-6of6.iso | 9e6f91a5292f46b02777133765fc03fe CentOS-5.0-i386-bin-6of6.iso | ||
=== Package Selection === | |||
= Package Selection = | |||
'''The Easy Way''': the installer kickstart file. | '''The Easy Way''': the installer kickstart file. | ||
Line 37: | Line 38: | ||
** Turn ''on'' System Tools | ** Turn ''on'' System Tools | ||
== Some Sys-prepping | === Some Sys-prepping === | ||
On first boot, CentOS will ask some questions: | On first boot, CentOS will ask some questions: | ||
Line 47: | Line 48: | ||
# Login; install VMwareTools-3.0.1-32039.rpm | # Login; install VMwareTools-3.0.1-32039.rpm | ||
# vmware-config-tools.pl | # vmware-config-tools.pl | ||
# add clock=pit | # add clock=pit and vdso=no lines to /boot/grub/grub.conf | ||
# turn on syncTime in VMware config | # 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 | # 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 | ||
Line 61: | Line 62: | ||
export TBOX_CLIENT_CVS_DIR="/builds/tinderbox/mozilla/tools" | export TBOX_CLIENT_CVS_DIR="/builds/tinderbox/mozilla/tools" | ||
== Install Sun Java JDK == | === Install Sun Java JDK === | ||
Note: we should archive this binary somewhere | Note: we should archive this binary somewhere | ||
Line 79: | Line 80: | ||
ln -s jdk1.5.0_10/ jdk | ln -s jdk1.5.0_10/ jdk | ||
== Make GCC 4.1 (redhat branch) == | === Make GCC 4.1 (redhat branch) === | ||
md5sum gcc-4.1.1-30.src.rpm | md5sum gcc-4.1.1-30.src.rpm | ||
# 555b8cb95d3d7d851b2ebd5c3cec7837 | # 555b8cb95d3d7d851b2ebd5c3cec7837 | ||
Line 91: | Line 92: | ||
make install 2>&1 | tee ../gcc-4.1.1-make_install.log | make install 2>&1 | tee ../gcc-4.1.1-make_install.log | ||
= Build Python 2.5 = | === Build Python 2.5 === | ||
wget http://www.python.org/ftp/python/2.5/Python-2.5.tar.bz2 | wget http://www.python.org/ftp/python/2.5/Python-2.5.tar.bz2 | ||
Line 104: | Line 105: | ||
cd /tools/ | cd /tools/ | ||
ln -s python2.5.0/ python | ln -s python2.5.0/ 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:<br /> | |||
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:<br /> | |||
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).<br /> | |||
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 PATH="/tools/twisted/bin:/tools/twisted-core/bin:$PATH" | |||
cd /tools | |||
cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d buildbot-076 -r BUILDBOT_0_7_6_BRANCH mozilla/tools/buildbot | |||
cd /tools/buildbot-trunk | |||
export PYTHONPATH=.:$PYTHONPATH | |||
python setup.py install --prefix=/tools/buildbot-076 | |||
cd /tools/dist | |||
cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d botrunner mozilla/tools/botrunner.py | |||
cp botrunner/botrunner.py /tools/buildbot-trunk/bin/ | |||
rm -rf botrunner/ | |||
cd /tools; ln -s buildbot-trunk buildbot | |||
== Path Setup == | |||
Add the appropriate paths to the cltbld user's .bash_profile | |||
export PYTHONPATH="/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 == | == To build mozilla == |
Revision as of 15:59, 3 March 2008
This procedure will re-create the CentOS 5.0-based reference VM image. The current version is Version 4
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.
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
wget http://www.python.org/ftp/python/2.5/Python-2.5.tar.bz2 # ddb7401e711354ca83b7842b733825a3 Python-2.5.tar.bz2 tar xfvj dist/Python-2.5.tar.bz2 cd Python-2.5/ ./configure --prefix=/tools/python-2.5.0 2>&1 | tee /tools/dist/logs/python2.5.0-configure.log make 2>&1 | tee /tools/dist/logs/python2.5.0-make.log make install 2>&1 | tee /tools/dist/logs/python2.5.0-make_install.log cd /tools/ ln -s python2.5.0/ 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 PATH="/tools/twisted/bin:/tools/twisted-core/bin:$PATH" cd /tools cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d buildbot-076 -r BUILDBOT_0_7_6_BRANCH mozilla/tools/buildbot cd /tools/buildbot-trunk export PYTHONPATH=.:$PYTHONPATH python setup.py install --prefix=/tools/buildbot-076 cd /tools/dist cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d botrunner mozilla/tools/botrunner.py cp botrunner/botrunner.py /tools/buildbot-trunk/bin/ rm -rf botrunner/ cd /tools; ln -s buildbot-trunk buildbot
Path Setup
Add the appropriate paths to the cltbld user's .bash_profile
export PYTHONPATH="/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++