Since a couple of weeks ago my package update stopped with the following message:
YaST2 conflicts list - generated 2017-05-31 18:01:28
gcc6-6.2.1+r239768-5.5.2.x86_64 requires libasan3 >= 6.2.1+r239768-5.5.2, but this requirement cannot be provided
uninstallable providers: libasan3-6.2.1+r239768-5.5.2.x86_64[download.opensuse.org-oss_1]
libasan3-6.2.1+r239768-5.5.2.x86_64[repo-update]
Any help how to resolve this conflict while still keeping gcc6’s address sanitizer working would be highly appreciated !
Your problem is with the desktop update applet, which is limited in its ability to deal with such problems.
Open a root terminal. Or open a terminal session (konsole or gnome-terminal or xfce-terminal – whichever you use), and then use the “su -” command to become root.
Once you have a root terminal session:
zypper up
This will also give conflict messages. But it will give you some choices to resolve the problem. If you are not sure, then choose “c” (cancel), and post the choices here and someone will suggest the appropriate choice to make.
Maybe also post the output of:
zypper lr -d
That gives a list of repos. It’s possible that there are problems in your list of repos.
You’re indeed correct that zypper up does much better. It has upgraded all the 350+ packages on my system after running it from the command line.
I’m now getting:
box:~ # zypper lr -d
Repository priorities are without effect. All enabled repositories share the same priority.
| Alias | Name | Enabled | GPG Check | Refresh | Priority | Type | URI | Service
Looking at your list of repos, I’m not seeing a serious problem.
It does look to me as if repo #4 and repo #11 are the same. That should not cause update problems, but it will cause a duplication of effort when the repos are checked. I would suggest deleting repo #4, and keeping #11. Maybe use
Yast → Software Repositories
to recheck, and to delete the duplicate (or at least mark it disabled).
I’m not sure why zypper is not updating gcc6, though there is probably a good reason. If you want to find out, then run
Yast → Software Management
Put “gcc6” in the search box, and click “Search”.
Then click the “Versions” tab (toward the bottom of the window). That will show which versions are in the repos. You can then try to force the install of the highest numbered version. And a “conflict resolution” window will probably pop up, telling you that there’s a problem. You might have to select a solution to get out of that window. But, after that, you can click “Cancel” to exit without making any changes. That will give you an idea of what the issue is.
In any case, after 350 updates you are in a lot better shape than before.
Thanks for the guidance.
I have removed the duplicate repos as suggested.
FYI, I also have Visual studio code installed. Maybe that’s what’s causing it ?
I have then followed the steps to get more info on the conflict and have saved the resulting dialog into a text file:
#### YaST2 conflicts list - generated 2017-07-04 14:38:49 ####
gcc6-6.2.1+r239768-5.5.2.x86_64 requires libasan3 >= 6.2.1+r239768-5.5.2, but this requirement cannot be provided
uninstallable providers: libasan3-6.2.1+r239768-5.5.2.x86_64[repo-update]
] Following actions will be done:
deinstallation of libasan3-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of libatomic1-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of libcilkrts5-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of libgcc_s1-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of libgomp1-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of libitm1-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of liblsan0-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of libmpx2-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of libmpxwrappers2-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of libtsan0-gcc6-6.2.1+r239768-3.3.x86_64
deinstallation of libubsan0-gcc6-6.2.1+r239768-3.3.x86_64
] do not install gcc6-6.2.1+r239768-5.5.2.x86_64
] break gcc6-6.2.1+r239768-5.5.2.x86_64 by ignoring some of its dependencies
#### YaST2 conflicts list END ###
I don’t make any sense of that. Looks like these are the address sanitizer libs for gcc6 and I need these since I’m using the sanitizer.
So I’ll just keep the conflict and stick to “zypper up” for update.
Apparently libasan3-gcc6 got renamed to libasan3 (and similarly the other listed packages), but the package/update doesn’t specify that.
Choose Option 1 to fix your system.
And maybe file a bug report about this “conflict”.
It has probably been overlooked because gcc6 is not installed by default.
The package for the standard gcc 4.8.5 is called libasan0, not libasan3 (and gcc 5’s one is called libasan2), so the -gcc6 suffix is pointless anyway.