Opensuse installing codecs the right way

Greetings my excellent friends,
I notice that in Opensuse all my movies are playing really janky with Smplayer. VLC doesn’t even play sound or giving me the warning with missing codec.
I searched to find out what codecs or how to install them here.
So now I’m a little confused because I found this
But also this thread and someone had problems with that here
So what shoud I do ?
Please remember that I’m still a newbie and in Opensuse things are a little bit different than in other distributions. I never had to install codecs on my on so far.

Use opi from the second link:

1 Like

All I always do since many years and many openSUSE versions after a fresh installation is adding the Packman repo and doing the vendor switch.

1 Like

you mean option 3 ?
I did everything there already except step 6 :))
I will … but what does that mean ? the switching ?

You switch the package vendor from openSUSE to packman (as the packages are available in both repositories…).

If you don’t do the vendor switch nothing changed and you still can’t play some vids…this step isn’t there only for shits and giggles…

ok, but I don’t understand the concept of switching.
In Arch, you can add on top of the basic package repositories, AUR.
On Debian based distros you have the basic repositories and you cand add more like for ex. Brave or Smplayer to get newer versions of software.
In MX you have additionally their own packages and you can choose from what repositories to install a piece of software.
So in Opensuse … switching means that you get apps and updates only from the repositories you choose ? Like “Packman repositories”
And how do you know what repositories you’ve chosen if you forget ?

There are easy GUI ways to find which package you have installed from which repo. Open YaST software. On the left pane Show/View → Repositories. Click one repo and all package that are installed from this repo have a checkmark…

More advanced users use zypper commands to search for installed packages…

In openSUSE system packages are prefered from the original repos if they have the same package name. If you have already package “xyz” installed and add afterwards another repo which also contains package “xyz”, you need to do a vendor switch if you want the package from the new repo.

1 Like

Switching is per-package. Each package has property (tag) “vendor” which is defined when package is built. Packages in openSUSE distribution standard repositories have vendor “openSUSE”; Packages in Packman repositories have vendor “Packman” (simplified).

When zypper looks for update candidates, it by default only considers packages with the same “vendor” tag. So if you have package with version 1 from Packman and openSUSE has released update for the same package with version 2, this update will not be installed until Packman builds version 2 and makes it available in its repositories.

“Switch vendor to repository” is colloquial shorthand for “for each installed package check if this package exists in the given repository and if yes, replace installed package with the package from the repository”.

You can also explicitly tell zypper to install any package from any repository.

And to avoid confusion - switching is not related to the repository. “Repository” simply means location where packages are available for installation. Nothing really prevents the same repository to provide packages from different vendors. Nothing prevents multiple repositories to provide packages from the same vendor (openSUSE default installation defines multiple repositories already).

1 Like

What hui means:

stephan@linux64:~> LANG=C zypper se -s ffmpeg-4-libavcodec
Loading repository data...
Reading installed packages...

S  | Name                      | Type    | Version             | Arch   | Repository
i+ | ffmpeg-4-libavcodec-devel | package | | x86_64 | Packman_Aachen
v  | ffmpeg-4-libavcodec-devel | package | 4.4-150400.3.15.1   | x86_64 | Main Repository

That means:
This package gets only updates from Packman Repo and never from the Main Repository (and its Update Repos). You can switch this package to openSUSE Main Repository and delete the Version from Packman Repo by using for example:

linux64:/home/stephan # LANG=C zypper install --force --allow-vendor-change --from 'Main Repository' ffmpeg-4-libavcodec-devel 
Loading repository data...
Reading installed packages...
Forcing installation of 'ffmpeg-4-libavcodec-devel-4.4-150400.3.15.1.x86_64' from repository 'Main Repository'.
Resolving package dependencies...

Problem: the installed requires 'ffmpeg-4-libavcodec-devel =', but this requirement cannot be provided
 Solution 1: Following actions will be done:
  downgrade of to ffmpeg-4-libavformat-devel-4.4-150400.3.15.1.x86_64
  downgrade of to ffmpeg-4-libavdevice-devel-4.4-150400.3.15.1.x86_64
  downgrade of to ffmpeg-4-libavfilter-devel-4.4-150400.3.15.1.x86_64
  downgrade of to ffmpeg-4-libavresample-devel-4.4-150400.3.15.1.x86_64
  downgrade of to ffmpeg-4-libavutil-devel-4.4-150400.3.15.1.x86_64
  downgrade of to libavcodec58_134-4.4-150400.3.15.1.x86_64
  downgrade of to libavresample4_0-4.4-150400.3.15.1.x86_64
  downgrade of to ffmpeg-4-libpostproc-devel-4.4-150400.3.15.1.x86_64
  downgrade of to ffmpeg-4-libswscale-devel-4.4-150400.3.15.1.x86_64
  downgrade of to ffmpeg-4-libswresample-devel-4.4-150400.3.15.1.x86_64
  downgrade of to libavutil56_70-4.4-150400.3.15.1.x86_64
  downgrade of to libavfilter7_110-4.4-150400.3.15.1.x86_64
  downgrade of to libavdevice58_13-4.4-150400.3.15.1.x86_64
  downgrade of to libavformat58_76-4.4-150400.3.15.1.x86_64
  downgrade of to ffmpeg-4-4.4-150400.3.15.1.x86_64
  downgrade of to libswresample3_9-4.4-150400.3.15.1.x86_64
  downgrade of to libswscale5_9-4.4-150400.3.15.1.x86_64
  downgrade of to libpostproc55_9-4.4-150400.3.15.1.x86_64
 Solution 2: do not install ffmpeg-4-libavcodec-devel-4.4-150400.3.15.1.x86_64
 Solution 3: break by ignoring some of its dependencies

This is meaned by vendor switch.

You can do it also for all installed packages to switch their Installation to another Repo by:

LANG=C zypper dup --allow-vendor-change --from Packman_Aachen
Loading repository data...
Reading installed packages...
Computing distribution upgrade...

The following 2 items are locked and will not be changed by any action:
  kernel-default-base patch:openSUSE-SLE-15.5-2023-3419

The following 2 packages are going to be upgraded:
  broadcom-wl r8168-blacklist-r8169

The following 5 packages are going to be downgraded:
  libpython2_7-1_0 python python-base python-curses python-xml

The following 2 packages are going to change vendor:
  broadcom-wl            obs:// ->
  r8168-blacklist-r8169  obs:// ->

The following 2 NEW packages are going to be installed:

2 packages to upgrade, 5 to downgrade, 2 new, 2  to change vendor.
Overall download size: 8,8 MiB. Already cached: 0 B. After the operation, additional 7,9 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): 

I use the --from REPONAME|URL because than I do know, from which Repo the package is after that installed. The zypper dup --allow-vendor-switch is mostly no good idea. zypper dup will also not change the vendor, it is disabled for years.

man zypper
zypper --help
zypper dup --help

Thank you so much @arvidjaar, @Sauerland and @hui for the extensive explanations.
Now that I understand the philosophy behind, makes more sense to be this way.

Ok, but still how can I check to what repositories did I switched ?
from here no :

or from here ?

and also should I leave these updates alone ?

I’m asking all these questions to better understand how to manage my updates and not brake the system

beake my system

BTW, the movies are working fine now.

Those are not Updates. They are just packages that have the string “update” as part of their name.

No, you can only see the situation as it is now. Not how you came to that situation.

When you ever doubt if you did the “vendor switch to Packman”, you can always do it again. May be nothing happens, which then shows that it was already OK.

This is your screenshot.
With “switch system package…” means that all installed packages on the reight side will switch to the Version of the Packman Repo, if they are available in Packman Repo, it’s the same as:

zypper dup --allow-vendor-change --from Packman_Aachen

Rename “Packman_Aachen” with the right one.
See #8.

On the left you select the Repo you want to use, on the right you see installed and uninstall packages available!!! in that selceted Repo. That must not mean, they are installed from that selected Repo.
From which Repo they are installed you see only if you mark a packlage and click on the Version Tab.

Here at my systrem with the OSS Repo selected you see also the Mesa package installed, but if you select it and click on the Version Tab, you see, it is installed from the Packman Repo:

Thank you all for the patience and the answers !!! :beers:

one last question about updates if you please
I have new updates.
I cand se them in tray :

and in DIscover

but where I cand see the list in Yast Software ?

Did you try a zypper dup from a (windowed) command line? (the preferred way with TW).

If no, try that and see the results.

Yast is the wrong way to update Tumbleweed.

If you really want to test:

Click on “Package” near top left.
That should provide a menu. Go to “All Packages” and then to “Update if newer version available”. For me, that show 26 packages, but this is with Leap 15.5. Its a reasonable way to update Leap. It is about the same as “zypper update”. But for Tumbleweed, you should use “zypper dup” which will do a few different things.


you mean like this

So far I did it like this, but it’s not much eye candy … and maybe I want si pause some of the updates, or for ex I want to see if Firefox is about to be update so I close it before the upgrade.