Additional rug Features

Additional features available only in the command-line tool include: extra preferences settings, locking (update exclusions) and a history/rollback feature.


Getting and Setting Preferences

The Red Carpet client applications share a set of preference properties manipulated with the rug get and rug set commands.

To set the value for a key, use rug set with the key you wish to set and the value as arguments. For example, if you are working entirely inside a firewall and feel that it is not necessary to verify system certificates, you would enter the command:

rug set require-verified-certificates False.


Locks and Locking

The rug client allows you to place a lock on one or more packages. Packages which are locked cannot have their installation status changed without a specific, explicit command. That is, if you have installed and locked a package, and try to perform an upgrade, installation, or removal which would otherwise remove or upgrade your locked package, your action will fail. To override the lock, you will have to specify which actions to take. For example, if libfoo is locked at version 1.0, and your planned upgrade requires 1.1, you would have to use the command rug install libfoo-1.1 before proceeding with the planned update.

There are three locking commands, each of which has a two letter shortcut. To create a lock, use rug lock-add or rug la. To list all the locks by number, use rug lock-list or rug ll. And to delete a lock, use rug lock-delete or rug ld, specifying the number of the lock you want to delete.


Adding Locks

Locks can be added with the command rug lock-add. You can lock packages based on their name, version number, channel, importance, or a combination. For example, to lock the status of the Evolution package on your system, you would use the command rug lock-add evolution.

A more complex example uses wildcards to match patterns in package names: rug lock-add *kernel* prevents any kernel updates.

You can also use mathematical relation operators to choose ranges of version numbers. For example, if you want to install any minor updates to Evolution 1.2, but do not want to upgrade to the development releases (1.3 series), you could use the command: rug lock evolution<1.3 to lock the version number below 1.3.

If you override a lock, it will still exist for future operations. For example, if you have locked your Apache package, but then upgrade it specifically, it will still be locked and to upgrade it again you will need to repeat the override. Note also that the rollback feature ignores locks; see Rollback to Previous Configurations for more information.

To use channel or importance settings, use the --channel= or --importance= flags (abbreviated -cand -irespectively). Importance sets the minimum importance level at which a package will be installed. For example, to install only updates deemed 'urgent,' but not those described as 'minor', 'feature', or 'suggested,' you would enter the following command:

rug la --importance="urgent"


Listing and Deleting Locks

Locks are displayed as a numbered list, which you can see with the rug lock-list command. To delete a lock, use rug lock-delete and specify the number of the lock you wish to delete.


Using the Update History

The rug history packagename searches log entries for the package you specify. Accepts a variety of flags, detailed in the man page.


Rollback to Previous Configurations

The command rug rollback reverts software to the state it was in on the date you specify. It accepts the -y, --dry-run,, --allow-removals, and --download-only option flags. It works in the same fashion as rollback transactions initiated by the ZENworks Linux Management server.

For example, if you have version A of an application installed, and upgrade to version B, and decide you don't like it, you can use rollback to switch to version A. If, having done so, you decide you really did prefer version B, you can go back to B with the same command.

There are a few caveats, however, with this feature.

NOTE:  Rollback automatically overrides any package locks.