Raspberry Pi – Buster to Bullseye Upgrade in Place Bug

I started upgrading one of my Raspberry Pi from Buster to Bullseye by using the APT tool and following along with the TomsHardware Guide. After completing Step 6 by changing the repository name, I ran

$ sudo apt dist-upgrade

It ran a couple of items then this advisory appeared.

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable

distribution that some required packages have not yet been created

or been moved out of Incoming.

The following information may help to resolve the situation:

The following packages have unmet dependencies:

libc6-dev : Breaks: libgcc-8-dev (< 8.4.0-2~) but 8.3.0-6+rpi1 is to be installed

I had not run into that before, but thankfully, way down below the article and about 42 different ads I found the comment section. In that, a user name TJ Hooker had my answer:

I worked around that by executing sudo apt install gcc-8-base, then running dist-upgrade again.

So I gave it a try and sure enough, the upgrade was underway. Here are the two commands:

$ sudo apt install gcc-8-base 
$ sudo apt dist-upgrade

Pick back up at step 9 and 10 after that, which are:

$ sudo apt autoclean
$ sudo reboot

Then you are done. Hope this blog post makes it a bit easier to find if someone else encounters this.

P.S. – All in all I’m not sure if it wouldn’t have been faster to burn a new Bullseye card and port my content, but that’s no fun, is it? For additional reference here is the full set of commands because I am sure I will be doing this again on other machines, now I can find it.

$ sudo apt update
$ sudo apt dist-upgrade -y
$ sudo rpi-update  
    [Reboot when complete]
$ sudo nano /etc/apt/sources.list  
    [Change buster reference to bullseye]
$ sudo apt update 
     [Now gets Bullseye updates]
$ sudo apt dist-upgrade
      [if error, then run command below then rerun dist-upgrade]
    $ sudo apt install gcc-8-base 
$ sudo apt autoclean
$ sudo apt reboot