Libzypp/Design Suggestions
From openSUSE
With SUSE Linux 10.1 we have redesigned the way we handle software. We
are proud to be able to announce our new software management backend
which is based on the so-called library "libzypp" and which also
integrates Novell's ZENworks technology. Also we decided to follow the
repomd standard (sometimes known as "YUM repository") for our new
software repositories.
In fact we are now able to manage more than packages only. We have integrated flavors like patches, patterns and even products all of which are defined and handled equivalently to packages. This new framework allows for new ways to define system dependencies and to build more complex application stacks also considering certain patch levels, patterns or even products to depend on.
Also we were able to fix the well known issue where one could compromise a system installation by installing outdated packages after already having applied patches. Using the new technology the system is now able to detect these kinds of package-patch dependency violations.
By integrating Novell's ZENworks technology we enriched our distribution by a new command line tool called 'rug' and a daemon called 'zmd' which are able to keep your system up-to-date. Also we invented a new easy-to-use patch management user interface which is called 'zen-updater'. These new tools are also able to tie into a ZENworks Linux Management infrastructure in order to allow for centralized remote management.
As these changes are also impacting the user experience regarding package and patch management we'd very welcome to start a discussion thread whether and how we still can further improve the current toolchain.
One question we have is how the new tools rug, zen-updater and zmd compare to what we had before with YaST Online Update and suseWatcher. We are interested in every feedback ranging from architecture, design or used standards and their enhancements.
Let's collect here comments and suggestions on how to move forward:
Contents |
Focus on one solution
Suse should focus on _one_ package management tool. For me it's no problem, if the package manager is no longer part of YaST, but there should be one, fast and useful GUI, not two slow and buggy one.
This one package manager should work without ZMD, you should be able ot add and remove software, software selections and updates. And it should contain an installation source module, too.
ZDM is overkill for 80-90% of all SL installations. It should therefore be just an optional feature for special environments. Mono mustn't be a requirement for package management, nighter.
Confusion about Tools
Users are confused about the different tools.
YaST2 was/is almost perfect. You can start the center: install, remove, update. It is a solid center for the packagemanagement. The only thing it misses is the patches that is handled by YOU/Watcher.
We have to choose one solution. If we want ZEN (and it is bugfixed) we have to make a YaST2/ZEN combination. One center that does everything based on the options it gets.
We have to combine the best of both worlds. YaST2 works fenomenal with searching thru information, selection on source and more. ZEN must not replace, but extend YaST2 in my opinion.
For consolemode I recommend using rug and y2pmsh (second it more relaxed if you want to do a lot). And of course we just need to have yast like it is now.
Do not reinvent the wheel
Zen-installer and zen-remover have a nice, stupid interface. But Synaptic, Smart-GUI etc. are already there. They fulfill the needs of most users. Have also a look at the new Ubuntu pm gui. It gives a nice graphical overview and if you click on "expert" it starts Synaptic. That's what I'd like to see in 10.2.
Store downloaded packages
What I really, really need is the possibility that all downloaded packages can be stored in a local repository on my hd. That's for several reasons: Fristly, I like to have a backup - in case of a broken distribution, I don't need to download all again (and again, and again). Secondly, this saves a lot of bandwidth and time. Thirdly, local repository can transferred to a media which can be used as a source for computers with no internet/ethernet connection... To make a long story short, I hope that zmd/rug gets some backup mode like it was integrated in YOU.
Unique view to Repositories
Repositories are handled differently in yast and zmd:
- They have different attributes (name, autorefresh,...)
- yast does not allow names but zmd does
- syncing sources between yast and zmd is complex
We should have a common view on repositories.
Speed
Package currently is slow and since we have a daemon running it should be fast. Slow operations right now are:
- Waking up the daemon
- installing a package
Do we really need a daemon?
Pros:
- daemon helps with remote management
- is fast (not the case with zmd if zmd is sleeping)
- Access control (concurrency, authentication, authorization)
- allows autoupdate with user notification (also possible but more clumsy with cron jobs)
Cons:
- needs resources running (zmd needs less resources if it's sleeping) (the usual tradeoff speed against resources)
User interface
The userinterface has regressed. Installing via Yast is still the only way to know what you are really doing.
Pros:
- Installing and removing is more available as it has been moved to the menu. (Not needing to open Yast) This could also be achived with the yast installer also ofcourse by adding a yast2 -i in the menu executed as root.
Cons:
- When installing updates the cancel button only show up for 1 second if you click on the exclamation icon on the desktop panel. This must be a bug?
- Where has all the usefull info gone(comparing to yast)? Where can I see the different package versions available? Where can I choose between 32 bits and 64 bits? I can't even see where I am installing a package from eg ftp.suse.com or ftp.packman.com
- Where are the different filters for viewing the packages that are available?
- When uninstalling I can only uninstall one package at the time...
Additionally I would like these features:
- A better description (with screenshot) of each package.
- More views. E.g. differentiate between gui applications, commandline applications, libraries, addons and extensions.
It would certainly pay off if you looked at the other distributions packagemanagers and see which features would be good to include. For instance Ubuntu, Mandriva and Linspire all have features that have never been present in Yast.

