8.7 KiB
Update SL57 and later i386 and x86_64
Introduction
Keep the following order:
- Get the latest security updates from the SL mirror for the "update.$ARCH" repository.
- Build kernel modules.
- Get updates for the "psi" repository.
- Get updates for the "other" repository.
- Get updates for the "nonfree" repository.
- Create new snapshots.
- Release "unstable" from new snapshots.
- Create a new PSI version.
- Release "testing".
- Release "stable".
Update The Different Repositories
Get the Latest Security Update RPMS From SL Mirror
Get the latest security update RPMS from the local SL57 mirror for both architectures, i386 and x86_64, by invoking rsync_security_updates_to_all_directories.sh on tux50.
They will be copied to the corresponding .../updates.${ARCH}/all/ directories. This will take some time:
# cd /afs/psi.ch/software/linux/dist/scientific/57/scripts/
# nohup ./rsync_security_updates_to_all_directories.sh > \
# UPDATE_LOG/$(date +%Y-%m-%d)-rsync_security_updates_to_all_directories.log 2>&1 &
Then, check for errors in the log file:
# grep -i error UPDATE_LOG/20091221-rsync_security_updates_to_all_directories.log
...
Finally, run update_symlinks_in_rpms_all.sh to keep all symlinks in the directory /afs/psi.ch/software/linux/dist/scientific/57/RPMS_all/ up to date.
The script removes dead links and creates new links to the new RPMS. It is basically not necessary for running PSI updates, rather it's just convenient to have a directory with the list of all RPMS of a distribution:
# ./update_symlinks_in_RPMS_all.sh
Build Kernel Modules
First install the latest kernel and kernel-devel packages on the respective build systems.
Then build the RPMS on the corresponding build systems using the scripts below.
32 bit:
# [gasser_m@tukan50-32]
# cd /afs/psi.ch/software/linux/dist/scientific/57/scripts
# sh build_kernel_modules.sh 2.6.18-194.3.1.el5 > \
# UPDATE_LOG/20100630-build_kernel_modules-2.6.18-194.3.1.el5.i686.log 2>&1
# check-set-of-built-kernel-modules.bash /tmp/rpms_for_2.6.18-194.3.1.el5 \
# KERNEL_MODULES_TO_BUILD/sl5.i386.kms-to-be-built
# sh build-gpfs.sl5x.i386.sh
64 bit:
# [gasser_m@tux50-64]
# cd /afs/psi.ch/software/linux/dist/scientific/57/scripts
# sh build_kernel_modules.sh 2.6.18-194.3.1.el5 > \
# UPDATE_LOG/20100630-build_kernel_modules-2.6.18-194.3.1.el5.x86_64.log 2>&1
# check-set-of-built-kernel-modules.bash /tmp/rpms_for_2.6.18-194.3.1.el5 \
# KERNEL_MODULES_TO_BUILD/sl5.x86_64.kms-to-be-built
# sh build-gpfs.sl5x.x86_64.sh
Finally, from both build systems, copy the built kernel modules to the psi repository:
# cp -av `cat /tmp/rpms_for_2.6.18-194.3.1.el5` /afs/psi.ch/software/linux/dist/scientific/57/psi/all/
Get Updates For The Psi Repository
Get Updates For The Other Repository
Get Updates For The Nonfree Repository
Create New Snapshots
The script create_new_snapshots.sh will pick out the latest version of each RPM found in the active repositories.
It will create a subdirectory (snapshot) in each repository and name it after the current date using the format YYYYMMDD.
Then it will place a symbolic link into this subdirectory for each latest RPM found in the all subdirectory of the currently processed repository.
To invoke it run the following command:
# nohup ./create_new_snapshots.sh alldirs > UPDATE_LOG/$(date +%Y-%m-%d)-create_new_snapshots.log 2>&1 &
Release Unstable, Create A New PSI Version And Release The Other SLP Snapshots
Release Unstable
The "unstable" distribution is where active development of SLP occurs. Generally, this distribution is run by developers and those who like to live on the edge.
The command release_unstable.sh will update the respective symlinks .../unstable to the latest snapshots.
Because release_unstable.sh is interactive, you should not redirect the output to a file, as you won't be able to see the questions asked.
Before `release_unstable.sh`:
# [gasser_m@tux50]
# cd /afs/psi.ch/software/linux/dist/scientific/57/
# ls -l */unstable
# ./release_unstable.sh
After `release_unstable.sh`:
# ls -l */unstable
As soon as an unstable distribution has become testing a new unstable can be generated which again points to the new latest snapshots.
Create A New PSI Version
Run:
# cd /afs/psi.ch/software/linux/dist/scientific/57/scripts
# sh create_new_psi_version.sh
As soon as the new PSI version is created, i.e. the symbolic links which point to the same target snapshots as the latest unstable snapshots, the psi-version-info.txt file has to be actualized to activate the PSI auto-update again for the hosts which are set to unstable:
# ./create_file_psiversion-info.sh
Eventually, test the unstable release.
Release Testing
The "testing" distribution contains packages that haven't been accepted into a "stable" release yet, but they are in the queue for that. The main advantage of using this distribution is that it has more recent versions of software.
The command release_testing.sh will update the respective symlinks .../testing to the latest unstable snapshots.
If the puppet environment DesktopSL5Unstable was modified and the changes should be made in DesktopSL5Testing, too, run rsync_puppet_env_testing_with_unstable.sh before release_testing.sh.
Because release_testing.sh is interactive, you should not redirect the output to a file, as you won't be able to see the questions asked:
# [gasser_m@tux50]
# cd /afs/psi.ch/software/linux/dist/scientific/57/scripts
# ./rsync_puppet_env_testing_with_unstable.sh
# ./rsync_kickstart_dir_DesktopTesting_with_DesktopUnstable.sh
# ./release_testing.sh
# ./create_file_psiversion-info.sh
Release Stable
To activate the PSI auto-update again for testing hosts the psi-version-info.txt file has to be actualized.
The "stable" distribution, formerly known as "current", contains the latest officially released distribution of SLP.
This is the production release of SLP, the one which we primarily recommend using.
The command release_stable.sh will update the respective symlinks .../stable to the latest unstable snapshots.
The procedure is analogous to the procedure described in the "Release Testing" section:
# ./rsync_puppet_env_stable_with_testing.sh
# ./rsync_kickstart_dir_DesktopStable_with_DesktopTesting.sh
# ./release_stable.sh
# ./create_file_psiversion-info.sh
### begin ./release_stable.sh ###
Sourcing configuration file ./dist-config
TOP_DIR is /afs/psi.ch/software/linux/dist/scientific/57
Running ./release_stable.sh ...
Latest snapshot in psi:
/afs/psi.ch/software/linux/dist/scientific/57/psi/testing -> 20090916
Latest snapshot in others:
/afs/psi.ch/software/linux/dist/scientific/57/others/testing -> 20090916
Latest snapshot in update.i386:
/afs/psi.ch/software/linux/dist/scientific/57/update.i386/testing -> 20090916
Latest snapshot in update.x86_64:
/afs/psi.ch/software/linux/dist/scientific/57/update.x86_64/testing -> 20090916
Latest snapshot in kernel:
/afs/psi.ch/software/linux/dist/scientific/57/kernel/testing -> 2.6.18-128.7.1.el5
Latest snapshot in nonfree:
/afs/psi.ch/software/linux/dist/scientific/57/nonfree/testing -> 20090916
Latest snapshot in cluster:
/afs/psi.ch/software/linux/dist/scientific/57/cluster/testing -> 20090916
Relink stable to the latest snapshots (y/n)?
Before `release_stable.sh`:
# [gasser_m@tux50]
# cd /afs/psi.ch/software/linux/dist/scientific/57/
# ls -l */stable
lrwxr-xr-x 1 gasser_m ait 8 Sep 18 11:25 cluster/stable -> 20090316
lrwxr-xr-x 1 gasser_m ait 8 Sep 18 11:23 enhanced/stable -> 20090316
lrwxr-xr-x 1 gasser_m ait 18 Sep 18 11:24 kernel/stable -> 2.6.18-128.1.1.el5
lrwxr-xr-x 1 gasser_m ait 8 Sep 18 11:24 nonfree/stable -> 20090316
lrwxr-xr-x 1 gasser_m ait 8 Sep 18 11:22 others/stable -> 20090316
lrwxr-xr-x 1 gasser_m ait 8 Sep 18 11:21 psi/stable -> 20090821
lrwxr-xr-x 1 gasser_m ait 8 Sep 18 11:22 update.i386/stable -> 20090820
lrwxr-xr-x 1 gasser_m ait 8 Sep 18 11:21 update.x86_64/stable -> 20090820
After `release_stable.sh`:
# ls -l */stable