Howto upgrade Elive Beta from Buster to Bullseye

As part of getting ready for future developments, Elive has already set up repositories to allow a switch to Debian 11 Bullseye.

All existing Elive installations as well as the live version still use Debian 10 Buster as its base and will continue to do so until the shift is considered stable and foolproof. Enabling people to decide for themselves whether they want to try out and test this imminent shift, here's a small Howto explaining the steps I took to get there.

Upgrade steps:

  1. Make sure to fully upgrade your existing system using the 'apug' command in the terminal.

    • After which it would be a good idea to upgrade your (still Buster) kernel to the latest iteration in the same way as is explained in step 4 (for Bullseye). It will facilitate a lot of changes.
  2. Change the entries in '/etc/apt/sources.list.d/debian.list' to reflect the new Bullseye base. It should have the following entries:

    deb bullseye main contrib non-free
    deb bullseye-security main contrib non-free
    deb bullseye-backports main contrib non-free

    The Elive repositories require changing too. They're in '/etc/apt/sources.list.d/aaa-elive-list' and should contain:

    deb bullseye main elive efl games ports fixes drivers multimedia non-free

    As well as '/etc/apt/sources.list.d/ggg-marillat.list' to contain:

    deb bullseye main non-free

    Or if you want to be really lazy you could use the following command and make all the needed changes in one go by using the following (all in one line) command:

    sudo sed -i -e 's/buster/bullseye/g; s/bullseye\/updates/bullseye-security/g' /etc/apt/sources.list.d/*.list

  3. After checking that the sources list files are changed correctly you can run the 'apug' command again.

    • if this returns an error then re-check the mentioned lists/repos for errors.

And get yourself a beverage or something because there will be quite a lot of packages to download and install and .... there will be a few (2-3) questions asked, which in general can answered with the set default (y or save) as well.

  1. Upgrade your kernel manually as the upgrader (apug) will not do that for you. First check out which kernel you currently have with:

    'uname -a'

    where essentially the extension is of importance, like: "bpo.2-amd64". (the number behind the bpo may differ)

    You can then search for the most recent available kernel for Buster with the command:

    'apse linux-image | grep bpo'

    and subsequently chose the latest version (currently 5.14.0-0) and conform to the found extension and install that with

    'api linux-image-5.14.0-0.bpo2-amd64 linux-headers-5.14.0-0.bpo2-amd64'

  2. And reboot your system into your new kernel.

Post-upgrade fixes

Now there are still a few minor issues that we know of for Elive specifically.

And even more known issues for Debian in general: Chapter 5. Issues to be aware of for bullseye

  1. The sound card may not work and might require a work around with:

    systemctl --user stop pulseaudio.service pulseaudio.socket
    killall -9 pulseaudio
    rm -f /home/*/.config/pulse/cookie /home/*/.pulse/*
    systemctl --user start pulseaudio.service pulseaudio.socket

  2. In Bullseye python2 has been removed and superseded by python3. To change all bindings to reflect python3 you need to install th 'python-is-python3' package:

    'api python-is-python3'

  3. If you like playing retro games, specifically 'syusokoban' you'll need to re-install it as the previous one was an i386 version. Thus:

    apr --purge syasokoban
    api syasokoban

All the above fix commands, can be shortened down to one go, from user:

systemctl --user stop pulseaudio.service pulseaudio.socket
killall -9 pulseaudio
rm -f /home/*/.config/pulse/cookie /home/*/.pulse/*
systemctl --user start pulseaudio.service pulseaudio.socket

apr --purge syasokoban
api syasokoban python-is-python3

#reboot your computer now

And have a look round your shiny new Bullseye based Elive system and have fun.

If you do encounter any bugs or problems please take notes and tell us about them in the Elive forum thread: so that we can resolve them.

Take note:

After this you will be a bit on your own.

Officially Elive has not moved to Bullseye yet but includes all the needed packages and they seem to work pretty fine, but some functions may not be properly implemented (yet) in the current version. So use everything at your own risk and/or do extra own configurations if needed.

None are system critical but shouldn't unnecessarily destabilize future Buster releases.

Questions during the upgrade

At some point the process will ask the user, if a file should be overwritten. What does this mean?

The dialog looks like:

Configuration file ''/etc/[some file]''
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it?
   Y or I : install the Package maintainers version
   N or O : keep your currently-installed version
   D : show the differences between the versions
   Z : start a shell to examine the situation
 The default action is to keep your current version.

In short: The system knows the checksum of every file, installed with 'dpkg' (or the Elive-frontend 'apug'). During upgrade the system tests if the checksum in the database is identical to the old file. If not: It will ask the user how to proceed.
In most cases the user can answer '(Y)es, use the new maintainers file'. But in some rare cases there are important changes i.e regarding the login (/etc/pam.d/) or the local email service (/etc/exim/).

If you haven't changed any settings yourself, just override it. If you remember the path/filename, think about what you've changed and how it will affect your system.
If possible, every configuration change should be in ~/ (home), not in the /etc/ folder.