Way back in the day I worked on a product called Red Carpet. It was a software management tool for Linux, and later it morphed into a system for doing centralized management of systems across a network. I could lament about how great it was but how misunderstood it was and how it worked on both RPM and dpkg but I’ll skip all the sad sack stuff.
The point is, the real gem of Red Carpet was rug, the command-line client. It had an incredibly clean interface and wonderful search. It allowed you to install and remove packages at the same time from the command-line, something which (I think) you still can’t do with any of the existing tools. You could downgrade packages, install packages from a specific channel (or repository), download packages but not install them. You could add locks to channels or packages, preventing them from ever being touched even via dependency resolution. You could even refer to channels using acronyms (”SUSE Linux Enterprise Desktop” abbreviates to “sled” automatically). It was incredibly powerful and yet simple to use. It was indispensible for me and for a long time after it stopped being released for most distros I would find a way to wedge it in.
Recently I’ve switched to using yum and while it works pretty well, I’ve found it lacking in a lot of the ways I listed above.
Enter rum. Rum is a new frontend for yum which implements the rug commands and user interface, written by James Willcox, Tambet Ingo, and Chris Rivera. I’ve been using it during its one week development and I’m very impressed. It reuses a lot of code from rug, so the behavior is almost identical to the old tool. The only thing that takes getting used to is putting sudo in front of it. Oh, and not accidentally typing rug.
Anyway, snorp has a blog post about it. Go download packages for SUSE and Fedora. Or download the very small source. It requires yum 2.9.5 or newer.
Example output:
[joe@posthaste ~]$ sudo rum search beagle S | Repository | Name | Version --+------------+----------------------+----------------------- i | dist | beagle | 0.2.3-40.32.i586 i | dist | beagle-debuginfo | 0.2.3-40.32.i586 i | dist | beagle-evolution | 0.2.3-40.32.i586 i | installed | beagle-firefox | 0.2.3-33.i586 v | dist | beagle-firefox | 0.2.3-40.32.i586 i | dist | beagle-gui | 0.2.3-40.32.i586 i | installed | beagle-index | 10.1_20060427-6.5.i586 v | dist | beagle-index | 10.1_20060427-6.7.i586 | dist | kio_beagle | 0.2-16.3.i586 | dist | kio_beagle-debuginfo | 0.2-16.3.i586 v | dist | libbeagle | 0.2.3-40.32.i586 i | installed | libbeagle | 0.2.3-33.i586 v | dist | libbeagle-devel | 0.2.3-40.32.i586 i | installed | libbeagle-devel | 0.2.3-33.i586
And a list of commands:
[joe@posthaste ~]$ rum --help Warning: No command found on command line. Usage: rum <command> <options> ... The following options are understood by all commands: --version Print client version and exit -V, --verbose Verbose output -p, --no-plugins Don't load yum plugins -C, --cache-only Run entirely from cache, don't update cache --normal-output Normal output (default) -t, --terse Terse output --quiet Quiet output, print only error messages --read-from-file=Get args from file --read-from-stdin Get args from stdin --ignore-rc-file Don't read rum's startup file (~/.rumrc) --ignore-env Ignore the RUM_ARGS environment variable -?, --help Get help on a specific command Package management commands: file-list (fl) List files within a package info (if) Show detailed information about a package info-conflicts (ic) List a package's conflicts info-obsoletes (io) List a package's obsoletes info-provides (ip) List a package's provides info-requires (ir) List a package's requires install (in) Perform an install list-updates (lu) List available updates lock-add (la) Add a lock lock-list (ll) List locks lock-remove (lr) Remove a lock orphans (or) List installed packages that don't exist in repositories package-file (pf) List packages that own the files provided packages (pa) List the packages in a repo remove (rm) Perform a removal search (se) Search packages update (up) Perform an update what-conflicts (wc) List packages that conflict with what you specify what-provides (wp) List packages that provide what you specify what-requires (wr) List packages that require what you specify System commands: clean (cl) Clean cache disable (di) Disable a repository enable (en) Enable a repository refresh (ref) Refresh the package cache repo-add (sa, ra) Add a repository repo-delete (sd, rd) Remove a repository repos (sl, ca, ch) List active repositories Other commands: help A list of all of the available commands For more detailed information about a specific command, run 'rum <command name> --help'.
Now we just need some sort of rum drinking game.

One Trackback/Pingback
[...] The list of features is pretty impressive, and there are packages for FC4 and FC5 as well as for the Suse variants. [...]