During all of sle10 and sle11 it was possible to do a migration via zypper dup from one to the next service packs (and with some care even from sle10 to sle11). Due to some dependency problems this is currently not possible from sle11-sp3 to sle12. A official upgrade via installation media would blow up our nice small jeos installations from 300 to over 900 packages, which is undesirable as well.

Currently I'm trying to get this running via a sle12 rpm source built on sle11 (plus some dependencies), next step is probably to get enough of libzypp and yast parts, not sure yet where exactly this is heading.

Looking for mad skills in:

Nothing? Add some keywords!

This project is part of:

Hack Week 11


Comments

  • oertel
    over 4 years ago by oertel | Reply

    actually it's not neccessary to build rpm and all that all that is required is a libzypp with a one-liner patch to change the self conflicts handling (homeadd-emoji11-mig-12-2) and the rest is pretty much scriptable (already migrated a test-jeos-vm with this method manually).

    remains to all hack it up in a script, including bootloader installation (grub2) and configuration from scratch, but that's pretty trivial. another part will be trashcan rpm that obsoletes all the packages that are not automatically obsoleted.

  • oertel
    over 4 years ago by oertel | Reply

    ~ro/hackweek/SCRIPT has the current proceedings

    the trashcan rpm is called cleanup, it is pulled in by a "Supplements: glibc", obsoletes the unwanted packages and is removed in another step.

    many migration traps are being found during using this.

    • installed pure-ftpd is removed during zypper dup. install vsftpd and enable in this case
    • sle12 uses ipv6-privacy by default which makes no sense for a server, disable by setting use_tempaddr to 0 in sysctl.conf
    • set "nowaitforswap=yes" in dracut conf to be able to reuse the systems initrd for VMs
    • reconfigure apache, load the "access_compat" module and search for Include statements with wildcards and replace by IncludeOptional
    • mysql socket in my.cnf should not be hardcoded, it is in /var/run/mysql now since /var/lib/mysql has no access rights for "other"
    • add remote syslog server to rsyslog.d/remote.conf
    • remove /etc/mtab and replace by link to /proc/self/mounts
    • configure grub2 and add config for serial console
    • install grub2 to disk
    • sync and reboot

Similar Projects

This project is one of its kind!