WhitewaterFoundry / Fedora-Remix-for-WSL

Fedora Remix for Windows Subsystem for Linux.
Other
710 stars 51 forks source link

Upgrading 29 -> 30 #48

Closed davorg closed 1 year ago

davorg commented 4 years ago

I have a Fedora Remix 29 for WSL working on my laptop. Over the weekend, I installed it on a friend's laptop and noticed that I got Fedora Remix 30. So I obviously wanted to get Fedora 30 on my laptop. I can't reinstall the app from the Windows Store as it knows it has already been installed.

So I tried to upgrade from the command line with:

% dnf upgrade --releasever=30

It downloads the RPMs successfully, but then dies with an error:

warning: /var/cache/dnf/fedora-a924e206df91842b/packages/alternatives-1.11-4.fc30.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID cfc659b9: NOKEY
fedora 0.0 B/s | 0 B 00:00 Curl error (37): Couldn't read a file:// file for file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-29-primary [Couldn't open file /usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-29-primary]

The problem seems to be that I don't have a /usr/share/distribution-gpg-keys directory. Which RPM should I install to get that?

davorg commented 4 years ago

Update: I worked out that I needed to run:

% dnf install distribution-gpg-keys

But that installed the keys for Fedora 29. So, then I ran:

% dnf update distribution-gpg-keys --releasever=30

But it still doesn't work. I get a load of errors like this:

Public key for zstd-1.4.2-1.fc30.x86_64.rpm is not installed. Failing package is: zstd-1.4.2-1.fc30.x86_64 GPG Keys are configured as: file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-29-primary

Which makes it look like it's still looking at the Fedora 29 GPG keys.

davorg commented 4 years ago

Oh, that's because:

% dnf update distribution-gpg-keys --releasever=30

didn't work. Because the correct keys aren't installed. Which seems like a bit of a Catch 22.

crramirez commented 4 years ago

Hello @davorg

Follow these steps:

sudo dnf upgrade --refresh
sudo dnf install dnf-plugin-system-upgrade

sudo dnf system-upgrade download --releasever=30
sudo dnf system-upgrade upgrade

cat /etc/fedora-release
exit

If you face an error like: "Failed to obtain the transaction lock (logged in as: root).". Run this:

sudo dnf upgrade --refresh rpm glibc
sudo rm /var/lib/rpm/.rpm.lock
sudo dnf upgrade dnf

And repeat the last command that you attempted and keep following the steps.

I recommend that you attempt a backup first if you have Windows 1903:

wsl --export fedoraremix fedoraremix29_backup.tar.gz

Steps were taken from https://fedoramagazine.org/upgrading-fedora-28-fedora-29/

Regards, Carlos

WSLUser commented 4 years ago

I'd like to mention sudo dnf system-upgrade upgrade isn't used at least from 31 to 32. Also I used daemonize to get systemd working (WSL2 required) as that is required to finish the upgrade due to wanting a reboot. Using sudo reboot and then doing wsl --shutdown in PS/CMD finishes the upgrade as evidenced bycat /etc/fedora-release and dnf upgrade after going back into your fedoraremix instance. This may need to get documented for other users upgrading if using on WSL2.

crramirez commented 4 years ago

Excellent. We published this guide to do the upgrade : https://www.whitewaterfoundry.com/blog/2019/11/3/upgrade-fedora-remix-for-wsl-to-31-2a7z8

WSLUser commented 4 years ago

Yep. Having systemd working really helps for Fedora as everything is driven by it. Had a bunch of udev processes though that need to be killed.

andmalc commented 4 years ago

dnf system-upgrade upgrade and then a wsl --shutdown got me to Fedora 32, at least that's what /etc/feddora-release says.

BasixKOR commented 3 years ago

I tried to upgrade to 31 but dnf system-upgrade donwload failed with this error message:


terminate called after throwing an instance of 'libdnf::ModulePackageContainer::EnableMultipleStreamsException'
  what():  Cannot enable multiple streams for module 'lsd'
crramirez commented 3 years ago

Hello

I got some suggesting from: https://unix.stackexchange.com/questions/579184/upgrade-from-fedora-30-to-31-cannot-enable-multiple-streams-for-module-ant

Could you try : sudo dnf module reset '*'

Regards