Simple Updates with rug and rcd

To perform basic updates with rug, become root and make sure that rcd is running. In general, you should subscribe to channels before installing packages from them, although you can override the rule with the -u or --allow-unsubscribed flag.

The following is a general overview of the rug commands and their more important arguments and flags. For a complete reference, including the flags accepted by all commands, use the man pages. You can also type rug commandname --help for syntax and usage help on individual commands. Alternate names and shortcuts are shown in parentheses.


Package Management Commands

The following commands are used to manipulate packages and the package database on your system:

info [packagename]

Show detailed information about a package. Multiple packages may be listed, separated by spaces. The packages you request information on should be in a channel to which you are subscribed. If you want to look in all channels, use the --allow-unsubscribed flag.


install (in) [packagename]

Install the specified package or packages. Multiple packages may be listed, separated by spaces. If packagename designates a package which you already have installed, but for which a newer version is available, the new version will be downloaded and installed. Accepts a number of flags, including -y to operate with no confirmation and -d to download but not install software.

Packages with licenses embedded in them, and with the license flag set, will require the user to agree to the terms of license before installation.


packages (pa) [channelname]

List the packages in a channel. If no channel is specified, all packages will be listed. If an ambiguous channel name is specified, specific channels will be suggested. You may use the full channel name or an alias. Multiple channel names may be used, separated by spaces. Packages are normally sorted by name; you can sort by channel with the --sort-by-channel flag. The first column of the package list indicates the status of the package as blank (uninstalled), i (installed), or v (a different version of the package is installed). If a package is locked (see Locks and Locking) the status column will also display an L.


remove (rm, erase) [packagename]

Remove packages. Both rm and erase are equivalents. Like the install and update commands, remove accepts the -y flag to skip confirmation.


search [querystring]

Search for the query string in the list of packages; you may use multiple strings one after another, separated by spaces. By default, search returns only those results which include all of the query strings; substrings are counted as matches. Use the --match-words and --match-any to adjust the query as you like. There are numerous other options for the search tool covered in the man page and --help text.


summary (sum)

Display a short summary of available updates.


list-updates (lu) [channelname]

List updates in subscribed channels. Adding channels as arguments will limit the list to those channels you specify. If you are not subscribed to a channel, it will never have updates available, even if you name it here; you must subscribe to list updates. You may use multiple channels as arguments, one after another, separated by spaces. The list is normally sorted alphabetically by the name of the packages, but you can display it by channel with the --sort-by-channel flag.


update (up) [channelname]

Download and install updates. With no arguments, this will get all updates for subscribed channels. To choose specific channels, list them as arguments, separated by spaces. For single packages, use rug install. Note that you must subscribe to channels before updates will appear to be available. To install or update software from a channel to which you are not subscribed, use rug install with the -u option. Update also accepts the -y flag to turn off confirmation, and the -d flag to download without installing. You can also set a minimum importance level for packages with the -i or --importance= flag. Possible minimum levels are 'minor', 'feature', 'suggested', and 'urgent'.


verify

Verify system dependencies. If the system dependencies are not satisfied, rug will suggest the removal or installation of packages necessary to resolve the conflicts. This command accepts no arguments, but does accept the -r flag to permit removal of software without confirmation, and the -y flag to permit installs without confirmation.

NOTE:  You may substitute standard shell wildcards in package names, although not in channel names.


Channels and Channel Commands

To work with channels, use these commands:

channels (ch)

List available channels. Accepts the flags --subscribed (-s), to list only channels to which you are subscribed, and --unsubscribed, to display only channels to which you are not subscribed.


mount [path]

Mount a directory as a channel, adding all packages within the directory to the channel. The platform for the channel is assumed to be the same as the platform on which you are running the command. See also the "unmount" command.


subscribe (sub) [channelname]

Subscribe to a channel. You may use the full channel name or the alias.


unmount [channel]

Unmount a directory that has been mounted as a channel. The opposite of the "mount" command.


unsubscribe (unsub) [channelname]

Unsubscribe from a channel.You may use the full channel name or the alias.


Dependency Analysis Commands

To handle and work with dependencies, use these tools:

info-conflicts (ic) [packagename]

List all known packages that conflict with the package you name.


info-provides (ip) [packagename]

Display the functionality or libraries that a package provides. If you wish to specify a particular channel from which to get the package, use the syntax channel:package. This tool is particularly useful in combination with the solvedeps tool below.


info-requirements (ir) [packagename]

List the software that must be present before the package can be installed.


what-conflicts (wc) [packagename]

List packages that conflict with the item you specify.


solvedeps (solve) [string]

Install or remove software to meet package, application, or library. This is a serious power-user tool, and handles not only package names and version numbers but also uses logical operators to indicate ranges of versions. The ! operator is used to indicate removal. For example, the command:

rug solvedeps "!rpm-python" "rpm404-python"

remove the rpm-python package, and replace it with the rpm404-python package. Another example:

rug solvedeps "library.so.1" "application<1.2"

installs whatever package provides library.so.1 and a version of "application" lower than 1.2. The preference is for the most recent version of a package that is in a channel to which you are subscribed. See the man page for additional flags and options.


what-provides (wp) [querystring]

List packages that provide the library, program, or package that you specify.


what-requires (wr) [querystring]

List packages that require the library, program, or package you specify.


Preferences and Preference Management Tools

Setting and getting preferences for rug does not require that you edit the configuration files.

get-prefs (get, prefs)

Displays preferences. Provide a token such as "cache-enabled" or "proxy" to display just that token and value, or without arguments to get a list of all available tokens and their current values, enter the command without arguments. Note that some token/value pairs are not displayed unless you are root. Check the rcd.conf man page for extensive detail on configuration file format and the token/value pairs that can be set and read.

set-prefs (set) [token] [value]

Set the preference token to the value you choose. These items are stored in the /etc/ximian/rcd.conf file. Check the rcd.conf man page for extensive detail on configuration file format and the token/value pairs that can be set and read. Note that the command "rug set proxy-url" changes the value "proxy" in the configuration file.


System Commands

The following rug commands are less frequently used. They allow you to work directly with the daemon:

dump

Get an XML dump of system information. Usually used for debugging purposes; the output of this command is best directed to a file and compressed, like this:

rug dump>system.xml; gzip -9 system.xml


ping [servername]

Ping the rcd process on the server. If no server is specified, the current server will be pinged.


refresh

Refresh channel data for all channels.


restart

Restart the daemon. Because rug commands depend on having the daemon running, there is no 'start' command. See Starting the Client Programs to learn about starting the client.


shutdown

Halt the rcd process.


User Management Commands

The Red Carpet Daemon allows you to grant administration access to remote individuals without actual system accounts, or to non-root users of the system. You can add and edit users in the Web interface as described in Managing Client Machines, or using the rug command.

When you create or edit users, you have a variety of permission settings at your disposal:

Install

Whether the user may install new software.


Lock

Whether the user may set package locks.


Remove

Whether the user may remove software.


Subscribe

Whether the user may change channel subscriptions.


Trusted

Whether the user is considered trusted. A trusted user may install packages without package signatures.


Upgrade

Whether the user may upgrade software packages.


View

Whether the user may view packages. This allows the user to see which software is installed on the machine, and which software is in available channels. Note that local users are normally permitted to view installed and available packages, and that this permission is relevant only to remote users.


Superuser

Permits all rug commands except user management and settings, which must be done locally.

To work with users at the command line, use these commands:

user-add

Create an account with the Red Carpet Daemon so that someone can manage software on your system without logging into it directly. This command can also be used to grant administration access to non-root local users. You can use the --password (or -P) and --user (or -U) flags to specify the password and username.


user-delete username

Delete a specific user.


user-list

List the users that may update your system software. These are not the same as the users who have accounts on your system, but the ones created with the user-add command.


user-edit

Change permissions for the user. An interactive command, with the exception of password setting, which is handled by the --password=password (-P) flag.


Additional Commands

The following additional commands do not fit into other categories:

help

Get detailed help on a command. If no command is specified, displays a list of all of the available commands.


news

Display the Red Carpet news.


recurring

Display information about recurring events, including scheduled transactions and the heartbeat (automatic channel refresh). The command provides the label for the transaction, the total number of times it has occurred, and the date and time of the next and previous transactions.