Files
Controls-docs/admin-guide/legacy/software/repositories.rst
T
2021-05-05 14:24:27 +02:00

246 lines
6.3 KiB
ReStructuredText

Repositories
============
A number of repositories are currently mirrored on AFS under
``/afs/psi.ch/software/mirror`` (``$MIRROR``), in particular the following
versions of Scientific Linux, both 32 and 64 bit: 5.7, 6.0, 6.4, and 6.x.
The repositories are accessible via HTTP at http://linux.web.psi.ch/.
They are stored in ``$MIRROR/scientific``, each subdirectory of which
is a mount point for a separate AFS volume. This is done because
smaller AFS volumes are easier to handle (e.g. when moving them
between fileservers).
Each mirror, e.g. ``$MIRROR/scientific/60/epelp/`` contains a
subdirectory ``all``, which contains the packages that we actually
want in our YUM repositories.
Repository management as well as package building can be done on the
various ``tux*.psi.ch`` servers.
Further documentation on repository management can be found in
``/afs/psi.ch/project/linux/doc``. This documentation will eventually
be included in this document.
The directory ``$MIRROR/scientific/scripts`` contains scripts for
various tasks related to managing the Scientific Linux repositories.
It is a working copy of a [git
repository](http://git.psi.ch/linux-dist/sl-scripts).
Tools
-----
There are several scripts that are used to maintain/update the various
repositories.
``sync_updates.sh``
~~~~~~~~~~~~~~~~~~~
This script copies new packages from the SL mirror to the PSI distribution
directories, and runs ``createrepo --update`` to update the repository metadata.
Information on the directories is read from a file ``dist-config`` in the
current working directory.
``update_symlinks``
~~~~~~~~~~~~~~~~~~~
Updates
-------
To release updates to the existing repositories, the steps below have to be
performed. The value of ``DIST_DIR`` is the base directory of the distribution
to be updated, i.e. ``/afs/psi.ch/software/linux/dist/scientific/xx/``, where
``xx`` is one of ``57``, ``60``, or ``64``.
1. Update add-on repositories
2. cd "${DIST_DIR}/scripts"
3. ./sync_updates.sh
4. ./update_symlinks.sh
5. ./create_snapshots.sh alldirs
6. ./release_unstable.sh
7. ./incr_version.sh
8. ./update_version_info.sh
9. test new unstable release
10. ./release.sh testing
11. ./update_version-info.sh
12. test testing release
13. ./release.sh stable
14. ./update_version-info.sh
The sections below describe each step in detail. The value of ``PRJ_DIR`` is
``/afs/psi.ch/project/linux/``.
Kernel updates
~~~~~~~~~~~~~~
If there is a new kernel, some of the modules need to be rebuilt. For SL 5.7
there is a script in the ``scripts`` subdirectory taking care of this:
``build_kernel_modules.sh``.
Update add-on repositories
~~~~~~~~~~~~~~~~~~~~~~~~~~
GPFS
,,,,
rsync --archive --verbose ${PRJ_DIR}/dist/slp6/RPMS/*/kmod-gpfs* "${DIST_DIR}/psi/all"
rsync --archive --verbose ${PRJ_DIR}/dist/slp6/RPMS/*/gpfs* "${DIST_DIR}/nonfree/all"
Notes:
- Don't know why the kernel modules for GPFS are in 'psi' but the GPFS user-land
software is in 'nonfree'.
- Hans-Christian is responsible for building RPMs
OpenAFS
,,,,,,,
Note: OpenAFS version on tux50 and tux50-64 is 1.4.x. On all other systems it is 1.6.x.
Build OpenAFS
+++++++++++++
On tux50, tux50-64, tux60-tux60-64, tux70.
Either::
rsync --verbose ${PRJ_DIR}/dist/slp6/RPMS/*/kernel-module-openafs-* "${DIST_DIR}/psi/all"
or: copy decicated versions
Notes: Achim is responsible for building OpenAFS RPMs.
Checklist
+++++++++
New version available? If yes, build binaries:
========= ===== ========= ========
OS New? Compiled Copied?
--------- ----- --------- --------
tux50 no
tux50-64 no
tux60 yes yes yes
tux60-64 yes yes yes
tux70-64 yes yes yes
========= ===== ========= ========
New kernel or version available? If yes, install kernel, build module:
========= ===== ========= ========
OS New? Compiled Copied?
--------- ----- --------- --------
tux50 no - -
tux50-64 no - -
tux60 yes yes yes
tux60-64 yes yes yes
tux70-64 yes yes yes
========= ===== ========= ========
ZFS
,,,
ZFS kernel modules are available for EL7 only!
Sync from master repository
+++++++++++++++++++++++++++
Run on tux70-64 as normal user::
reposync --repoid=zfs --norepopath --download_path /afs/psi.ch/software/mirror/zfsonlinux/7/x86_64
Build kmod
++++++++++
Build on tux70-64 as root.
Boot into the right (newest) kernel! This is the kernel we are going to build
the modules for. Run::
# set some variables
$ ZFS_VERS='x.y.z'
$ ZFS_REL='r'
$ ZFS_REPO_DIR='/afs/psi.ch/software/linux/dist/scientificlinux/7x/x86_64/zfs/'
$ DIST='el7'
$ ARCH='x86_64'
$ cd /usr/src/spl-$ZFS_VERS
$ ./configure
$ make rpm-utils rpm-kmod
# Install the spl packages, they are required to build zfs.
$ yum localinstall \
kmod-spl-devel-$ZFS_VERS-$ZFS_REL.$DIST.$ARCH.rpm \
kmod-spl-devel-kernel-$ZFS_VERS-$ZFS_REL.$DIST.$ARCH.rpm \
kmod-spl-kernel-$ZFS_VERS-$ZFS_REL.$DIST.$ARCH.rpm \
spl-$ZFS_VERS-$ZFS_REL.$DIST.$ARCH.rpm
$ cd ../zfs-x.y.z
$ ./configure
$ make rpm-utils rpm-kmod
# you need an AFS-token to copy the files!
$ klog.openafs USERNAME
# for a new ZFS version do
$ cp -v spl-$ZFS_VERS/*.x86_64.rpm "$ZFS_REPO_DIR"
$ cp -v zfs-$ZFS_VERS/*.x86_64.rpm "$ZFS_REPO_DIR"
# to copy kernel modules only, do
$ cp -v spl-$ZFS_VERS/kmod-*-$(uname -r)*.x86_64.rpm "$ZFS_REPO_DIR"
$ cp -v zfs-$ZFS_VERS/kmod-*-$(uname -r)*.x86_64.rpm "$ZFS_REPO_DIR"
# update repo
$ cd "$ZFS_REPO_DIR"
$ createrepo --update .
See also: `<http://zfsonlinux.org/generic-rpm.html>`_
Checklist
+++++++++
If there is a new version: Are the RPM of the new versions of spl-x.y.z and
zfs-x.y.z in ``/afs/psi.ch/software/linux/dist/scientificlinux/7x/x86_64/zfs/``?
Are the kmod-RPM's for the newest kernel in
``/afs/psi.ch/software/linux/dist/scientificlinux/7x/x86_64/zfs/``?
Flash Player
,,,,,,,,,,,,
Download
++++++++
Current Flash-Player must be downloaded from `Adobe
<https://get.adobe.com/de/flashplayer/otherversions/>`_ and copied to
``${DIST_DIR}/nonfree/all``.
Checklist
+++++++++
Is the newest version installed in
``/afs/psi.ch/software/linux/dist/scientific/xx/nonfree/all/`` (``xx`` in
``57``, ``60``, ``64``)?
NVidia
,,,,,,
syslog-ng
,,,,,,,,,
openntpd
,,,,,,,,