What is the best way to organize and prioritize all the extra repositories I added to my system ?

I’m moving my main desktop to OpenSUSE (Leap 42.1) after toying around with it for a while and one thing that I’m confusing me is all the extra repositories I ended up adding over time. Right now, if I run “zypper lr” it ends up showing a pretty long list and when I install a new package its becoming hard to predict what repo it will come from

#  | Alias                               | Name                                    | Enabled | GPG Check | Refresh
---+-------------------------------------+-----------------------------------------+---------+-----------+--------
 1 | download.nvidia.com-leap            | nVidia Graphics Drivers                 | Yes     | (r ) Yes  | Yes    
 2 | ftp.gwdg.de-suse                    | Packman Repository                      | Yes     | (r ) Yes  | Yes    
 3 | http-download.opensuse.org-04fda877 | home:adra                               | Yes     | (r ) Yes  | Yes    
 4 | http-download.opensuse.org-08263d88 | network:utilities                       | Yes     | (r ) Yes  | Yes    
 5 | http-download.opensuse.org-5012f905 | home:hugomg                             | Yes     | (r ) Yes  | Yes    
 6 | http-download.opensuse.org-60a12760 | X11:Utilities                           | Yes     | (r ) Yes  | Yes    
 7 | http-download.opensuse.org-61c9c5ba | home:Ronis_BR                           | Yes     | (r ) Yes  | Yes    
 8 | http-download.opensuse.org-9431c2ca | devel:languages:lua                     | Yes     | (r ) Yes  | Yes    
 9 | linuxdownload.adobe.com-linux       | Adobe Flash Plugin                      | Yes     | ( p) Yes  | Yes    
10 | repo-debug                          | openSUSE-Leap-42.1-Debug                | No      | ----      | Yes    
11 | repo-debug-non-oss                  | openSUSE-Leap-42.1-Debug-Non-Oss        | No      | ----      | Yes    
12 | repo-debug-update                   | openSUSE-Leap-42.1-Update-Debug         | No      | ----      | Yes    
13 | repo-debug-update-non-oss           | openSUSE-Leap-42.1-Update-Debug-Non-Oss | No      | ----      | Yes    
14 | repo-non-oss                        | openSUSE-Leap-42.1-Non-Oss              | Yes     | (r ) Yes  | Yes    
15 | repo-oss                            | openSUSE-Leap-42.1-Oss                  | Yes     | (r ) Yes  | Yes    
16 | repo-source                         | openSUSE-Leap-42.1-Source               | No      | ----      | Yes    
17 | repo-update                         | openSUSE-Leap-42.1-Update               | Yes     | (r ) Yes  | Yes    
18 | repo-update-non-oss                 | openSUSE-Leap-42.1-Update-Non-Oss       | Yes     | (r ) Yes  | Yes

What I kind of want to do in the end is to keep my system as much “default openSUSE” as possible and only use the extra repos for the stuff that is not in the default repos (if I wanted everything to be bleeding edge I would have been using Tumbleweed instead of Leap). The nvidia drivers are there so I can play my 3d games, packman for proprietary codecs, Adobe Flash Plugin so I can use my bank’s website, home:adra for checkinstall, network:utilities for linssid, X11:Utilities for redshift, home:Ronis_BR for neovim, and devel:languages:lua for Lua 5.3.

Is the “repository priority” feature (via Yast -> Software Repositories ) a good way to add the order I want to this? My idea was to give all the extra repos a lower priority than the basic ones so they would only be used for the packages that are not in the base distribution (and their dependencies). However, I don’t know if this kind of approach would work with Pacman. I want to use the Packman versions of the multimedia stuff because of the proprietary codec support but at the same time I don’t think want to give a higher priority to packman because there are lots of packages in common between the default openSUSE repos and packman.

Show zypper lr -d

the - d is important it shows the full path

But pending that they look ok. It is best not to keep the personal repos active since you may not know what everything is there. But zypper up uses vendor stickiness so should get updates only from the repo a given package is installed from.

Priority does not work with up (sticky vendor) only dup which you should in general avoid

Actually, best practice would be to only have the openSUSE OSS, non-OSS, Update, and Update non-OSS repositories, plus the Adobe Flash repository, enabled during everyday use.

Looking at your list, my personal preference is to also keep the Packman repository enabled.

Disable the others. You can always re-enable them temporarily when needed, or when you want to explore or live dangerously.:wink:

Just to clarify: does this mean that inactivating and deleting a repo are different things? (Deleting a repo will cause the packages to be uninstalled, right?)

When I said that I was thinking more about “zypper install” than “zypper up”. When installing a new package and its dependencies, what repo will it come from?

One thing that makes me a bit uncomfortable is that that the order that I installed things matters a lot. For example, for the multimedia stuff some of my packages come from Packman and some from OpenSUSE because they were installed before I added the Packman repos. I’m kind of tempted to do a “zypper dup” one time just so my packages come from a more predictable place…

Correct. But you could always add the deleted repo back, if down the line you want to.

(Deleting a repo will cause the packages to be uninstalled, right?)

No, you should have the option of keeping the already-installed packages.

When I said that I was thinking more about “zypper install” than “zypper up”. When installing a new package and its dependencies, what repo will it come from?

Depends on which package you select.

Perhaps, to become more comfortable with the Yast/rpm system, you might work through the GUI Online Update and Software Management interfaces in Yast for awhile.

One thing that makes me a bit uncomfortable is that that the order that I installed things matters a lot. For example, for the multimedia stuff some of my packages come from Packman and some from OpenSUSE because they were installed before I added the Packman repos. I’m kind of tempted to do a “zypper dup” one time just so my packages come from a more predictable place…

Ah. Did you follow the multimedia guide thoroughly? After the multimedia install, you need to perform the Packman repository switch, so all the multimedia packages that exist in Packman are the versions you have. This will replace the openSUSE versions of the affected software with those from Packman, and only the Packman updates will be applied in future. (Or, as you say, “come from a more predictable place”.)

Read this over, pay special attention to the Packman switch.
https://forums.opensuse.org/entry.php/165-openSUSE-Leap-42-1-Multimedia-Guide

To get your full multimedia you have to do the “switch to Packman”. In your case (your repo list where Packman is #2 in the list):

zypper dup --from 2

There is nothing scary about that. Scary is doing a general zypper dup without the specification.

In YaST > Software > Repository Management, you can select a repo and then uncheck the Enable at the bottom. And that is NOT the same as deleting it. It is just sitting there and doing nothing. But ready to be used again when you think fit.

A Deleted repo is gone. When you want to use it again, you have to search and find it again (it’s URL mainly) to add it again.

And no, deleting a repo does not delete any packages. Like adding a repo does not install any packages. The packages once installed from a now deleted repo will show as orphans in your package lists in YaST: they wil be in red.

Enabling a repo is probably what you expect.
Disabling a repo means that the repo is no longer active and used, but the configuration and cache is still on your machine should you re-enable the repo. Compare “Disable” to “Remove” (or delete), which would remove the repo’s configuration, if you wanted to get packages from that repo again, it wouldn’t be a simple matter of flipping a switch (enable), you’d have to re-enter everything about the repo all over again.

In general, when you run “zypper up” the most recent packages from any and all active repos will be installed… So, for instance it’s common to add a “Dev:language:” repo for some special language like Perl, Python, Ruby, etc. which would likely have more recent packages… and those later packages would automatically have precedence over the older packages in your standard repos. Packages from the “update” repos will always have precedence over the original packages installed in your system.

If you <don’t> want to always have latest current stable packages in your system, you can “patch” your system instead of “update” which will preserve the older package but install security patches to continue to keep you safe.

From what I’ve seen, removing a repo only removes the repo configuration, the cache and installed packages remain in place (They are not uninstalled). These packages then become what YaST Software Manager calls “orphans.”

When you mention Packman, you’re talking about a special situation (setting Packman as the preferred repository) because of licensing issues. I don’t know of any other similar common scenario although individual cases will always exist. So, don’t think that the Packman repo is commonplace.

In general, you’re worrying about things that are part of the basic functionality of a good Package Manager, which will always track each package and resolve questions and conflicts according to your general request (update, patch, re-install, upgrade, etc).

HTH,
TSU

Thanks everyone, I think I’m getting the hand of it now! :slight_smile:

In retrospect, I think the biggest source of confusion was the Packman repositories because there are so many more packages involved there and because they work the opposite of everything else (you want to pull as much as possible from Packman instead of as little as possible). After I did the Packman switch that I should have done from the start, what was left became much more manageable and disabling the extra repos means that I won’t need to worry about any surprises in the future.

Very good. As far as I can see you understand it alright.

Enjoy.

Right. You seem to have it figured out, now. Enjoy.:slight_smile: