Zypper, what's wrong with you

I’ve been opensuse user for years (don’t even remember, probably started from something like 11.xx), and I observe how zypper becomes slower, less responsive and buggy.

Recently I had to work with Ubuntu (which generally s** but it’s another story) however the apt works very well especially comparing to zypper.

So what problems makes me so sad:

  • zypper search is very slow, it takes a lot of time before it even starting to do anything and before it silently does something unknown even if started without root (so it probably shouldn’t update anything)
  • zypper up/ref/in does update opensuse services too frequently so I have to wait so long because the service is slow
  • if I’ve noticed a typo in the command or remember the wrong network config, I can never cancel it, interrupt just doesn’t work printing that it’s going to clean up something as many times as I press Ctrl-C and it may take minutes before it actually exist, why do I have to use pkill -9 every time and risk to break something? why can’t it cancel a stuck network operation? I can’t believe it’s something wrong with libcurl, this is zypper in particular. One year ago it did just segfault after several attempts to interrupt, it wasn’t that good but at least it was a fast
  • it’s so usual for zypper to do something silently without any visible feedback or progress

So the question, do we actually need to struggle so much? Shouldn’t we switch to something more useful, dnf maybe?

@cy6erGn0m add verbosity zypper -vvv <something>

Yes, I know it obviously download something like repomod files for every enabled repo every time when I search or do something so that’s why it takes so long time.

In a long living system I have a lot of enabled repo but shouldn’t it use any cache instead of downloading all the files every time? or any option to work offline so I don’t need to wait every time?

This is especially a problem because of these trade wars, sanctions, walls and so on. Some repos do always fail to download (e.g. cisco’s one)

or, may be I need to increase cache time to live and opensuse service update interval?

zypper --no-refresh se can be faster.

1 Like

For common zypper commands I have aliases and mini-scripts that include --no-refresh, among other things. Are you still using rotating rust, or 12+ years old computer? Are you letting /var/log/zypper.log grow too big, not rotating it often enough? I notice quite some difference using the faster machines and media, while a big zypper.log really slows the oldies down.

DNF may be fast, but its a vexing hodgepodge of plugins and multiple man pages, and dpkg/apt* isn’t much better. Zypper logic and documentation are much friendlier.

right, zypper search --help shows no --no-refresh so I had to invoke zypper --help to see it which I didn’t manage to do myself, and I entirely forgot about this difference between options passed to zypper itself and to its sub-commands which is probably wasn’t best choice for cli

these plugins can be usefull… for example, apt has plugin rdepends to show dependency tree including transitive, I don’t know of any similar for zypper, I have to write scripts to achieve the same and the script is not that easy to write

In addition, all these dozens of commands, search search package search --provides search --requires what-provides info solver-info, I don’t know

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.