Fedora Advent Calendar day 1

It is a time to start Advent Calendar, isn't it? In Japan, many Advent Calendar will start sine today. So, I'll do it too.

The pkcon command
The pkcon command is provided by PackageKit pacakage. You can install, remove, search, or etc by it. Of course you can do same operation by yum or rpm but it still useful in some case I think.
So, let's look it.

[masami@rune:~]$ pkcon
Usage:
  pkcon [OPTION...] PackageKit Console Program

PackageKit Console Interface

Subcommands:
  get-actions
  get-groups
  get-filters
  get-transactions
  get-time
  search [name|details|group|file] [data]
  install [packages]
  install-local [files]
  download [directory] [packages]
  install-sig [type] [key_id] [package_id]
  remove [package]
  update <package>
  refresh [--force]
  resolve [package]
  get-updates
  get-depends [package]
  get-requires [package]
  get-details [package]
  get-files [package]
  get-update-detail [package]
  get-packages
  repo-list
  repo-enable [repo_id]
  repo-disable [repo_id]
  what-provides [search]
  get-categories

As you can see pkcon has many options and easy to use. Let's look get-updates option. It downloads update information then display it.

[masami@rune:~]$ pkcon get-updates
Getting updates               [=========================]
Starting                      [=========================]
Getting information           [=========================]
Downloading update information[=========================]
Downloading lists of changes  [=========================]
Bug fix         xine-lib-1.1.20-1.fc16.x86_64                   A multimedia engine

Ok, I got what package is going to update. I can check the update information about that package by get-update-detail option.

[masami@rune:~]$ pkcon get-update-detail xine-lib
More than one package matches:
1. xine-lib-1.1.20-1.fc16.i686 [updates-testing]
2. xine-lib-1.1.20-1.fc16.x86_64 [updates-testing]
Please choose the correct package: 2
Getting update details        [=========================]
Starting                      [=========================]
Getting information           [=========================]
Details about the update:
 Package: xine-lib-1.1.20-1.fc16.x86_64
 Updates: xine-lib;1.1.19-7.fc16;x86_64;installed:koji-override-0
 Obsoletes:
 Vendor: https://admin.fedoraproject.org/updates/F16/FEDORA-2011-16463;Fedora 16
 Update FEDORA-2011-16463
 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=753758;xine-lib-1.1.20 is
 available
 CVE:
 Update text: An update of xine-lib to the latest upstream release:
http://sourceforge.net/projects/xine/files/xine-lib/1.1.20/README.txt.asc/view

In particular, the new release adds support for WebM/VP8 videos, but only with t
he supplementary codec package from a well-known third-party repository (it requ
ires FFmpeg).
 Changes: **2011-11-20** Kevin Kofler <Kevin@tigcc.ticalc.org> 1.1.20-1
- update to 1.1.20 (#753758)
- use .xz tarball
- drop old conditionals
- drop ESD (esound) support on F17+ (native PulseAudio just works)
- drop autotools patch, run autogen.sh in %prep instead
- drop unused deepbind patch
- drop xvmclib_header patch, fixed upstream
- use the system libdvdnav (and libdvdread) instead of the bundled one
- fix system libdvdnav support to also link libdvdread
- plugin ABI is now 1.30


 State: testing
 Issued: 2011-11-26T22:22:27
 Updated:

You can check dependencies. It display format is pretty nice.

[masami@rune:~]$ pkcon get-depends xine-lib
More than one package matches:
1. xine-lib-1.1.19-7.fc16.x86_64 [installed:koji-override-0]
2. xine-lib-1.1.20-1.fc16.i686 [updates-testing]
3. xine-lib-1.1.20-1.fc16.x86_64 [updates-testing]
Please choose the correct package: 1
Getting dependencies          [=========================]
Starting                      [=========================]
Getting information           [=========================]
Installed       alsa-lib-1.0.24-2.fc15.x86_64                   The Advanced Linux Sound Architecture (ALSA) library
Installed       flac-1.2.1-6.fc12.x86_64                        An encoder/decoder for the Free Lossless Audio Codec
Installed       glibc-2.14.90-19.x86_64                         The GNU libc libraries
Installed       libX11-1.4.3-1.fc16.x86_64                      Core X11 protocol client library
Installed       libXext-1.3.0-1.fc16.x86_64                     X.Org X11 libXext runtime library
Installed       libXinerama-1.1.1-2.fc15.x86_64                 X.Org X11 libXinerama runtime library
Installed       libXv-1.0.6-2.fc15.x86_64                       X.Org X11 libXv runtime library
Installed       libXvMC-1.0.6-3.fc15.x86_64                     X.Org X11 libXvMC runtime library
Installed       libgcc-4.6.2-1.fc16.x86_64                      GCC version 4.6 shared support library
Installed       libmng-1.0.10-5.fc15.x86_64                     Library for Multiple-image Network Graphics support
Installed       libmodplug-1:0.8.8.4-1.fc16.x86_64              Modplug mod music file format library
Installed       libmpcdec-1.2.6-7.fc15.x86_64                   Musepack audio decoding library
Installed       libogg-2:1.2.2-3.fc15.x86_64                    The Ogg bitstream file format library
Installed       libtheora-1:1.1.1-1.fc15.x86_64                 Theora Video Compression Codec
Installed       libv4l-0.8.5-1.fc16.x86_64                      Collection of video4linux support libraries
Installed       libvorbis-1:1.3.2-1.fc15.x86_64                 The Vorbis General Audio Compression Codec.
Installed       libxcb-1.7-3.fc16.x86_64                        A C binding to the X11 protocol
Installed       mesa-libGL-7.11.2-1.fc16.x86_64                 Mesa libGL runtime libraries and DRI rivers
Installed       mesa-libGLU-7.11.2-1.fc16.x86_64                Mesa libGLU runtime library
Installed       pulseaudio-libs-0.9.23-1.fc16.x86_64            Libraries for PulseAudio clients
Installed       speex-1.2-0.13.rc1.fc15.x86_64                  A voice compression format (codec)
Installed       wavpack-4.60.1-2.fc15.x86_64                    A completely open audiocodec
Installed       zlib-1.2.5-5.fc16.x86_64                        The zlib compression and decompression library
||>
I found get-files option is also useful. It output is same as rpm -ql packagename but pkcon's get-files option doesn't require the package is installed. 
>||
[masami@rune:~]$ rpm -ql dillo
package dillo is not installed
[masami@rune:~]$ pkcon get-files dillo
Getting file list             [=========================]
Starting                      [=========================]
Package files
  /etc/dillo
  /usr/share/doc/dillo-3.0.1
  /usr/share/doc/dillo-3.0.1/doc
  /usr/lib64/dillo
  /usr/lib64/dillo/dpi/bookmarks
snip  
  /usr/share/applications/fedora-dillo.desktop
  /usr/lib64/dillo/dpi/cookies/cookies.dpi
  /usr/share/man/man1/dillo.1.gz

Finally, I usually use Yum Extender as package management tool (main reason is I use LXDE spin and it is default tool for the spin) and some times use yum/rpm command directly but pkcon command is good tool in case.

but