tumbleweed vender changes


Sorry for asking a question that has obviously been asked over and over, but I did not see an answer to my specific questions, so here I am. I’m running tumbleweed in a virtualbox for a few weeks to get the hang of it before I switch from manjaro, and I had a few questions about repos and vender changes:

  1. When I first added the packman repo, I did not realize that I needed to actually do a vender change. So, every time I got an update, it was giving me all sorts of vendor conflict errors (I suppose they aren’y really errors but decisions for me to make). They seemed reasonably easy to navigate (zypper seems pretty good here), but I am assuming there might be a way to set the changes so that it defaults to packman, rather than ask every time. ** Is this the case? **I noticed here ( https://en.opensuse.org/SDB:Vendor_change_update ) that there was a way to change the vendor to what you wanted, and I did that. But then it updated with a bunch of vendor conflict decisions / errors again. So, is this the way it is? or is there a better way to go about it? (meaning so that I won’t have to manually tell it what to upgrade every time. I assume, btw, that it only does this the first time it updates the individual package, and it won’t bother me about that one again unless I did another change. Please correct me if I’m wrong.) Actually, upon further reading, I think it will only ask for the vender change (when doing zypper dup) if it sees that the selected vendor is not the most up-to-date version.

  2. I noticed (again at https://en.opensuse.org/SDB:Vendor_change_update) that there is a way to have the packages upgrade regardless of source to the highest version number. From the page:
    If you wish you can disable vendor stickyness completely - in this case the package manager will not ask permission to change vendor for packages, and updating will just install whatever package has the highest version number, regardless of where it comes from.

In /etc/zypp/zypp.conf set

solver.allowVendorChange = true
Now zypper up will install the newest versions available from any vendor. And YaST will mark packages where an update is available with blue text, even if the update is from a different vendor.

I am guessing that this might not be the best idea, and that it is a recipe for dependency problems. Am I right?

  1. That led me to duckduckgo the difference between zypper up and zypper dup. I have been led to believe that zypper dup is what I should be doing with tumbleweed. I found the difference explained here: https://forums.opensuse.org/showthread.php/517451-Differnce-between-zypper-up-and-zypper-dup

Thanks again for any help. Sorry for being annoying.

After you add the Packman repo, you should do a

zypper dup --from <#/alias/name of the Packmanrepo>

For the real value of what to fill in there, do a

zypper lr -d

Look for the Packman repo and use e.g. the number from the first column, or the Alias from the second (remind for the future that the Alias will stay the same as long as you do not tinker with the Packman entry, but the # may change when you add/remove other repos.

To keep your Tumbleweed up-to-date, only use

zypper dup

[QUOTE=For the real value of what to fill in there, do a
zypper lr -d[/QUOTE]

Thanks for this. That is very helpful. I was able to test it out in my virtualbox. If I understand correctly, once I have done the zypper dup --from <#/alias/name of the Packmanrepo>, zypper will prefer that repo from here on out?

1: You can set priorities for repos.

The default priority is 99. A lower number is a higher priority.

I set packman to have a priority of 97. That gives it a preference. So “zypper” (and other update tools) will prefer a package from “packman” over one from the standard repos. However, because of vendor-stickyness, it won’t actually switch unless you tell it. The effect of the 97 priority, is that if I install a new package (rather than update an existing package), it will install from packman rather than from the standard repos.

2: You can use

zypper dup --allow-vendor-change

if you want to allow switching vendors. So:

zypper dup -allow-vendor-change --from packman

(replace “packman” with the alias or name or number of your packman repo)
will switch everything to packman, if there is a packman version.

3: If you really want to alway allow that, you can change “/etc/zypp/zypp.conf” by setting

solver.dupAllowVendorChange = true

That automatically allows vendor change (based on repo priority) during “zypper dup”.

The modification that you mentioned

solver.allowVendorChange = true

is a bad idea, because that would allow vendor change during “zypper update” and not just “zypper dup”. And that can possibly result in installing a package from one repo and a needed library from a different repo. If you set the repo priorities appropriately, then “zypper dup” should normally switch the library to the same repo as the package using that library.

In any case, it is working for me. With packman priority at 97, and “solver.dupAllowVendorChange = true”, things seem to be working well.

It’s fair to point out, however, that I mainly use Leap 15.1, so I might not always notice problems in Tumbleweed.

Okay, thank you so much both of you. I really appreciate it.