Rug

aus openSUSE, der freien Wissensdatenbank

rug ist ein Kommandozeilen-Frontend zu zmd. Es bewirkt lediglich die Übergabe von Befehlen an zmd und berichtet dem Benutzer den Status des Befehls. Legen wir nun los mit rug!

Inhaltsverzeichnis

Prüfen, ob zmd läuft

Zuerst muss man prüfen, ob zmd läuft. Dazu ruft man rug ping auf:

$ rug ping
ZMD 7.1.1, Copyright (C) 2006 Novell, Inc.
Started at 7/17/2006 2:47:39 PM (uptime: 1 days, 0 hours, 38 minutes)
RSS size: 42252
Network Connected: Yes
Running on Mono 1.1.13.8

OS Target: SUSE Linux Enterprise Server 10 (i586)

Module Name        | Description
-------------------+------------------------------------------
NetworkManager     | NetworkManager support
Package Management | Package Management module for Linux
ZENworks Server    | SOAP methods used by a ZENworks server
XML-RPC interface  | Export ZMD public interfaces over XML-RPC

Wenn zmd nicht läuft, erscheint eine Meldung wie diese:

$ rug ping
ERROR: ZMD does not appear to be running.

In diesem Fall meldet man sich als root an und gibt % rczmd start ein.

Einen Dienst hinzufügen

Bevor man irgendwelche Packages installieren kann, muss ein Dienst hinzugefügt werden. Dazu muss man generell root sein oder den Befehl mit sudo eingeben. Die allgemeine Syntax ist:

$ rug service-add --type=zypp URL unique-name

Um den SUSE-Mirror ftp.gwdg.de zu verwenden, gibt man ein:

$ rug sa --type=zypp http://ftp.gwdg.de/pub/opensuse/distribution/SL-OSS-factory/inst-source/suse factory

Adding ZYPP service http://ftp.gwdg.de/pub/opensuse/distribution/SL-OSS-factory/inst-source/suse...
                                                                           100%

Prüfen wir nun, welche Dienste zmd benützt:

$ rug service-list

# | Status | Type | Name      | URI
--+--------+------+-----------+-------------------------------------------------
1 | Active | ZYPP | factory   | http://ftp.gwdg.de/pub/opensuse/distribution/...

Einen Dienst umbenennen

Einen Katalog abonnieren

Es genügt nicht einfach nur, einen Dienst hinzuzufügen und Packages zu installieren. Dienste können einen oder mehrere Kataloge enthalten, und Kataloge können Packages und Patches enthalten. Um die vorhandenen Kataloge zu bestimmen, gibt man ein:

$ rug catalogs

Sub'd? | Name      | Service
-------+-----------+----------
       | factory   | factory

Der Katalog "factory" ist in dem Dienst "factory" enthalten, der weiter oben hinzugefügt wurde. Nun kann er abonniert werden:

$ rug subscribe factory
Subscribed to 'factory'

Packages finden, installieren, upgraden und entfernen

Nun, da wir einen Katalog abonniert haben, können wir einige Packages installieren. Für viele dieser Befehle sollte man normalerweise root sein oder sie mit sudo ausführen. Angenommen, man interessiert sich für ein Programm namens boo für mono, aber der Packagename ist nicht bekannt. So kann man ihn finden:

$ rug search boo

S | Catalog | Bundle | Name                            | Version     | Arch
--+---------+--------+---------------------------------+----------------------------+-------
  | factory |        | boo                             | 0.7.0.1921-17     | noarch
...

Der Packagename ist "boo", nun kann es installiert werden:

$ rug install boo
Resolving Dependencies...

The following packages will be installed:
  boo 0.7.0.1921-17 (http://ftp.gwdg.de/pub/opensuse/distribution/SL-OSS-factory/inst-source/suse)


Transaction...
                                                                           100%

Transaction Finished

Nun kann man boo-Programme erstellen. *5 Jahre später* "Oh, schon sind 5 Jahre vergangen! Höchste Zeit, boo upzugraden!" Glücklicherweise dient der Befehl "install" sowohl für ein Upgrade eines zuvor installierten Paketes als auch für die Erstinstallation eines Packages.

$ rug install boo
Resolving Dependencies...

The following packages will be installed:
  boo 0.7.0.1921-17.2 (http://ftp.gwdg.de/pub/opensuse/distribution/SL-OSS-factory/inst-source/suse)


Transaction...
                                                                           100%

Transaction Finished

Nun hat boo die Version 0.7.0.1921-17.2! Angenommen, man programmiert nun nicht mehr in in boo, sondern in Perl 6 unter Parrot. Dann müsste man boo wieder loswerden:

$ rug remove boo
root's password:
Resolving Dependencies...

The following packages will be removed:
  boo 0.7.0.1921-17.2 (system)


Transaction...
                                                                           100%

Transaction Finished

Weitere Möglichkeiten. Hilfe

rug ist ein robustes Programm mit vielen Optionen. Eine Liste der Optionen erhält man mit:

$ rug --help

To get help on any specific command try:

$ rug <command> --help