Open Suse Tumbleweed 'sudo zypper dup' dependency hell?

@Leap
Code:
user@OpenSuse:~> zypper repos -d
# | Alias                            | Name                                   | Enabled | GPG Check | Refresh | Priority | Type   | URI                                        
                                 | Service
--+----------------------------------+----------------------------------------+---------+-----------+---------+----------+--------+----------------------------------------------
---------------------------------+--------
1 | download.opensuse.org-non-oss    | Haupt-Repository (NON-OSS)             | Ja      | (r ) Ja   | Ja      |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/
non-oss/                         |
2 | download.opensuse.org-oss        | Haupt-Repository (OSS)                 | Ja      | (r ) Ja   | Ja      |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/
oss/                             |
3 | download.opensuse.org-tumbleweed | Hauptaktualisierungs-Repository        | Ja      | (r ) Ja   | Ja      |   99     | rpm-md | http://download.opensuse.org/update/tumblewee
d/                               |
4 | ftp.gwdg.de-Essentials           | Packman Essentials Repository          | Ja      | (r ) Ja   | Nein    |   99     | rpm-md | http://ftp.gwdg.de/pub/linux/misc/packman/sus
e/openSUSE_Tumbleweed/Essentials |
5 | repo-debug                       | openSUSE-Tumbleweed-Debug              | Nein    | ----      | ----    |   99     | N/A    | http://download.opensuse.org/debug/tumbleweed
/repo/oss/                       |
6 | repo-openh264                    | Open H.264 Codec (openSUSE Tumbleweed) | Ja      | (r ) Ja   | Ja      |   99     | rpm-md | http://codecs.opensuse.org/openh264/openSUSE_
Tumbleweed                       |
7 | repo-source                      | openSUSE-Tumbleweed-Source             | Nein    | ----      | ----    |   99     | N/A    | http://download.opensuse.org/source/tumblewee
d/repo/oss/                      |
8 | vivaldi                          | vivaldi                                | Ja      | (r ) Ja   | Ja      |   99     | rpm-md | https://repo.vivaldi.com/archive/rpm/x86_64
                                 |
Code:
user@OpenSuse:~> zypper info libavcodec60-32bit
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...


Informationen zu Paket libavcodec60-32bit:
------------------------------------------
Repository         : @System
Name               : libavcodec60-32bit
Version            : 6.1.1-11.1
Arch               : x86_64
Anbieter           : openSUSE
Installierte Größe : 11,2 MiB
Installiert        : Ja (automatisch)
Status             : aktuell
Quellpaket         : ffmpeg-6-6.1.1-11.1.src
Upstream-URL       : https://ffmpeg.org/
Zusammenfassung    : FFmpeg codec library
Beschreibung       :
    The libavcodec library provides a generic encoding/decoding framework
    and contains multiple decoders and encoders for audio, video and
    subtitle streams, and several bitstream filters.


    This build of ffmpeg is limited in the number of codecs supported.

Wenn ich bei Problem 1 das alte Paket behalte, bei Problem 2 & 3 openSUSE durch packman und bei Problem 4-12 packman durch openSUSE zu ersetzten, bietet er mir an das Update ohne Probleme durchzuführen.

EDIT: macht denn der Befehl sudo zypper dup --allow-vendor-change das selbe wie ich mit der Hand, wenn ich das repo wechsle? Dann dürfte ja eigentlich kein anderes/neues Problem auftauchen.

@rarp heißt das, dass die Pakete immer noch bei packman nicht eingepflegt/aktualisiert wurden?
 
Zuletzt bearbeitet:
Thunfischsalat schrieb:
@rarp heißt das, dass die Pakete immer noch bei packman nicht eingepflegt/aktualisiert wurden?
Worauf genau beziehst du dich jetzt?

Bei mir gibt's damit keinerlei Probleme.
 
rarp schrieb:
libavcodec61 / libavcodec61-32bit stehen wahrscheinlich an, aber läuft bei mir auch parallel:
Code:
$ zseio libavcodec6
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...

S  | Name               | Type  | Version            | Arch   | Repository
---+--------------------+-------+--------------------+--------+-----------
i  | libavcodec60       | Paket | 6.1.1-1699.13.pm.6 | x86_64 | Packman
i  | libavcodec60-32bit | Paket | 6.1.1-1699.13.pm.6 | x86_64 | Packman
i  | libavcodec61       | Paket | 7.1-1699.3.pm.1    | x86_64 | Packman
i  | libavcodec61-32bit | Paket | 7.1-1699.3.pm.1    | x86_64 | Packman
Den Beitrag
 
@Thunfischsalat Es gibt doch snapshots und rollbacks. Versuch es doch einfach mal :)
 
  • Gefällt mir
Reaktionen: rarp und sedot
OK, ich glaube ich sehe jetzt auch dein Problem. Deine Repositories haben alle die gleiche Priorität 99. Bei Paketen, die sowohl in Packman als auch im Haupt-Repo vorhanden sind, weiß dein Paketmanager zypper nicht so genau was er jetzt nehmen soll bzw. es entsteht zwangsläufig ein Paketmischmasch.

Die Priorität des Packman-Repos sollte immer höher sein (=niedrigere Zahl), als das Haupt-Repo. Du kannst die Priorität z.B. in YaST -> Software-Repositories ändern.
Setze mal die Priorität deines Packman Essentials Repository auf 90

Dann aktualisiere dein System mit:
Code:
sudo zypper refresh
sudo zypper dup --from ftp.gwdg.de-Essentials --allow-vendor-change

Der Befehl --allow-vendor-change sollte hier einmalig angewendet werden, damit alle deine Codecs zum Packman-Repo wechseln.
Dein libavcodec60-32bit Paket ist z.Z. aus deinem Haupt-Repo installiert. Du möchtest aber die Packman-Version haben.

Dokumentation: https://en.opensuse.org/SDB:Installing_codecs_from_Packman_repositories

Edit: Ich habe den Befehl sudo zypper dup --from packman --allow-vendor-change zu
sudo zypper dup --from ftp.gwdg.de-Essentials --allow-vendor-change geändert. Dein Alias Name von deinem Packman-Repo heißt ftp.gwdg.de-Essentials (lässt sich aber auch ändern).
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Thunfischsalat, rarp und drake23
@Leap Danke für die Analyse, wieder was gelernt, worauf man noch achten muss :)!
 
  • Gefällt mir
Reaktionen: Thunfischsalat und Leap
Leap schrieb:
Deine Repositories haben alle die gleiche Priorität 99. Bei Paketen, die sowohl in Packman und auch im Haupt-Repo vorhanden sind, weiß dein Paketmanager zypper nicht so genau was er jetzt nehmen soll bzw. es entsteht zwangsläufig ein Paketmischmasch.
Das Vorgehen führt afaik dazu, dass zypper erst die Quelle(n) mit niedriger Priorität prüft und danach diejenige(n) mit höherer. Bist du dir sicher, dass die Nachfrage nicht käme?
Der Schritt mit --allow-vendor-change bleibt so oder so bestehen und führt auch ohne Veränderung der Prioritäten zum Ziel in diesem Fall.

edit: ich seh gerade bei mir, packman hat eine niedrigere Priorität und die Nachfrage kam wie beschrieben.
 
sedot schrieb:
edit: ich seh gerade bei mir, packman hat eine niedrigere Priorität und die Nachfrage kam wie beschrieben.
Auf die Gefahr hin, Offensichtliches zu erklären:
Code:
Repository-Prioritäten treten in Kraft:
      90 (erhöhte Priorität)  :  1 Repository #<--Packman
      99 (Standard-Priorität) :  6 Repositorys
EDIT: Sorry, sehe grad, dass @Leap das schon hinreichend beschrieb
 
Zuletzt bearbeitet: (Packman hinzugefügt)
  • Gefällt mir
Reaktionen: drake23 und sedot
rarp schrieb:
Auf die Gefahr hin, Offensichtliches zu erklären:
Ups, Formulierungsfehler von mir, ich meinte höhere Priorität – Packman bei 90, die anderen Repos bei 99. 🫠
 
  • Gefällt mir
Reaktionen: rarp und drake23
Ja vielen Dank euch allen.
So einfach kann man sich den Nachmittag versauen-
Damals habe ich bei der Einrichtung nicht auf so etwas geachtet!

Ich setzte nachher die Priorität um und dann habe ich auch endlich die Erlaubnis von @Leap den Befehl --allow-vendor-change anzuwenden :D

Ich will nochmal allen Beteiligten hier sagen, dass dieses Unterforum wirklich noch eins der wenigen ist, in dem sich mit Problemen ernsthaft auseinandergesetzt wird.
Danke für dien Austausch!
 
  • Gefällt mir
Reaktionen: Leap, konkretor, sedot und 2 andere
Ich muss mich nochmal melden.
Ich habe die Priorität von den packman repos auf 90 hochgesetzt und die beiden Befehle von @Leap sudo zypper refresh und sudo zypper dup --from ftp.gwdg.de-Essentials --allow-vendor-change eingegeben.
(Mir ist nicht ganz klar was der Zusatz --from ftp.gwdg.de-Essentials genau macht.)
Beim Update listete er eine ganze Reihe von Paketen aus die von openSUSE zu packman wechseln.
Insbesondere von VLC und Mesa. Will ich das? Eigentlich habe ich ja packman nur für die Codecs.

Eigentlich wollte ich euch vorher um Rat fragen und das Update abbrechen, aber anstatt 'n(ein) + enter' habe ich nur 'enter' gedrückt und das Update ging durch.
Nun wollte ich (zum aller ersten mal) von einem Snapshot booten, um zu schauen ob sich alles Rückgängig machen lässt.
Danach hatte ich nur noch die ersten drei Probleme, was mich jetzt ein wenig verunsichert.
Hat das Rolback mit sudo snapper rollback (wie hier beschrieben) wirklich richtig funktioniert?

Code:
Problem: 1: Problem mit dem installierten libavcodec60-32bit-6.1.1-11.1.x86_64
Problem: 2: Problem mit dem installierten libavutil58-32bit-6.1.1-11.1.x86_64
Problem: 3: Problem mit dem installierten libswresample4-32bit-6.1.1-11.1.x86_64

Wenn ich in dem Zustand (mit nur drei Problemen) den Befehl sudo zypper dup --from ftp.gwdg.de-Essentials --allow-vendor-change ausführe will er für die folgenden Paketen das repo ändern:
Code:
Die folgenden 68 Pakete werden den Anbieter ändern:
  gdk-pixbuf-loader-libheif        openSUSE -> http://packman.links2linux.de
  libavcodec58_134                 openSUSE -> http://packman.links2linux.de
  libavcodec60                     openSUSE -> http://packman.links2linux.de
  libavcodec60-32bit               openSUSE -> http://packman.links2linux.de
  libavcodec61-32bit               openSUSE -> http://packman.links2linux.de
  libavdevice60                    openSUSE -> http://packman.links2linux.de
  libavfilter9                     openSUSE -> http://packman.links2linux.de
  libavformat58_76                 openSUSE -> http://packman.links2linux.de
  libavformat60                    openSUSE -> http://packman.links2linux.de
  libavformat61-32bit              openSUSE -> http://packman.links2linux.de
  libavutil56_70                   openSUSE -> http://packman.links2linux.de
  libavutil58                      openSUSE -> http://packman.links2linux.de
  libavutil58-32bit                openSUSE -> http://packman.links2linux.de
  libavutil59-32bit                openSUSE -> http://packman.links2linux.de
  libfdk-aac2                      openSUSE -> http://packman.links2linux.de
  libfdk-aac2-32bit                openSUSE -> http://packman.links2linux.de
  libgbm1                          openSUSE -> http://packman.links2linux.de
  libgbm1-32bit                    openSUSE -> http://packman.links2linux.de
  libheif1                         openSUSE -> http://packman.links2linux.de
  libheif-aom                      openSUSE -> http://packman.links2linux.de
  libheif-dav1d                    openSUSE -> http://packman.links2linux.de
  libheif-ffmpeg                   openSUSE -> http://packman.links2linux.de
  libheif-jpeg                     openSUSE -> http://packman.links2linux.de
  libheif-openjpeg                 openSUSE -> http://packman.links2linux.de
  libheif-rav1e                    openSUSE -> http://packman.links2linux.de
  libheif-svtenc                   openSUSE -> http://packman.links2linux.de
  libOSMesa8                       openSUSE -> http://packman.links2linux.de
  libOSMesa8-32bit                 openSUSE -> http://packman.links2linux.de
  libpostproc55_9                  openSUSE -> http://packman.links2linux.de
  libpostproc57                    openSUSE -> http://packman.links2linux.de
  libquicktime0                    openSUSE -> http://packman.links2linux.de
  libswresample3_9                 openSUSE -> http://packman.links2linux.de
  libswresample4                   openSUSE -> http://packman.links2linux.de
  libswresample4-32bit             openSUSE -> http://packman.links2linux.de
  libswresample5-32bit             openSUSE -> http://packman.links2linux.de
  libswscale5_9                    openSUSE -> http://packman.links2linux.de
  libswscale7                      openSUSE -> http://packman.links2linux.de
  libvdpau_r600                    openSUSE -> http://packman.links2linux.de
  libvdpau_radeonsi                openSUSE -> http://packman.links2linux.de
  libvlc5                          openSUSE -> http://packman.links2linux.de
  libvlccore9                      openSUSE -> http://packman.links2linux.de
  libvulkan_intel                  openSUSE -> http://packman.links2linux.de
  libvulkan_intel-32bit            openSUSE -> http://packman.links2linux.de
  libvulkan_radeon                 openSUSE -> http://packman.links2linux.de
  libvulkan_radeon-32bit           openSUSE -> http://packman.links2linux.de
  libxvidcore4                     openSUSE -> http://packman.links2linux.de
  libxvidcore4-32bit               openSUSE -> http://packman.links2linux.de
  Mesa                             openSUSE -> http://packman.links2linux.de
  Mesa-32bit                       openSUSE -> http://packman.links2linux.de
  Mesa-dri                         openSUSE -> http://packman.links2linux.de
  Mesa-dri-32bit                   openSUSE -> http://packman.links2linux.de
  Mesa-gallium                     openSUSE -> http://packman.links2linux.de
  Mesa-gallium-32bit               openSUSE -> http://packman.links2linux.de
  Mesa-libEGL1                     openSUSE -> http://packman.links2linux.de
  Mesa-libGL1                      openSUSE -> http://packman.links2linux.de
  Mesa-libGL1-32bit                openSUSE -> http://packman.links2linux.de
  Mesa-libglapi0                   openSUSE -> http://packman.links2linux.de
  Mesa-libglapi0-32bit             openSUSE -> http://packman.links2linux.de
  Mesa-libva                       openSUSE -> http://packman.links2linux.de
  Mesa-vulkan-device-select        openSUSE -> http://packman.links2linux.de
  Mesa-vulkan-device-select-32bit  openSUSE -> http://packman.links2linux.de
  vlc                              openSUSE -> http://packman.links2linux.de
  vlc-codec-fluidsynth             openSUSE -> http://packman.links2linux.de
  vlc-codec-gstreamer              openSUSE -> http://packman.links2linux.de
  vlc-lang                         openSUSE -> http://packman.links2linux.de
  vlc-noX                          openSUSE -> http://packman.links2linux.de
  vlc-qt                           openSUSE -> http://packman.links2linux.de
  vlc-vdpau                        openSUSE -> http://packman.links2linux.de
Unten sind die VLC- und MESA-Pakete genannt.
 
Vielleicht gibt es hier eine Expertenmeinung, aber ich beziehe dann immer alles von Pacman, was er anbietet (Codecs, VLC, Mesa).

Manchmal springt Mesa zurück zu TW (Dank allow vendor change kein Problem), und später wieder zu Pacman.
 
  • Gefällt mir
Reaktionen: Thunfischsalat und sedot
Thunfischsalat schrieb:
Wenn ich in dem Zustand (mit nur drei Problemen) den Befehl sudo zypper dup --from ftp.gwdg.de-Essentials --allow-vendor-change ausführe will er für die folgenden Paketen das repo ändern:
Es ist kein Problem (un-)regelmäßig zwischen verschiedenen Paketquellen zu wechseln. Tumbleweed ist robust und es gibt kaum Grund zur Sorge und eigentlich auch keinen für ein Rollback.

Zu snapper, refresh und dup – zypper erstellt default bei jeder (de-)installation von Paketen einen Snapshot, refresh ist als zusätzlicher Befehl bei Tumbleweed nicht nötig, weil Teil von dup.

Zu snapper noch, siehe openSUSE Wiki – allerdings, snapper ist default vollständig konfiguriert nach der Installation und Snapshots werden regelmäßig aufgeräumt, die zwei Sachen kannst du ignorieren.
Ich gehe davon aus, dass du bei der Installation hier nichts dahingehend geändert hast.
 
  • Gefällt mir
Reaktionen: Thunfischsalat und drake23
Thunfischsalat schrieb:
Mir ist nicht ganz klar was der Zusatz --from ftp.gwdg.de-Essentials genau macht.
Aktualisierung auf angegebenes Repository beschränken.

Das Ziel ist es, die Codecs zuerst sauber aus dem Pakman-Repo zu beziehen, um deine Paketkonflikte aufzulösen. Die Änderungen der Repos sehen genau so aus, wie sie sollten. Einfach laufen lassen, dann sollte dein System wieder in der Spur sein. Anschließend noch mit einem einfachen sudo zypper dup das ganze System aktualisieren.

Die Mesa- und VLC-Pakete enthalten ebenfalls Codecs, die im Haupt-Repo nicht enthalten sind. Ich denke schon, dass du die willst. Ich habe sie auch bei mir installiert. Bei Mesa betrifft das z.B. auch die Hardware-Beschleunigung im Browser. Wenn du den VLC-Player nicht nutzt, empfehle ich den vorher zu deinstallieren.

Dein Rollback hat vermutlich auch funktioniert. Dass du jetzt weniger Paketkonflikte hast, liegt vermutlich daran, dass du die Repo-Prioritäten richtig konfiguriert hast. Die Einstellungen sollten vom Rollback nicht betroffen sein.
Ergänzung ()

sedot schrieb:
Es ist kein Problem (un-)regelmäßig zwischen verschiedenen Paketquellen zu wechseln
Es stimmt, dass Tumbleweed sehr robust ist, sofern die Repo-Prioritäten richtig konfiguriert sind, aber das Pakete Ping-Pong zwischen verschiedenen Repos ist eigentlich nicht Sinn der Sache. Ich möchte die Packman-Pakete nutzen, weil die mir Funktionalitäten bieten, die im Haupt-Repo nicht enthalten sind.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: drake23, sedot und Thunfischsalat
Leap schrieb:
Es stimmt, dass Tumbleweed sehr robust ist, sofern die Repo-Prioritäten richtig konfiguriert sind, aber das Pakete Ping-Pong zwischen verschiedenen Repos ist eigentlich nicht Sinn der Sache.
Fair. Mich stört gelegentliches Ping-Pong nicht und das OS offensichtlich auch nicht, es führen mehrere Wege zum Ziel. 😉
 
  • Gefällt mir
Reaktionen: Nefilim
Ja, die Sache ist die, dass wir nicht wirklich alle Codecs brauchen. Deshalb funktioniert das gelegentliche Wechseln des Repos, ohne dass man es merkt. Man könnte jetzt versuchen, genau herauszufinden, welche Codecs man wirklich braucht, aber das wäre mir ehrlich gesagt auch zu mühselig. Deshalb installiere ich die ganze Liste.

Eine andere Strategie wäre, wie @Nefzul geschrieben hat, das Packman Repo komplett rauszuschmeißen und die Anwendungen für die man Codecs braucht dann per Flatpak zu installieren.
 
  • Gefällt mir
Reaktionen: Nefilim
Leap schrieb:
Man könnte jetzt versuchen, genau herauszufinden, welche Codecs man wirklich braucht, aber das wäre mir ehrlich gesagt auch zu mühselig.
Hatte ich tatsächlich mal ausprobiert, fast alles (was ich nutze) lässt sich mit Flatpaks ersetzen. Hier und da war ich letztlich unzufrieden, weshalb eben (wieder) packman eingebunden ist. Anwendungen via distrobox als mögliche Alternative zu flatpak und packman will ich irgendwann mal noch testen. Wäre dann natürlich auch etwas Overengineering irgendwie. 🫠
 
Zurück
Oben