posted by Eugenia Loli on Sat 14th Sep 2002 22:44 UTC
IconFrom SuSE Linux 8.1 on, YaST2 comes with a new, powerful package manager. It supersedes the classic YaST2 single package selection and integrates the YaST Online Update (YOU) and post-installation add-on selection at the same time. It lays the foundation for supporting multiple installation sources like a traditional set of SuSE CDs, add-on product CDs, patch CDs, FTP servers or even local directories - all of which may contain software packages to install. Specially optimized versions were implemented for both graphical user interface (the YaST2 Qt UI) or text interface (the YaST2 NCurses UI), providing each type of user with the tool that best fits his needs. Read more for the commentary.

Our Take: I truly would like to give props to SuSE for this new version, but judging from the (fair amount of) screenshots available, this seems to be a very crowded and confusing package manager, and there is no way I would call it 'elegant' or 'simple'. Looking at these screenshots, I can only say that this application is a UI disaster, no matter how you see it. It seems to have terrible usability problems and it does not solve the real problem: complexity of managing packages on the most Linux distributions. I don't even need to use this application to make my remarks, pictures are speaking for themselves:

Note: This is NOT a review article, it is a commentary.

There is no on-screen, ever-present, legend for the different states of a package (I can count 9 different states on the left of the package name);

That "Avail. Ver." and "Inst. Ver." (sic) are full of version numbers that while power users will easily understand, a Windows user would lose him/herself on the different formats of versioning displayed, and also these versions are mostly developer versions (eg. 1.0.3-96 to take a less difficult example, or 0.9.0.cvs20020903-9 - there are worse showing there) and not versions easily understandable by plain users, eg. 1.1. Actually, all the user needs to know is that there is a new version available. Nothing else. Because SuSE is a Linux-oriented OS though, the advanced usage of the package manager should be provided via an "Advanced" button. Package managers should be dead simple. If they are less than dead simple, or even just... simple, something is terribly wrong with their design.

"Color-coded package versions"? What's that? You got to be kidding me. Look what the lack of standard versioning scheme throughout the open source community is forcing SuSE to do: "Of course this is not 100% fool-proof (some versioning schemes are just too weird to be evaluated automatically), but it can give you a hint to take a closer look." A commercial OS would have enforce such a standard on all its engineering teams, eliminating such problems, and therefore eliminating the need that the user should check out if there is a new version available or not! Maybe SuSE should rename all their packages (yes, all the thousands of them available via their package manager - who said that it's going to be cheap?) to a standard versioning scheme.

"Advanced search: Which package provides that library my program needs?" Do you truly think that Joe User needs or should be forced to know or search about this? If your answer is "yes", then, Mr SuSE, you got no clue about desktop system design.

"Versions view: Which versions are available on all available installation sources?" Great... Let's confuse the user even more by showing different versions of apps living on different servers that they haven't been updated yet to the latest version. When a user tries installing an app from an older source/server, the manager should contact the SuSE servers and warn the user that there is already a newer version available and suggest it. There should not be any "versions view" manual comparison that the user should manually check. The package manager should take care of this checking.

"Complex conflict scenario.Don't try this at home!" If your system packager allows such a scenario, I better not try it at work either. System libraries should be auto-updated by the OS (like MacOSX and Windows Update does it) and they should not be allowed to be removed on demand via this package manager. If there is ONE chance that a user can screw up his/her system with your package manager, then it WILL happen. Count on this. It is like creating such a beast and then praying that no one will press the wrong radiobuttons to render his/her system unbootable. Laughable.

I very well understand that in order to fix all these issues and the issues I don't know yet because I haven't use YAST2 yet, the developers in the Linux community would have to change the way they work and release software, but speaking as "the user", SuSE is the one who tries to sell me this, so it better be good. No matter if it is not truly SuSE's or Red Hat's or Mandrake's fault or not. The problem here is deeper and more... philosophical but I won't get into it this time.

As for dependancies, these should be automatically resolved, and if this is not possible, there should not be allowed dependancies of this sort for any of the SuSE packages. Developers should either ship their products with some (not always all) of the libraries statically linked and others as shared; and these shared ones should always be included in the package and installed on a <application's forlder>/lib/ folder. The OS should first look in the local application's lib folder, then on the /usr/local/lib/, then on /usr/lib and then on /lib/. BeOS did something similar, and as well as Windows and OSX, it never had such "dependancy problems". What I am suggesting goes against the whole Unix way of doing things, yes, I know. But you can't be a Unix and try to sell your product to plain users too. You will have to do compromises and Innovate at the same time. Like MacOSX had to do when they based their latest desktop/workstation OS on Unix.

The Linux distros are trying to create all these package managers and systems to deal with dependancies. The real problem are not the package managers though. It is the dependancy issue itself. You have to fight the problem in its root people, not by putting shining make-up in the leaves. THEN I will congratulate you for truly giving a wonderful gift to the community, by solving the problem, not making it a bit more affordable.

Windows and MacOS put "the user" as a priority and not what it might be more convienient for the developer. These OSes do not have such major issues anymore (WindowsXP has pretty much solved dependancy hell, but dependancies were never a big issue on Windows; at least for the users).

If SuSE is aiming for the workstation and desktop market, this package manager does not solve the real problem, it just adds a GUI front-end to it. OSNews recently hosted another excellent article on what users should be expect from OSes and their package managers.

I might sound harsh many times over here, but please note that I have nothing against Gentoo or SuSE or Red Hat or whoever else. When I am writting an article on OSNews, I write it with the user being the primary concern, no matter if myself I am a power user and I always find ways to make things work for me. You see, the user is the one who pays for these products and the one who gets to use them. In fact, SuSE's user is the average OSNews 'customer' too. Therefore, our articles should always reflect this point of view. I hope this explains most of my articles lately.

So, when creating a product - any product - you should always be asking yourself: "Does this truly solves the problem for the customer"? If the answer is yes, then well done, you have succeeded. If not, you have just created a "hole in the water", as they say in Greece...

e p (0)    112 Comment(s)

Technology White Papers

See More