SUSE Linux comes with a new command line tool for installing and updating packages, rug. It works with the rcd daemon to install, update, and remove software according to the commands given. It can install software from local files or from servers. You may use one or more remote servers, known as services. Supported services are mount for local files and yum or ZENworks for servers.
rug sorts software from services into catalogs (also known as channels), groups of similar software. For example, one catalog might contain software from an update server and another some software from a third-party software vendor. Subscribe to individual catalogs to control the display of available packages and prevent the accidental installation of unwanted software. Operations are normally performed only on software from catalogs to which you are subscribed.
The most commonly used command is
rug update, which
downloads and installs patches in catalogs to which you are
subscribed. If you only want to update software, this is the only
command you need. To obtain a list of all packages from one catalog,
use rug pa catalogname.
Replace catalogname with name of your catalog. To
list all available services, use
rug sl. Some other
useful rug commands and their functions are shown in Table 2.1, “rug Commands”.
Table 2.1. rug Commands
|
Command |
Function |
|---|---|
|
ca |
List the catalogs |
|
sa |
Add a service |
|
reg |
Register a service |
|
sub |
Subscribe to a catalog |
|
refresh |
Refresh the lists of patches |
One of the biggest advantages of rug is user management.
Normally only root can
update or install new packages. With rug, you can distribute the
right to update the system to other users and restrict them, for
example, only to the update right without the possibility to remove
software. Privileges you can grant are:
User may install new software
User may set package locks
User may remove software
User may change channel subscriptions
User is considered trusted, so may install packages without package signatures
User may update software packages
This allows the user to see which software is installed on the machine and which software is in available channels. The option is relevant only to remote users, local users are normally permitted to view installed and available packages.
Permits all rug commands except user management and settings, which must be done locally.
To give a user permission to update the system, use the command
rug ua
username upgrade.
Replace username with the name of the user. To
revoke the privileges of a user, use command
rug ud username.
To list users with their rights, use
rug ul.
To change the current privileges of a user, use
rug ue username.
Replace username with name of the desired user.
The edit command is interactive. It lists privileges of the selected
user and the offers you a prompt. Enter the plus (+) or minus (-)
symbol and the name of the privilege then press Enter. For example, to permit the user to
delete software, enter +remove. To save and quit,
press Enter on a blank line.
Using rug, the system can be updated
automatically, for example, with scripts. The simplest example is
the fully automatic update. To do this, as root configure a cron job that
executes rug up -y. The up -y
option downloads and installs the patches from your catalogs without
confirmation.
However, you may not want the patches installed automatically.
Instead, you may want to retrieve the patches and select the patches
for installation at a later time. To download patches only, use the
command rug up -dy. The up -dy
option downloads the patches from your catalogs without confirmation
and saves them to the rug cache. The default location of the rug
cache is /var/cache/redcarpet.
rug comes with many preferences to provide the update
functionality in different network configurations. To list the
preferences that may be set, use
rug get. To set a
preference variable, enter
rug set. For example,
adjust settings if you need to update your system, but the computer
is behind a proxy server. Before downloading updates, send your
username and password to the proxy server. To do so, use the
commands:
rug set proxy-url url_path rug set proxy-username name rug set proxy-password password
Replace url_path with the name of your proxy
server. Replace name with your username. Replace
password with your password.