1276 lines
49 KiB
ReStructuredText
1276 lines
49 KiB
ReStructuredText
Updates for SL 4 and SL 5.1
|
|
===========================
|
|
|
|
References
|
|
----------
|
|
|
|
- https://wiki.intranet.psi.ch/AIT/LinuxRegularUpdate (U. Beyerle)
|
|
|
|
- https://wiki.intranet.psi.ch/AIT/SL5RegularUpdates200807 (V. Markushin)
|
|
|
|
|
|
Introduction
|
|
------------
|
|
|
|
The following text describes how regular Scientific Linux (SL) updates
|
|
for SL51 and SL4, are performed.
|
|
|
|
A detailed standard procedure is exemplified for an SL 51 update on a
|
|
64 bit machine, but the same operation is followed for other SL
|
|
releases <= SL51 and architectures. Deviations from the standard
|
|
procedure are emphasized in the text.
|
|
|
|
|
|
General Remarks
|
|
~~~~~~~~~~~~~~~
|
|
|
|
Regular Linux Udpates are scheduled every first Wednesday in a month.
|
|
|
|
Create a new Testing Release one week in advance.
|
|
|
|
It is advised to create the new version for a release on the
|
|
respective build system. For example for SL5 i386 do it on tux50 with
|
|
your AFS account, for AFS ACLs see "Required File Permissions On AFS"
|
|
below.
|
|
|
|
When you compile new kernel module RPMS then it's recommended to use
|
|
build systems.
|
|
|
|
|
|
Reasons For Using Build Systems
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
- Performance: Some scripts will just horribly slow down your desktop
|
|
machine, making it almost impossible to work on it while the
|
|
respective script is running. So, using a build system will not
|
|
affect the performance of your desktop computer.
|
|
|
|
- Version conflicts: Some versions of some tools such as yum,
|
|
createrepo, etc., might be different in different SL releases, thus
|
|
to avoid conflicts one should use the version of the tool that comes
|
|
with the corresponding release. Other packages might be missing at
|
|
all, e.g. some devel packages used when RPMS are built or tool like
|
|
createrepo, which are not required on a default Desktop.
|
|
|
|
- Compiling software: For compiling software, e.g. building kernels,
|
|
kernel modules, etc., it first has to be on the right architecture,
|
|
and second it's also recommended to do it in some clean default
|
|
environment, which is a representative for the environments of
|
|
productive systems.
|
|
|
|
|
|
Scientific Linux Mirror at PSI
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
RPMS are taken from our mirror at
|
|
`/afs/psi.ch/software/mirror/scientific/`. The mirror is updated
|
|
daily by a cronjob running on pxeserv01. (See also
|
|
LinuxInstallationServer.)::
|
|
|
|
# file pxeserv01:/etc/cron.d/mirror
|
|
|
|
# Mirroring of rpm repositories at 07:00
|
|
#
|
|
00 07 * * * root /afs/psi.ch/software/mirror/scripts/mirror.sh > /dev/null 2>&1
|
|
|
|
The script `/afs/psi.ch/software/mirror/scripts/mirror.sh` reads
|
|
`/afs/psi.ch/software/mirror/scripts/mirror.conf` to know about
|
|
locations of ftp external software repositories and where to place the
|
|
files on our local mirror.
|
|
|
|
E.g.: The archive
|
|
`ftp://ftp.scientificlinux.org/linux/scientific/46/i386` is locally
|
|
mirrored at `/afs/psi.ch/software/mirror/scientificlinux/46/i386`.
|
|
|
|
|
|
Autoupdate in SL5
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
The script `/usr/sbin/psi-auto-update` is started via cron usually in
|
|
the night and triggers the update, the latter is performed by scripts
|
|
and Puppet. The update is released the first Wednesday of a
|
|
month. Default Desktop computers will be updated during the night from
|
|
Wednesday to Thursday.
|
|
|
|
|
|
Preparatory Work
|
|
----------------
|
|
|
|
Required File Permissions On AFS
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Before starting with performing updates, you need the corresponding
|
|
permissions to do things in the PSI linux repository directory at
|
|
`/afs/psi.ch/software/linux/dist/scientific/`, which is on an AFS
|
|
volume.
|
|
|
|
Check permissions using AFS commands and get the required AFS access.
|
|
The unix commands `ls -l` etc. will work but not show you the relevant
|
|
AFS permissions, instead use the AFS command `fs`.
|
|
|
|
E.g.: Type `fs help` to see a list of command attributes::
|
|
|
|
# fs listacl /afs/psi.ch/software/linux/
|
|
...
|
|
or
|
|
|
|
# fs listacl /afs/psi.ch/software/mirror/
|
|
Access list for /afs/psi.ch/software/mirror is
|
|
Normal rights:
|
|
ait:sw_adm rlidwka
|
|
psi:nodes rl
|
|
system:authuser rl
|
|
|
|
To work in the linux distribution directories you need to be in the
|
|
following AFS groups (output of `pts mem AFS_USERNAME`)::
|
|
|
|
# pts mem gasser_m
|
|
Groups gasser_m (id: 2374) is a member of:
|
|
ait:sw_adm
|
|
linux:users
|
|
ait:users
|
|
|
|
|
|
Prepare Your Build Environment For Building RPMS
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
For building RPMS you have two possibilities:
|
|
|
|
- build locally in your build directories
|
|
|
|
- build on AFS in common build directories
|
|
|
|
|
|
Build locally
|
|
.............
|
|
|
|
Before you start building RPMS you create the following directories on
|
|
each build system.
|
|
|
|
Example for tux50-64::
|
|
|
|
# ssh gasser_m@tux50-64
|
|
# mkdir /scratch/gasser_m
|
|
# cd /scratch/gasser_m
|
|
# mkdir rpm_tmp rpm_topdir
|
|
# cd rpm_topdir
|
|
# mkdir BUILD RPMS SOURCES SPECS SRPMS
|
|
|
|
|
|
Your build environment is set in "~/.rpmmacros"::
|
|
|
|
%WORKDIR %(echo "/scratch/$USER")
|
|
%_topdir /scratch/gasser_m/rpm_topdir
|
|
%_tmppath /scratch/gasser_m/rpm_tmp
|
|
%packager Marc Gasser <marc.gasser@psi.ch>
|
|
%vendor PSI Scientific Linux
|
|
%sl_site slp
|
|
%sl_site_version %(rpm -q --qf "%{v}" sl-release | cut -d"." -f1)
|
|
%os_release %{sl_site}%{sl_site_version}
|
|
%dist .%{os_release}
|
|
%rhel %sl_site_version
|
|
%debug_package %{nil}
|
|
|
|
|
|
The command `rpmbuild` is used to build RPMS. The built RPMS are
|
|
found in the RPMS directory of your build environment on your build
|
|
system.
|
|
|
|
|
|
Build on AFS
|
|
............
|
|
|
|
Change to `/afs/psi.ch/project/linux/src/scientific/RPMS`. There you
|
|
will find separate subdirectories, each for one specific RPM.
|
|
|
|
Check that your `.rpmmacros` does not mess up the build environment
|
|
for this kind of building. Change to the subdirectory of the RPM you
|
|
want to build and use the script `psi-rpmbuild`, which sets up the
|
|
build environment (thus `.rpmmacros` is not required at all). In the
|
|
subdirectory run `psi-rpmbuild -bb` for building a binary package only
|
|
for instance.
|
|
|
|
E.g.: To build the psi-desktop package version 2.x do the following on
|
|
a build system::
|
|
|
|
# cd psi-desktop-2/
|
|
# psi-rpmbuild -bb
|
|
|
|
|
|
The built RPM can be found in the corresponding subdirectory in
|
|
`/afs/psi.ch/project/linux/dist/`.
|
|
|
|
The big advantages of this procedure are, you don't have to install
|
|
the sources on each build system, instead you install them once in
|
|
AFS, and this centralized build environment can be shared among
|
|
different users on different hosts.
|
|
|
|
|
|
Check Diskspace
|
|
~~~~~~~~~~~~~~~
|
|
|
|
Before starting the update check the diskspace left on your file
|
|
systems involved.
|
|
|
|
- For copying new RPMS from the mirror to the repositories
|
|
|
|
To be on the safe side there should be 1 G of free diskspace on the
|
|
respctive AFS volumes, where RPMS are copied to::
|
|
|
|
[gasser_m@pc7377 tmp]$ fs lq /afs/psi.ch/software/linux/dist/scientific/305/
|
|
Volume Name Quota Used %Used Partition
|
|
sw.dist.sl305 25000000 23317560 93%<< 88% <<WARNING
|
|
[gasser_m@pc7377 tmp]$ fs lq /afs/psi.ch/software/linux/dist/scientific/46/
|
|
Volume Name Quota Used %Used Partition
|
|
sw.dist.sl46 25000000 23465039 94%<< 84% <<WARNING
|
|
[gasser_m@pc7377 tmp]$ fs lq /afs/psi.ch/software/linux/dist/scientific/51
|
|
Volume Name Quota Used %Used Partition
|
|
sw.dist.sl51 30000000 25044971 83% 84%
|
|
|
|
- For compiling kernel modules
|
|
|
|
1G should be enough if you have to compile kernel modules locally on
|
|
your respective build system, e.g. in the `$USER@tux50:/scratch/...`
|
|
directory.
|
|
|
|
|
|
Update SL5 i386 and x86_64
|
|
--------------------------
|
|
|
|
Get Native Scientific Linux Updates
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
This section describes how the particular linux repositories are
|
|
updated by looking for new RPMS in our mirror and copying them from
|
|
there to the repositories.
|
|
|
|
Get the Latest Security Update RPMS
|
|
...................................
|
|
|
|
Get the latest security update RPMS from the local SL51 mirror for
|
|
both architectures, i386 and x86_64 by invoking `make update_all` on
|
|
tux50::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
|
|
# nohup ./run_make_update_all.sh & # this will take some time
|
|
|
|
The upper `make update_all` command invokes the shell script
|
|
`/afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_update_all`.
|
|
The script searches for new security update RPMS, which are not
|
|
allready in the corresponding `.../update.${ARCH}/all/` directory
|
|
(e.g. `/afs/psi.ch/software/linux/dist/scientific/51/update.i386/all/`).
|
|
Thus, when updating all SL versions (3, 4 and 5) you need to run this
|
|
three times, each time from the corresponding `.../scripts/`
|
|
directory. Yet, you don't have to invoke it again and again for each
|
|
architecture, as the script loops through all architectures set by
|
|
`$ARCHS` in the respective dist-config file
|
|
(e.g. `/afs/psi.ch/software/linux/dist/scientific/51/scripts/dist-config`).
|
|
|
|
Check for errors in the corresponding `make update_all` log::
|
|
|
|
# grep -i error ~/tmp/20090629-make-update_all.sl5.output
|
|
...
|
|
|
|
Then run `make rpms_all`. It will keep all symlinks up to date in the
|
|
directory `/afs/psi.ch/software/linux/dist/scientific/51/RPMS_all/` by
|
|
removing dead links and creating new links to the new RPMS. This is
|
|
basically not necessary for keeping up to date the yum repositories,
|
|
rather it's just helpful to have a directory with the list of all RPMS
|
|
of a distribution release::
|
|
|
|
# make rpms_all
|
|
|
|
|
|
Additional RPMs used in Scientific Linux PSI (SLP)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Reference: https://wiki.intranet.psi.ch/AIT/RPMSinSLP
|
|
|
|
Get manually other RPMS from other sources and put them to the
|
|
particular `all` folders.
|
|
|
|
Afterwards, you should run createrepo on the directory where things
|
|
were put into. Then run "make rpms_all" or create symlinks manually.
|
|
|
|
List of some `all` folders::
|
|
|
|
/afs/psi.ch/software/linux/dist/scientific/51/psi/all
|
|
/afs/psi.ch/software/linux/dist/scientific/51/others/all
|
|
/afs/psi.ch/software/linux/dist/scientific/51/nonfree/all
|
|
/afs/psi.ch/software/linux/dist/scientific/51/enhanced/all
|
|
/afs/psi.ch/software/linux/dist/scientific/51/cluster/all
|
|
...
|
|
|
|
|
|
`acroread`
|
|
..........
|
|
|
|
Get acroread RPMS from e.g. RHEL network (https://rhn.redhat.com,
|
|
login: psiaitora; passwd isrhn.ait.) and copy them into
|
|
"/afs/psi.ch/software/linux/dist/scientific/51/nonfree/all/"::
|
|
|
|
acroread-8.1.6-2.el5.i386.rpm
|
|
acroread-plugin-8.1.6-2.el5.i386.rpm
|
|
|
|
|
|
Write also the md5sums into a file and check them after downloading
|
|
the packages.
|
|
|
|
Format of the md5sum file::
|
|
|
|
<md5sum><space><space><filename>
|
|
|
|
728d4109f520336bb6b5f595de9dd2db acroread-8.1.6-2.el5.i386.rpm
|
|
fd1b8fb934140222460ed81c34420d90 acroread-plugin-8.1.6-2.el5.i386.rpm
|
|
|
|
# md5sum -c file.md5sum
|
|
|
|
|
|
Kernel Update SL5
|
|
-----------------
|
|
|
|
This section describes the kernel update for SL51, 32 and 64 bit.
|
|
|
|
The SL5 kernel update procedure described here is basically the same
|
|
for SL4. However, a lot of details such as names of files, kernel
|
|
modules, build systems, etc., differ, thus the whole SL4 procedure is
|
|
shown in its own section, too. See `Kernel Update SL4`.
|
|
|
|
The general remarks below are valid for SL4, too.
|
|
|
|
|
|
General Remarks Referring To Kernel Update
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
When a new SL kernel is released also a lot of corresponding kernel
|
|
module packages are coming with this kernel to extend its
|
|
functionality, e.g. kernel-module-xfs to facilitate Xfs support of the
|
|
kernel.
|
|
|
|
Now, in case a new kernel has been released you have to build a set of
|
|
kernel-module RPMS, which at PSI are provided in addition to those
|
|
coming with the regular SL updates.
|
|
|
|
It's recommended to use dedicated build systems to build RPMS.
|
|
|
|
To compile kernel modules some prerequisites have to be met.
|
|
|
|
- A build environment has to be set up on your build system
|
|
(e.g. tux50-64 for SL5 x86_64), locally or on AFS as discussed
|
|
before.
|
|
|
|
- New kernel and kernel-devel RPMS have to be installed on your build
|
|
system.
|
|
|
|
- The particular kernel module source RPMS have to be installed on
|
|
your build system.
|
|
|
|
- About 1 G of free diskspace.
|
|
|
|
- Note: For compiling new kernel modules the corresponding kernel has
|
|
to be installed on your build system but must not be running and you
|
|
can build the modules in a non-root environment.
|
|
|
|
|
|
Kernel Update SL5 32-bit
|
|
........................
|
|
|
|
Follow the procedure shown in the 64-bit section below. Differences
|
|
between building of the 32 and 64 bit kernel modules are pointed out.
|
|
|
|
The main difference is, first, that you have to build kernel,
|
|
kernel-xen and kernel-PAE modules for 32 bit systems, while you build
|
|
only kernel and kernel-xen modules for 64 bit. The GPFS kernel module
|
|
is build for both, 32 and 64 bit systems.
|
|
|
|
|
|
Kernel Update SL5 64-bit
|
|
........................
|
|
|
|
(Example for PSI update SL5 version 31, June 2009.)
|
|
|
|
Login to your build system and check which kernel packages are already
|
|
installed::
|
|
|
|
# [gasser_m@tux50-64 ~]$ rpm -q kernel{,-xen,-devel,-xen-devel}
|
|
|
|
kernel-2.6.18-92.1.22.el5
|
|
kernel-2.6.18-128.1.1.el5
|
|
kernel-2.6.18-128.1.6.el5
|
|
kernel-xen-2.6.18-92.1.22.el5
|
|
kernel-xen-2.6.18-128.1.1.el5
|
|
kernel-xen-2.6.18-128.1.6.el5
|
|
kernel-devel-2.6.18-92.1.22.el5
|
|
kernel-devel-2.6.18-128.1.1.el5
|
|
kernel-devel-2.6.18-128.1.6.el5
|
|
kernel-xen-devel-2.6.18-92.1.22.el5
|
|
kernel-xen-devel-2.6.18-128.1.1.el5
|
|
kernel-xen-devel-2.6.18-128.1.6.el5
|
|
|
|
|
|
Check whether there is a newer kernel package in the repository::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/update.x86_64/all/
|
|
# ls -1 kernel*-2.* | grep -v module | get-latest-RPM-from-RPM-list.pl -
|
|
...
|
|
kernel-2.6.18-128.1.14.el5
|
|
|
|
Latest version of installed kernels is `2.6.18-128.1.6.el5` , latest
|
|
version in the repository is `2.6.18-128.1.14.el5`, i.e. new SLP
|
|
kernel modules have to be built.
|
|
|
|
Check the diskspace of your build partition, 1G is ok::
|
|
|
|
# [gasser_m@tux50-64 all]$ df -hT /scratch
|
|
Filesystem Type Size Used Avail Use% Mounted on
|
|
/dev/mapper/VolGroup00-LogVol00
|
|
ext3 14G 12G 1.6G 89% /
|
|
|
|
|
|
Is there a listing of all kernel module packages to be built?
|
|
|
|
|
|
Installation Of Kernel And Kernel-devel RPMS On 64 Bit SL5 Build System
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
|
Install new kernel and kernel-devel RPMS as root on tux50-64.
|
|
|
|
RPMS for the following kernels are required: kernel, kernel-xen::
|
|
|
|
# [root@tux50-64]
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/update.x86_64/all/
|
|
# ls -1 kernel-{,devel-,xen-,xen-devel-}2.6.18-128.1.14.el5.x86_64.rpm
|
|
kernel-2.6.18-128.1.14.el5.x86_64.rpm
|
|
kernel-devel-2.6.18-128.1.14.el5.x86_64.rpm
|
|
kernel-xen-2.6.18-128.1.14.el5.x86_64.rpm
|
|
kernel-xen-devel-2.6.18-128.1.14.el5.x86_64.rpm
|
|
|
|
# rpm -ivh kernel-{,devel-,xen-,xen-devel-}2.6.18-128.1.14.el5.x86_64.rpm
|
|
|
|
warning: kernel-2.6.18-128.1.14.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 82fd17b2
|
|
Preparing... ########################################### [100%]
|
|
1:kernel-xen-devel ########################################### [ 25%]
|
|
2:kernel ########################################### [ 50%]
|
|
3:kernel-devel ########################################### [ 75%]
|
|
4:kernel-xen warning: /etc/modprobe.d/blacklist-firewire created as /etc/modprobe.d/blacklist-firewire.rpmnew
|
|
########################################### [100%]
|
|
|
|
|
|
Installation Of Kernel And Kernel-devel RPMS On 32 Bit SL5 Build System
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
|
Again, login as root to your build system to install the kernel
|
|
packages.
|
|
|
|
For the 32 bit system also the PAE kernel modules are required::
|
|
|
|
# [root@tukan50-32]
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/update.i386/all/
|
|
# ls -1 kernel-{,devel-,PAE-,PAE-devel-,xen-,xen-devel-}2.6.18-128.1.14.el5.i686.rpm
|
|
# rpm -ivh kernel-{,devel-,PAE-,PAE-devel-,xen-,xen-devel-}2.6.18-128.1.14.el5.i686.rpm
|
|
|
|
|
|
Installation Of SL5 Kernel Module SRPMS On Build Systems
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
|
Do this on both, the 32 and 64 bit build system.
|
|
|
|
To build the kernel module RPMS the corresponding SRPMS have to be
|
|
installed on your build system first.
|
|
|
|
List of SL5 kernel-module RPMS to be built for i686 and x86_64::
|
|
|
|
Name (without kernel version) Release Remarks
|
|
kernel-module-airprime 2.6.18-1.slp5
|
|
kernel-module-atl2 1.0.40.2-1.slp5
|
|
kernel-module-aufs 0.20070210.cvs-4.slp5
|
|
kernel-module-firewire 2.6.18-2.slp5
|
|
kernel-module-gspcav1 01.00.20-1.slp5
|
|
kernel-module-iwlwifi 1.2.25-1.slp5 currently not builded
|
|
kernel-module-ntfs 2.1.27-0.rr.10.0 currently not builded
|
|
kernel-module-openafs 1.4.6-73.slp5 no SRPM, build script provided by A. Gsell
|
|
kernel-module-qla2xxx 8.01.07.15-1.slp5
|
|
kernel-module-uvcvideo 0.1.0-1.svn148.slp5
|
|
kernel-module-VMwareTools 6530-29999.slp5 no SRPM, build script provided by A. Gsell
|
|
kernel-module-gpfs texttext 64 bit only, no SRPM, build script provided by H.C. Stadler
|
|
|
|
|
|
Copy the PSI relevant source RPMS (SRPMS) to your build environment,
|
|
except sources of kernel modules ntfs, openafs, gpfs and
|
|
VMwareTools. They are built in their own environments.
|
|
|
|
The SRPMS of the following 7 modules are required::
|
|
|
|
aufs firewire gspcav1 uvcvideo qla2xxx atl2 airprime
|
|
(see variable specfiles in /afs/psi.ch/software/linux/dist/scientific/51/scripts/build_kernel_modules.)
|
|
|
|
|
|
They can be found in the directory::
|
|
|
|
/afs/psi.ch/software/linux/dist/scientific/51/psi/all/
|
|
|
|
|
|
Check for latest versions of required SRPMS::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/psi/all/
|
|
# ll {aufs,firewire,gspcav1,uvcvideo,qla2xxx,atl2,airprime}*.src.rpm
|
|
|
|
-rw-r--r-- 1 beyerle ait 7566 Apr 24 22:39 airprime-2.6.18-1.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 56446 Apr 8 11:43 atl2-1.0.40.2-1.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 77012 Apr 8 21:03 atl2-1.0.40.4-4.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 136658 Oct 1 2007 aufs-0.20070210.cvs-4.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 427554 Jul 16 10:48 aufs-0.20080605.cvs-5.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 295158 Aug 21 2007 firewire-2.6.18-1.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 295120 Jan 22 2008 firewire-2.6.18-2.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 217470 May 15 10:36 gspcav1-01.00.20-1.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 195078 Nov 12 2007 gspcav1-1.00.18-1.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 2015550 Mar 10 22:04 qla2xxx-8.01.07.15-1.slp5.src.rpm
|
|
-rw-r--r-- 1 beyerle ait 91123 Dec 7 2007 uvcvideo-0.1.0-1.svn148.slp5.src.rpm
|
|
|
|
|
|
The following versions were taken as the latest: (This list can be
|
|
found in the file
|
|
`tux50-64:/scratch/gasser_m/rpm_topdir/SRPMS/20090624-psi-src-rpms.list`.)::
|
|
|
|
airprime-2.6.18-1.slp5.src.rpm
|
|
atl2-1.0.40.4-4.slp5.src.rpm
|
|
#aufs-0.20080605.cvs-5.slp5.src.rpm # kernel-module-aufs is in SL51update and SL54base now
|
|
firewire-2.6.18-2.slp5.src.rpm
|
|
gspcav1-01.00.20-1.slp5.src.rpm
|
|
qla2xxx-8.01.07.15-1.slp5.src.rpm
|
|
uvcvideo-0.1.0-1.svn148.slp5.src.rpm
|
|
|
|
|
|
For convenience copy them first to your $rpm_topdir/SRPMS/ and then
|
|
unpack them, if not yet done (being still gasser_m@tux50-64)::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/psi/all
|
|
# for i in `cat /scratch/gasser_m/rpm_topdir/SRPMS/20090624-psi-src-rpms.list`
|
|
# do
|
|
# cp $i /scratch/gasser_m/rpm_topdir/SRPMS/
|
|
# done
|
|
|
|
|
|
Then install them into your build environment::
|
|
|
|
# cd /scratch/gasser_m/rpm_topdir/SRPMS/
|
|
# rpm -ivh `cat 20090624-psi-src-rpms.list`
|
|
|
|
1:airprime ########################################### [100%]
|
|
2:atl2 ########################################### [100%]
|
|
3:aufs ########################################### [100%]
|
|
4:firewire ########################################### [100%]
|
|
5:gspcav1 ########################################### [100%]
|
|
6:qla2xxx ########################################### [100%]
|
|
7:uvcvideo ########################################### [100%]
|
|
|
|
|
|
Before continuing with building the kernel modules check out the notes
|
|
below referring to some of them.
|
|
|
|
|
|
Build SL5 PSI Kernel-module RPMS On The Build System
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
|
Now build the 64-bit modules::
|
|
|
|
# [gasser_m@tux50-64]
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
|
|
# ./build_kernel_modules 2.6.18-164.11.1.el5 > \
|
|
# UPDATE_LOG/20100125-build_kernel_modules-2.6.18-164.11.1.el5.x86_64.log 2>&1
|
|
|
|
|
|
The following RPMS were built::
|
|
|
|
# cat ~/tmp/20090624-build_kernel_modules-2.6.18-128.1.14.el5.x86_64.output
|
|
|
|
...
|
|
---------------------------------------------------------------
|
|
List of built kernel-modules for kernel 2.6.18-128.1.14.el5:
|
|
---------------------------------------------------------------
|
|
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-airprime-2.6.18-128.1.14.el5-2.6.18-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-airprime-2.6.18-128.1.14.el5xen-2.6.18-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-atl2-2.6.18-128.1.14.el5-1.0.40.4-4.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-atl2-2.6.18-128.1.14.el5xen-1.0.40.4-4.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-aufs-2.6.18-128.1.14.el5-0.20080605.cvs-5.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-aufs-2.6.18-128.1.14.el5xen-0.20080605.cvs-5.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-firewire-2.6.18-128.1.14.el5-2.6.18-2.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-firewire-2.6.18-128.1.14.el5xen-2.6.18-2.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-gspcav1-2.6.18-128.1.14.el5-01.00.20-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-gspcav1-2.6.18-128.1.14.el5xen-01.00.20-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-qla2xxx-2.6.18-128.1.14.el5-8.01.07.15-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-qla2xxx-2.6.18-128.1.14.el5xen-8.01.07.15-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-128.1.14.el5-0.2.0-1.svn255.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-128.1.14.el5xen-0.2.0-1.svn255.slp5.x86_64.rpm
|
|
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-gpfs-2.6.18-128.1.14.el5-3.2.1-12.3.slp5.psi.x86_64.rpm
|
|
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-openafs-2.6.18-128.1.14.el5-1.4.10-94.slp5.x86_64.rpm
|
|
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-openafs-2.6.18-128.1.14.el5xen-1.4.10-94.slp5.x86_64.rpm
|
|
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-VMwareTools-2.6.18-128.1.14.el5-6530-29999.slp5.x86_64.rpm
|
|
|
|
List of files saved in /tmp/rpms_for_2.6.18-128.1.14.el5 !
|
|
|
|
|
|
Note to Kernel Module Openafs
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The openafs related build scripts are provided by Achim Gsell.
|
|
|
|
If the kernel version is increased, the kernel-module-openafs has to
|
|
be built.
|
|
|
|
If the Openafs version is increased, the kernel-module-openafs **AND**
|
|
the additional openafs RPMS (see list below) have to be built::
|
|
|
|
openafs
|
|
openafs-client
|
|
openafs-kpasswd
|
|
openafs-krb5
|
|
|
|
|
|
One can use the following standalone script to built openafs modules.
|
|
|
|
- `build-openafs.sl51.i386.sh`
|
|
|
|
Standalone script for building and copying 32 bit openafs modules
|
|
|
|
- `build-openafs.sl51.x86_64.sh`
|
|
|
|
Standalone script for building and copying 64 bit openafs modules
|
|
|
|
|
|
Note to Kernel Module Uvcvideo
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
If building fails, download the latest uvcvideo version and compile
|
|
again::
|
|
|
|
# cd ~/tmp/
|
|
# svn checkout http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk # see also in specfile
|
|
# mv trunk uvcvideo-svn255
|
|
# tar cfzv uvcvideo-svn255.tar.gz uvcvideo-svn255/
|
|
# scp uvcvideo-svn255.tar.gz tux50-64:/scratch/gasser_m/rpm_topdir/SOURCES/
|
|
# ssh tux50-64
|
|
# cd /scratch/gasser_m/rpm_topdir/SPECS/
|
|
# vi uvcvideo.spec # Version: 0.2.0
|
|
# %define date svn255
|
|
# rpmbuild -ba --target x86_64 --define "kernel 2.6.18-92.1.13.el5" --define 'buildall 1' uvcvideo.spec
|
|
|
|
...
|
|
Wrote: /scratch/gasser_m/rpm_topdir/RPMS/x86_64/uvcvideo-0.2.0-1.svn255.slp5.src.rpm
|
|
Wrote: /scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-92.1.13.el5-0.2.0-1.svn255.slp5.x86_64.rpm
|
|
...
|
|
|
|
# echo "/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-92.1.13.el5-0.2.0-1.svn255.slp5.x86_64.rpm" >> \
|
|
# /tmp/rpms_for_2.6.18-92.1.13.el5
|
|
|
|
|
|
Don't forget to copy all the new modules to
|
|
`/afs/psi.ch/software/linux/dist/scientific/51/psi/all/`.
|
|
|
|
|
|
Check The Kernel Module Build Logs
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
|
Check the log files for errors and verify that all required modules
|
|
were built::
|
|
|
|
# grep -i error ~/tmp/20090624-build_kernel_modules-2.6.18-128.1.14.el5.x86_64.output
|
|
...
|
|
checking your OS... configure: error: No usable linux headers found at /lib/modules/2.6.18-128.1.14.el5PAE/build
|
|
+ exit 1
|
|
error: Bad exit status from /scratch/gasser_m/rpm_tmp/rpm-tmp.69701 (%build)
|
|
Bad exit status from /scratch/gasser_m/rpm_tmp/rpm-tmp.69701 (%build)
|
|
...
|
|
|
|
|
|
This error is ok, as there is no x86_64 PAE kernel at all::
|
|
|
|
# check-set-of-built-kernel-modules.bash /tmp/rpms_for_2.6.18-128.1.14.el5 \
|
|
# KERNEL_MODULES_TO_BUILD/sl5.i386.kms-to-be-built
|
|
# Not all kernel module RPMS were built!
|
|
# Check RPM(s) for: 'VMwareTools'
|
|
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-airprime-2.6.18-128.1.14.el5-2.6.18-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-airprime-2.6.18-128.1.14.el5xen-2.6.18-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-atl2-2.6.18-128.1.14.el5-1.0.40.4-4.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-atl2-2.6.18-128.1.14.el5xen-1.0.40.4-4.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-aufs-2.6.18-128.1.14.el5-0.20080605.cvs-5.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-aufs-2.6.18-128.1.14.el5xen-0.20080605.cvs-5.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-firewire-2.6.18-128.1.14.el5-2.6.18-2.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-firewire-2.6.18-128.1.14.el5xen-2.6.18-2.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-gspcav1-2.6.18-128.1.14.el5-01.00.20-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-gspcav1-2.6.18-128.1.14.el5xen-01.00.20-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-qla2xxx-2.6.18-128.1.14.el5-8.01.07.15-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-qla2xxx-2.6.18-128.1.14.el5xen-8.01.07.15-1.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-128.1.14.el5-0.2.0-1.svn255.slp5.x86_64.rpm
|
|
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-128.1.14.el5xen-0.2.0-1.svn255.slp5.x86_64.rpm
|
|
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-gpfs-2.6.18-128.1.14.el5-3.2.1-12.3.slp5.psi.x86_64.rpm
|
|
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-VMwareTools-2.6.18-128.1.14.el5-6530-29999.slp5.x86_64.rpm
|
|
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-openafs-2.6.18-128.1.14.el5-1.4.10-94.slp5.x86_64.rpm
|
|
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-openafs-2.6.18-128.1.14.el5xen-1.4.10-94.slp5.x86_64.rpm
|
|
|
|
|
|
This also seems to be ok, as there was never a VMWare kernel module in
|
|
the repository for Xen and PAE kernel.
|
|
|
|
|
|
Copy The Kernel Module RPMS To The SL 5 Repository
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
|
Eventually, copy the built kernel module RPMS to the corresponding
|
|
PSI-ALL repository::
|
|
|
|
# cp -av `cat /tmp/rpms_for_2.6.18-128.1.14.el5` /afs/psi.ch/software/linux/dist/scientific/51/psi/all/
|
|
|
|
|
|
Check whether the gpfs daemon and the gpfs kernel module RPMS were
|
|
copied, too, and have corresponding versions.
|
|
|
|
Probably you have to build them first using
|
|
e.g. `build-gpfs.sl54.x86_64.sh` on tux50-64::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
|
|
# ./build-gpfs.sl5x.x86_64.sh
|
|
# check-for-gpfs-occurence.bash 2.6.18-164.9.1.el5 3.2.1-16 4 51
|
|
|
|
# Begin checking for file occurence...
|
|
#/afs/psi.ch/software/linux/dist/scientific/51/nonfree/all/gpfs-3.2.1-16.4.slp5.psi.x86_64.rpm
|
|
# ok
|
|
#/afs/psi.ch/software/linux/dist/scientific/51/psi/all/kernel-module-gpfs-2.6.18-164.9.1.el5-3.2.1-16.4.slp5.psi.x86_64.rpm
|
|
# ok
|
|
#/afs/psi.ch/software/linux/dist/scientific/51/nonfree/all/gpfs-init-script-1.0-4.slp5.psi.x86_64.rpm
|
|
# ok
|
|
# End checking for file occurence.
|
|
|
|
|
|
Make The New Kernel Repository For SL5
|
|
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
|
The next two commands, `make kernel_all` and `make kernel`, will
|
|
process both architectures, i386 and x86_64. So you can run it only
|
|
once, after having built i386 and x86_64 kernel modules.
|
|
|
|
Running `make kernel_all` will copy the built kernel module RPMS and
|
|
other kernel related RPMS from the corresponding ...-ALL to the
|
|
KERNEL-ALL directories, e.g.::
|
|
|
|
from: /afs/psi.ch/software/linux/dist/scientific/51/update.x86_64/all/
|
|
to: /afs/psi.ch/software/linux/dist/scientific/51/kernel/all/
|
|
|
|
|
|
Eventually `make kernel` will create the new kernel snapshot in
|
|
`/afs/psi.ch/software/linux/dist/scientific/51/kernel/`::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
|
|
# make kernel_all > UPDATE_LOG/$(date +%Y-%m-%d)-make-kernel_all-2.6.18-164.11.1.el5.sl51.i386.x86_64.log 2>&1
|
|
|
|
# KERNEL_VER=2.6.18 KERNEL_REL=371.12.1.el5 make kernel
|
|
|
|
|
|
Follow the instructions at the end of the output of `make kernel` to
|
|
update symlinks, e.g::
|
|
|
|
# rm /afs/psi.ch/software/linux/dist/scientific/51/kernel/testing
|
|
# ln -s 2.6.18-371.12.1.el5 /afs/psi.ch/software/linux/dist/scientific/51/kernel/testing
|
|
|
|
|
|
Create Snapshots of Repositories
|
|
--------------------------------
|
|
|
|
Both architectures, i386 and x86_64, are treated by the following
|
|
commands.
|
|
|
|
If new RPMS appear in a certain repository, which should be available
|
|
for the next update, a new snapshot is created for this repository.
|
|
The folder name of the snapshot will be equal to the current date.
|
|
|
|
Create all snapshots at once (gfa excluded as Heiner Billich and Rene
|
|
Kapeller will create this snapshot). This can take up to one hour::
|
|
|
|
#[gasser_m@tux50]
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts
|
|
# nohup ./run_make_snapshots_all.sh &
|
|
|
|
|
|
As an alternative you could make a single snapshot of a certain
|
|
repository only. E.g. to make a snapshot of the `update` and `psi`
|
|
repos type::
|
|
|
|
# DIR=update make snapshot # DIR=update will set: ALL_DIRS="update.i386 update.x86_64"
|
|
# DIR=psi make snapshot
|
|
|
|
`make snapshot` will execute
|
|
`/afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_snapshot`.
|
|
The command `createrepo` invoked in the shell script `.../mk_snapshot`
|
|
writes repodata for each snapshot to
|
|
e.g. `/afs/psi.ch/software/linux/dist/scientific/51/others/20090625/repodata/`.
|
|
|
|
Release the snapshots for first level testing systems
|
|
-----------------------------------------------------
|
|
|
|
The command `make release_testing` will update the respective symlinks
|
|
`.../testing` to the latest snapshots in all repos (again, except
|
|
`gfa`).
|
|
|
|
Note: Because `make release_testing` is interactive, you should not
|
|
redirect the output to a file::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
|
|
# make release_testing
|
|
|
|
Before `make release_testing`:
|
|
|
|
Note: The output below originates not from the same update as above,
|
|
this was 2008-08-27::
|
|
|
|
# [gasser_m@tux50]
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/
|
|
# \ls -l */testing
|
|
|
|
lrwxr-xr-x 1 markushin ait 8 Aug 8 15:27 cluster/testing -> 20080808
|
|
lrwxr-xr-x 1 markushin ait 8 Aug 8 15:27 enhanced/testing -> 20080808
|
|
lrwxr-xr-x 1 billich ait 8 Aug 27 14:40 gfa/testing -> 20080827
|
|
lrwxr-xr-x 1 markushin ait 8 Aug 8 15:27 kde-redhat/testing -> 20080808
|
|
lrwxr-xr-x 1 markushin ait 18 Aug 8 15:27 kernel/testing -> 2.6.18-92.1.10.el5
|
|
lrwxr-xr-x 1 markushin ait 8 Aug 8 15:27 nonfree/testing -> 20080808
|
|
lrwxr-xr-x 1 markushin ait 8 Aug 8 15:27 others/testing -> 20080808
|
|
lrwxr-xr-x 1 markushin ait 8 Aug 14 15:23 psi/testing -> 20080814
|
|
lrwxr-xr-x 1 markushin ait 8 Aug 8 15:27 update.i386/testing -> 20080808
|
|
lrwxr-xr-x 1 markushin ait 8 Aug 8 15:27 update.x86_64/testing -> 20080808
|
|
|
|
[gasser_m@tux50 51]$ \ls -l */current
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 cluster/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 enhanced/current -> 20080808
|
|
lrwxr-xr-x 1 billich ait 8 Aug 27 14:40 gfa/current -> 20080827
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 kde-redhat/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 18 Aug 14 16:37 kernel/current -> 2.6.18-92.1.10.el5
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 nonfree/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 others/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 psi/current -> 20080814
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 update.i386/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 update.x86_64/current -> 20080808
|
|
|
|
|
|
After `make release_testing`::
|
|
|
|
# [gasser_m@tux50]
|
|
# \ls -l */testing
|
|
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 28 14:58 cluster/testing -> 20080827
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 28 14:58 enhanced/testing -> 20080827
|
|
lrwxr-xr-x 1 billich ait 8 Aug 27 14:40 gfa/testing -> 20080827
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 28 14:58 kde-redhat/testing -> 20080827
|
|
lrwxr-xr-x 1 gasser_m ait 18 Aug 28 14:58 kernel/testing -> 2.6.18-92.1.10.el5
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 28 14:58 nonfree/testing -> 20080827
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 28 14:58 others/testing -> 20080827
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 28 14:58 psi/testing -> 20080827
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 28 14:58 update.i386/testing -> 20080827
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 28 14:58 update.x86_64/testing -> 20080827
|
|
|
|
[gasser_m@tux50 51]$ \ls -l */current
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 cluster/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 enhanced/current -> 20080808
|
|
lrwxr-xr-x 1 billich ait 8 Aug 27 14:40 gfa/current -> 20080827
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 kde-redhat/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 18 Aug 14 16:37 kernel/current -> 2.6.18-92.1.10.el5
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 nonfree/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 others/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 psi/current -> 20080814
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 update.i386/current -> 20080808
|
|
lrwxr-xr-x 1 gasser_m ait 8 Aug 14 16:37 update.x86_64/current -> 20080808
|
|
|
|
|
|
Now, the `testing` symlinks point to the latest snapshots, while the
|
|
`current` symlinks still point to the previous snapshots.
|
|
|
|
|
|
Make First Tests
|
|
----------------
|
|
|
|
Manually update selected `testing` hosts (see `/etc/sysconfig/psi` and
|
|
`/etc/yum.conf`) with yum. The `testing` string is set in
|
|
`/etc/sysconfig/psi` and `/etc/yum.conf` (i.e. your computer is
|
|
looking for new RPMS in the `testing` snapshots)::
|
|
|
|
# yum clean all
|
|
# yum update
|
|
|
|
If there's a new kernel, reboot into this new kernel and especially
|
|
check whether the new kernel-module-openafs is working and AFS was
|
|
mounted.
|
|
|
|
- Note to the `psi-update` script
|
|
|
|
`psi-update` will not work at this point, because it's udpating only
|
|
if the PSI version has changed, what will be done later (see "Create A
|
|
New PSI Version Of SL51" below). `psi-update` will get the script
|
|
`yum_update` from our master, pxeserv01, see also `/etc/fstab`. The
|
|
script `yum_update` will be saved locally as
|
|
`/usr/sbin/psi-yum_update`. Afterwards `psi-yum_update` will be
|
|
executed locally.
|
|
|
|
|
|
Create A New PSI Version Of SL51 And Release It For Testing Systems
|
|
-------------------------------------------------------------------
|
|
|
|
In this section a new PSI version is created and released for testing
|
|
systems. By default, Green Testing PCs will be auto updated during
|
|
the following night.
|
|
|
|
The procedure shown here has to be repeated for all SL5 class/subclass
|
|
combinations. Contemporary there are three of them:
|
|
|
|
1. Desktop/Stable
|
|
2. Desktop/Enhanced
|
|
3. Cnode/Stable
|
|
|
|
To get an overview list the classes directories::
|
|
|
|
# [gasser_m@pc7377 Stable]$ ll -rt /afs/psi.ch/software/linux/dist/scientific/51/classes/*
|
|
|
|
/afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop:
|
|
total 10
|
|
drwxr-xr-x 2 beyerle ait 2048 Jan 19 2008 StableTesting
|
|
drwxr-xr-x 2 beyerle ait 2048 Jan 19 2008 EnhancedTesting
|
|
drwxr-xr-x 15 beyerle ait 4096 Jul 2 17:11 Enhanced
|
|
drwxr-xr-x 15 beyerle ait 2048 Aug 11 14:19 Stable
|
|
|
|
/afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode:
|
|
total 4
|
|
drwxr-xr-x 2 beyerle ait 2048 Jan 19 2008 StableTesting
|
|
drwxr-xr-x 15 beyerle ait 2048 Jul 2 17:11 Stable
|
|
|
|
|
|
Note: To change the list of RPMS of a certain class edit the
|
|
corresponding package list.
|
|
|
|
E.g.: To add RPMS in update version 19 of SL51 Desktop/Stable edit
|
|
`list.Stable.v19`::
|
|
|
|
# vi /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/list.Stable.v19
|
|
|
|
IMPORTANT: If you add RPMS to the list, update also the RPM lists used
|
|
in the kickstart installation::
|
|
|
|
# vi /afs/psi.ch/software/linux/dist/scientific/51/kickstart/custom/DesktopStablei386/yum_install.conf
|
|
# vi /afs/psi.ch/software/linux/dist/scientific/51/kickstart/custom/DesktopStablex86_64/yum_install.conf
|
|
|
|
- Note: The following tasks can also be performed using the script
|
|
`create-new-psi-version.bash`.
|
|
|
|
|
|
Desktop/Stable: Release Desktop Stable Testing
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Create folder for Version 19 by running make class::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/
|
|
# cp list.Stable.v18 list.Stable.v19
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
|
|
# CLASS=Desktop SUBCLASS=Stable version=19 LIST=list.Stable.v19 make class
|
|
|
|
###{ begin output make class
|
|
Populating Class directory ...
|
|
TOP_DIR=/afs/psi.ch/software/linux/dist/scientific/51 \
|
|
/afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class
|
|
|
|
Configuration file /afs/psi.ch/software/linux/dist/scientific/51/scripts/dist-config
|
|
Running /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class ...
|
|
create version and release file
|
|
copy list.Stable.v19 to list
|
|
-------------------------------------------------------------------------------
|
|
The directory /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811 has been populated.
|
|
|
|
RPMSv19 links to RPMS-20080811
|
|
|
|
Please check
|
|
cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811/version
|
|
cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811/release
|
|
cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811/list
|
|
|
|
If you like to display a message for the user (one line) put it into
|
|
emacs /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811/message
|
|
|
|
If you want to release `testing`, link RPMSTesting to RPMSv19:
|
|
rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMSTesting
|
|
ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMSTesting
|
|
|
|
-------------------------------------------------------------------------------
|
|
... End of /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class
|
|
###} end output make class
|
|
|
|
|
|
Now release it::
|
|
|
|
# rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMSTesting
|
|
# ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMSTesting
|
|
|
|
|
|
Desktop/Enhanced: Release Desktop Enhanced Testing (also a lot of nonfree etc. stuff)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Create folder for Version 19 by running `make class`::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/
|
|
# cp list.Enhanced.v18 list.Enhanced.v19
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
|
|
# CLASS=Desktop SUBCLASS=Enhanced version=19 LIST=list.Enhanced.v19 make class
|
|
|
|
###{ begin output
|
|
Populating Class directory ...
|
|
TOP_DIR=/afs/psi.ch/software/linux/dist/scientific/51 \
|
|
/afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class
|
|
|
|
Configuration file /afs/psi.ch/software/linux/dist/scientific/51/scripts/dist-config
|
|
Running /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class ...
|
|
create version and release file
|
|
copy list.Enhanced.v19 to list
|
|
-------------------------------------------------------------------------------
|
|
The directory /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811 has been populated.
|
|
|
|
RPMSv19 links to RPMS-20080811
|
|
|
|
Please check
|
|
cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811/version
|
|
cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811/release
|
|
cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811/list
|
|
|
|
If you like to display a message for the user (one line) put it into
|
|
emacs /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811/message
|
|
|
|
If you want to release "testing", link RPMSTesting to RPMSv19:
|
|
rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMSTesting
|
|
ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMSTesting
|
|
|
|
-------------------------------------------------------------------------------
|
|
... End of /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class
|
|
###} end output
|
|
|
|
|
|
Now release it::
|
|
|
|
# rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMSTesting
|
|
# ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMSTesting
|
|
|
|
|
|
Cnode/Stable: Release Cnode Stable Testing
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Create folder for Version 19 by running `make class`::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/
|
|
# cp list.Stable.v18 list.Stable.v19
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
|
|
# CLASS=Cnode SUBCLASS=Stable version=19 LIST=list.Stable.v19 make class
|
|
|
|
###{ begin output
|
|
Populating Class directory ...
|
|
TOP_DIR=/afs/psi.ch/software/linux/dist/scientific/51 \
|
|
/afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class
|
|
|
|
Configuration file /afs/psi.ch/software/linux/dist/scientific/51/scripts/dist-config
|
|
Running /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class ...
|
|
create version and release file
|
|
copy list.Stable.v19 to list
|
|
-------------------------------------------------------------------------------
|
|
The directory /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811 has been populated.
|
|
|
|
RPMSv19 links to RPMS-20080811
|
|
|
|
Please check
|
|
cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811/version
|
|
cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811/release
|
|
cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811/list
|
|
|
|
If you like to display a message for the user (one line) put it into
|
|
emacs /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811/message
|
|
|
|
If you want to release "testing", link RPMSTesting to RPMSv19:
|
|
rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMSTesting
|
|
ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMSTesting
|
|
|
|
-------------------------------------------------------------------------------
|
|
... End of /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class
|
|
###} end output
|
|
|
|
|
|
Now release it::
|
|
|
|
# rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMSTesting
|
|
# ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMSTesting
|
|
|
|
|
|
Test the Update On Testing Systems
|
|
----------------------------------
|
|
|
|
On a testing system run::
|
|
|
|
[root@tux50]
|
|
# psi-update
|
|
|
|
|
|
Release The Update PSI Wide For Productive Systems
|
|
--------------------------------------------------
|
|
|
|
Run::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
|
|
# make current_equal_testing
|
|
|
|
|
|
Refresh symbolic links in the `RPMS_all` folder to all respective
|
|
RPMS::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts
|
|
# make rpms_all
|
|
|
|
|
|
Test The Update On Productive Systems
|
|
-------------------------------------
|
|
|
|
On a productive (=current) system run::
|
|
|
|
# psi-update
|
|
|
|
|
|
Update The Webpages
|
|
===================
|
|
|
|
Reference
|
|
---------
|
|
|
|
https://wiki.intranet.psi.ch/AIT/LinuxRegularUpdate#Update_the_Webpages
|
|
|
|
*Possibly it's better to move the reference to the top Reference
|
|
section. This section is still in a very sketch state anyway.*
|
|
|
|
|
|
General Info to Webpages Providing SL Update Infos
|
|
--------------------------------------------------
|
|
|
|
The website is public to PSI.#??? or to everybody?
|
|
|
|
The site provides information about the SL update progress for users
|
|
at PSI.
|
|
|
|
Location of the website:
|
|
|
|
On AFS: /afs/psi.ch/project/ait/www/services/linux/updates/
|
|
On WWW: http://ait.web.psi.ch/services/linux/updates/
|
|
|
|
|
|
Update the following Webpages:
|
|
|
|
- http://ait.web.psi.ch/services/linux/updates/
|
|
|
|
- http://ait.web.psi.ch/services/linux/updates/update_sl5.html
|
|
|
|
- http://ait.web.psi.ch/services/linux/updates/update_sl4.html
|
|
|
|
- http://ait.web.psi.ch/services/linux/updates/update_sl3.html
|
|
|
|
|
|
- Objective
|
|
|
|
Show the updated RPMS between current and the release before. Reduce
|
|
amount of info to a reasonable minimum and represent clearly for
|
|
users. Don't show RPMS, which are in the repository but will not be
|
|
installed because of a newer version of this RPM in the same snapshot.
|
|
|
|
|
|
Script location: /afs/psi.ch/project/ait/www/services/linux/updates/
|
|
find_new_rpms_between 20080626 51 18 20080808 51 19 The command
|
|
above will not yet work on SL5, because of directory layout
|
|
changes between SL4 and SL5. For now we will take another
|
|
procedure to prepare the HTML files.
|
|
|
|
The following command will show some first scratch of an alternative
|
|
way to get the list with updated RPMS::
|
|
|
|
# cd /afs/psi.ch/software/linux/dist/scientific/51
|
|
# diff <( ls -1 */testing/ | sort ) <( ls -1 */current/ | sort ) | grep '^<' | sed -e 's/.i.86.rpm//' -e 's/.x86_64.rpm//' | uniq
|
|
|
|
What do we need? In SL5 we have the following classes/subclasses::
|
|
|
|
#
|
|
|
|
¦---Stable
|
|
¦-Cnode---¦
|
|
¦ ¦---StableTesting
|
|
¦
|
|
¦
|
|
sl5---¦
|
|
¦ ¦--Stable
|
|
¦ ¦
|
|
¦ ¦--StableTesting
|
|
¦-Desktop-¦
|
|
¦--Enhanced
|
|
¦
|
|
¦--EnhancedTesting
|
|
|
|
|
|
ls -1 */testing/ | grep -v testing | grep -v x86_64 | sort > ~/tmp/sl51-v19-ls-asterisk-testing-sort-out
|
|
ls -1 */current/ | grep -v current | grep -v x86_64 | sort > ~/tmp/sl51-v19-ls-asterisk-current-sort-out
|
|
/afs/psi.ch/user/g/gasser_m/tmp/
|
|
mengen.py -D sl51-v19-ls-asterisk-testing-sort-out sl51-v19-ls-asterisk-current-sort-out > sl51-v19-mengen-out
|
|
get-latest-RPM-from-RPM-list.pl sl51-v19-mengen-out > sl51-v19-updated-RPMS.list
|
|
|
|
|
|
From sl51-v19-updated-RPMS.list take the list to insert into the HTML
|
|
update site. Edit file
|
|
`/afs/psi.ch/project/ait/www/services/linux/updates/update_sl5.html`.
|
|
|
|
|
|
Are all clients up-to-date?
|
|
---------------------------
|
|
|
|
Login to pxeserv01.
|
|
|
|
Note to puppet and `/etc/sysconfig/psi`
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Even puppet and not cfengine is running on SL5, latest copies of
|
|
`ANYHOST:/etc/sysconfig/psi` from SL3, SL4 and SL5 systems are put to
|
|
`pxeserv01:/opt/cfengine/sysconfig/`::
|
|
|
|
# cd /opt/cfengine/scripts
|
|
# ./find_hosts_with_old_version.sh 98 71 20
|
|
|
|
running...
|
|
./cfengine.lcmeg01:VERSION=70
|
|
./cfengine.lclth01:VERSION=70
|
|
./cfengine.lclev03:VERSION=70
|
|
./cfengine.pc7148:VERSION=18
|
|
./cfengine.lclev01:VERSION=70
|
|
./cfengine.lclth04:VERSION=70
|
|
./cfengine.pc6702:VERSION=69
|
|
./cfengine.lclth07:VERSION=70
|
|
./cfengine.pc3384:VERSION=97
|
|
./cfengine.slsnedi1:VERSION=17
|
|
./cfengine.pc5082:VERSION=91
|
|
./cfengine.lpc4358:VERSION=69
|
|
./cfengine.lclev05:VERSION=70
|
|
./cfengine.lclth08:VERSION=70
|
|
./cfengine.lclth02:VERSION=70
|
|
./cfengine.llc6:VERSION=69
|
|
./cfengine.lclrs11:VERSION=69
|
|
./cfengine.pc5835:VERSION=96
|
|
./cfengine.lclth06:VERSION=70
|
|
./cfengine.tux40e:VERSION=70
|
|
./cfengine.lclev02:VERSION=70
|
|
./cfengine.lclth03:VERSION=70
|
|
./cfengine.pc4426:VERSION=17
|
|
./cfengine.pcmic01:VERSION=70
|
|
./cfengine.lclth05:VERSION=70
|
|
done!
|
|
|
|
|
|
If a host is not up-to-date, login to the host and run manually::
|
|
|
|
# psi-update
|
|
|
|
|
|
You may also want to check the logs in `/var/log/update/`
|