Friday, June 12, 2009

Improved Installation Summary in Zypper

And the best thing last (for now) :O) This was one of the most wanted features for a year now (bnc #389128). Here's how it currently (zypper 1.2.0) looks.

If the architecture or the vendor of an installed package is about to be changed, the old and the new arch/vendor is shown next to the package name:
The following packages are going to change vendor:
kde4-akonadi openSUSE -> openSUSE Build Service
kde4-knemo -> openSUSE Build Service
oxygen-icon-theme openSUSE -> openSUSE Build Service
oxygen-icon-theme-scalable openSUSE -> openSUSE Build Service
Other information, like version or repository is not shown by default, like it was before (i argue that it would be too much info for the default output):
The following NEW packages are going to be installed:
dmidecode libpkcs11-helper1 libstorage libx86emu1

The following packages are going to be upgraded:
ConsoleKit ConsoleKit-32bit ConsoleKit-x11
Continue? [y/n/?] (y):
But you can toggle display of such info in the 'Continue?' dialog. Enter '?' to show all the available options:
Continue? [y/n/?] (y): ?

y - Yes, accept the summary and proceed with installation/removal of packages.
n - No, cancel the operation.
v - Toggle display of package versions.
a - Toggle display of package architectures.
r - Toggle display of repositories from which the packages will be installed.
m - Toggle display of package vendor names.
d - Toggle between showing all details and as few details as possible.
g - View the summary in pager.

[y/n/?] (y):
Enter 'v' to see the versions:
[y/n/?] (y): v
The following NEW packages are going to be installed:
dmidecode 2.10-3.4
libpkcs11-helper1 1.07-1.7
libstorage 2.18.16-1.1
libx86emu1 1.1-3.1

The following packages are going to be upgraded:
ConsoleKit 0.3.0-1.5 -> 0.3.0-1.6
ConsoleKit-32bit 0.3.0-1.5 -> 0.3.0-1.6
ConsoleKit-x11 0.3.0-1.5 -> 0.3.0-1.6
If the list is too long, enter 'g' to view the result in pager.

Also, the package counts are shown at the end:
1230 packages to upgrade, 2 to downgrade, 5 new, 2 to remove, 4  to change vendor.
Overall download size: 1.02 GiB. After the operation, 175.0 KiB will be freed.
If you have colors enabled the numbers will be highlighted and the ones to-be-removed and to-change-vendor are shown in red to catch your attention.

Enjoy, and let us know what you think!

todo: Add an option to show the dependency graph of the listed packages. That will answer the questions why zypper wants to install or remove a particular package.
todo: Add an option to view detailed package info.
todo: Add an option to view the changelog (esp. of the to-be-upgraded packages).


vespas said...

maybe you can consolidate the presentation of this info by grouping the packages that change vendor? e.g. in your first example show something like:

kde4-akonadi, oxygen-icon-theme, oxygen-icon-theme-scalable: openSUSE -> openSUSE Build Service
kde4-knemo: -> openSUSE Build Service

this would help in cases of large updates, like the case of adding 2 new repos (e.g. KDE4_Factory & KDE4_Factory_Community) and executing zypper up which changes the vendor of many packages, but in large groups.

Also, is there a plan to change strategy to downloading all packages first and *then* installing, like other package managers do?

jano said...

You're the second one to suggest this, so i guess i really should consider doing it :O) Thanx!

As for the download/install mode, sure. We'll support both modes 'download all / install all' as well as 'download one / install one'. The former will be the default. We are currently working on it.

Anonymous said...

these new options in zypper 1.2 are all very cool stuff, thanks!

Pavol Rusnak said...

I suggest two types of connector lines in dependency tree (one for recommends and one for requires).