ublue-os / bazzite

Bazzite is a custom image built upon Fedora Atomic Desktops that brings the best of Linux gaming to all of your devices - including your favorite handheld.
https://bazzite.gg
Apache License 2.0
3.28k stars 178 forks source link

Cannot upgrade #1014

Open rcarmo opened 2 months ago

rcarmo commented 2 months ago

Describe the bug

when I did ujust update today, I got the following error messages:

$ ujust update

── 20:49:46 - System update ────────────────────────────────────────────────────
==== AUTHENTICATING FOR org.projectatomic.rpmostree1.upgrade ====
Authentication is required to update software
Authenticating as: me
Password: 
==== AUTHENTICATION COMPLETE ====
Pulling manifest: ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome-nvidia:latest
Checking out tree dfc180a... done
Enabled rpm-md repositories: copr:copr.fedorainfracloud.org:matte-schwartz:sunshine updates fedora rpmfusion-free-updates-testing rpmfusion-free-updates rpmfusion-free rpmfusion-nonfree-updates-testing rpmfusion-nonfree-updates rpmfusion-nonfree updates-archive
Importing rpm-md... done
rpm-md repo 'copr:copr.fedorainfracloud.org:matte-schwartz:sunshine' (cached); generated: 2024-04-14T12:22:05Z solvables: 2
rpm-md repo 'updates' (cached); generated: 2024-04-24T01:00:32Z solvables: 5749
rpm-md repo 'fedora' (cached); generated: 2024-04-19T08:53:31Z solvables: 74873
rpm-md repo 'rpmfusion-free-updates-testing' (cached); generated: 2024-04-20T11:41:15Z solvables: 3
rpm-md repo 'rpmfusion-free-updates' (cached); generated: 2024-04-24T11:18:06Z solvables: 1
rpm-md repo 'rpmfusion-free' (cached); generated: 2024-04-20T12:11:51Z solvables: 422
rpm-md repo 'rpmfusion-nonfree-updates-testing' (cached); generated: 2024-04-24T11:37:39Z solvables: 4
rpm-md repo 'rpmfusion-nonfree-updates' (cached); generated: 2024-04-24T11:37:34Z solvables: 52
rpm-md repo 'rpmfusion-nonfree' (cached); generated: 2024-04-20T12:18:23Z solvables: 194
rpm-md repo 'updates-archive' (cached); generated: 2023-10-06T17:04:49Z solvables: 0
Resolving dependencies... done
error: Could not depsolve transaction; 1 problem detected:
 Problem: conflicting requests
  - nothing provides libboost_locale.so.1.81.0()(64bit) needed by sunshine-0.21.0-1.x86_64 from @commandline
  - nothing provides libboost_atomic.so.1.81.0()(64bit) needed by sunshine-0.21.0-1.x86_64 from @commandline
  - nothing provides libboost_chrono.so.1.81.0()(64bit) needed by sunshine-0.21.0-1.x86_64 from @commandline
  - nothing provides libboost_filesystem.so.1.81.0()(64bit) needed by sunshine-0.21.0-1.x86_64 from @commandline
  - nothing provides libboost_log.so.1.81.0()(64bit) needed by sunshine-0.21.0-1.x86_64 from @commandline
  - nothing provides libboost_program_options.so.1.81.0()(64bit) needed by sunshine-0.21.0-1.x86_64 from @commandline
  - nothing provides libboost_regex.so.1.81.0()(64bit) needed by sunshine-0.21.0-1.x86_64 from @commandline
  - nothing provides libboost_thread.so.1.81.0()(64bit) needed by sunshine-0.21.0-1.x86_64 from @commandline
System update failed: 
   0: Command failed: `/usr/bin/rpm-ostree upgrade`
   1: `/usr/bin/rpm-ostree` failed: exit status: 1

Location:
   src/steps/os/linux.rs:273
Retry? (y)es/(N)o/(s)hell/(q)uit

I have tried removing sunshine, but that had no effect. I also cannot install the right libboost packages

What did you expect to happen?

I expected 2 + 2 to equal 4, but instead 2 + 2 equaled 6!

Output of rpm-ostree status

$ rpm-ostree status
State: idle
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome-nvidia:latest
                   Digest: sha256:1ddacc1c8db8ea18f493db7df81b9a03acd78a84c299739859c9684d052ab777
                  Version: 39.20240116.0 (2024-04-19T17:14:39Z)
          LayeredPackages: gnome-shell-extension-dash-to-dock gnome-shell-extension-no-overview htop mc the_silver_searcher
            LocalPackages: sunshine-0.21.0-1.x86_64
                Initramfs: '"-I /etc/crypttab /usr/lib/modprobe.d/nvidia.conf"' 

  ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome-nvidia:latest
                   Digest: sha256:1ddacc1c8db8ea18f493db7df81b9a03acd78a84c299739859c9684d052ab777
                  Version: 39.20240116.0 (2024-04-19T17:14:39Z)
          LayeredPackages: gnome-shell-extension-dash-to-dock gnome-shell-extension-no-overview htop mc the_silver_searcher
            LocalPackages: sunshine-0.21.0-1.x86_64
                Initramfs: '"-I /etc/crypttab /usr/lib/modprobe.d/nvidia.conf"' 


### Hardware

Proxmox VM with RTX 3060 pass-through. Stable for months until today.

### Extra information or context

_No response_
KyleGospo commented 2 months ago

Remove sunshine, then update and reinstall.

rpm-ostree remove sunshine

You can reinstall it with ujust.

Nitrousoxide commented 2 months ago

Remove sunshine, then update and reinstall.

rpm-ostree remove sunshine

You can reinstall it with ujust.

Sunshine will fail to execute as it's missing a libarary in Fedora 40.

/usr/bin/sunshine
/usr/bin/sunshine: error while loading shared libraries: libboost_locale.so.1.81.0: cannot open shared object file: No such file or directory
Nitrousoxide commented 2 months ago

While we wait for a proper rpm of sunshine from that dev with the needed libraries defined in it (this can take a few weeks in my experience)

Here is a solution that will work in the meantime, though it does require the use of a rootful distrobox container and thus user input to enter your password in. It won't be able to start up with with your system boot with no user input.

##CONTAINER CREATION
#Create a rootful ubuntu distrobox container.  You need to use rootful because it requires certain permissions to stream which a rootless version lacks.
distrobox-create --root --image quay.io/toolbx-images/ubuntu-toolbox:22.04 -n root-sunshine-ubuntu_22_04 -Y
distrobox enter --root root-sunshine-ubuntu_22_04

#Navigate to /tmp to download files.  This way they will be blown out on next boot since they will no longer be needed
cd /tmp
wget https://github.com/LizardByte/Sunshine/releases/download/v0.23.1/sunshine-ubuntu-22.04-amd64.deb
sudo apt install -f -y ./sunshine-ubuntu-22.04-amd64.deb 

#Link the Steam executable on the host into the container so it can execute steam commands like it was a regular overlay
sudo ln -s /usr/bin/distrobox-host-exec /usr/bin/steam

#If you need gnome-randr for screen resolution changes under wayland.  You could also install it on the host and it should appear there automatically
sudo apt install -y pkg-config cargo
cargo install gnome-randr

##RUNNING APPLICATION
#Enter Distrobox and enter sudo pass
distrobox enter --root root-sunshine-ubuntu_22_04 

#This detaches sunshine so it will keep running when you close the terminal. 
sunshine &

##Making binary available on host without first jumping into the container
#This will export the "binary" to your ~/.local/bin folder, though it's really just a wrapper for the "Running application" steps I defined above.  You'll still need to enter your password

#While in the distrobox
distrobox-export --bin /usr/bin/sunshine --export-path ~/.local/bin