Files
gitea-pages/admin-guide/legacy/misc/updatesl57.rst
2021-05-05 14:24:27 +02:00

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