Gestione dei pacchetti sotto openSUSE 10.2: rug

Dopo aver visto le meraviglie di Yast mi pare giusto dedicare un articolo a questo tool a linea di comando di facile utilizzo.
Rug altro non è che un front-end al demone zmd (ZENworks Management Daemon), tecnologia ereditata da Novell dopo l'acquisizione di Ximian e derivante dal progetto rcd (Red Carpet Daemon), facente uso della libreria libzypp per la gestione dei pacchetti.
Ovviamente c'è anche un front-end grafico a zmd che contempla tre programmi e il cui funzionamento è molto semplice:

  • zen-updater: si carica all'avvio e si piazza nella systray della barra applicazioni avvertendoci di eventuali aggiornamenti disponibili;
  • zen-installer: installa i software disponibili nelle fonti e permette una rapida ricerca tra quelli disponibili;
  • zen-remover: rimuove i pacchetti installati.

Cominciamo subito...

Innanzitutto bisogna aprire il terminale della console e verificare se zmd sia attivo:

$ rug ping

Se il risultato dovesse essere d'errore basta utilizzare l'opzione di restart:

$ rug restart

Quest'ultima opzione si può utilizzare anche quando si riscontrano dei problemi con zen-updater.

Aggiungere i repository

Prima di proseguire bisogna aggiungere i repository anche perchè non sempre sono sincronizzati con quelli di Yast. Questa operazione avviene in due parti

  1. aggiunta del servizio (specificando il tipo con l'opzione -t, l'indirizzo e un etichetta)
  2. attivazione del catalogo

a seguire i comandi necessari:

# rug sa -t zypp http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.2 guru
# rug sl 

  | Status | Type | Name            | URI
--+--------+------+-----------------+-------------------------------------------
1 | Active | ZYPP | 20061209-120520 | cd:///?devices=/dev/hdc,/dev/hdd&alias=...
2 | Active | ZYPP | 20061209-121321 | http://download.opensuse.org/distributi...
3 | Active | ZYPP | 20061209-121506 | http://download.opensuse.org/distributi...
4 | Active | ZYPP | guru            | http://ftp.gwdg.de/pub/linux/misc/suser...

# rug catalogs

Sub'd? | Name            | Service
-------+-----------------+----------------
Yes    | 20061209-120520 | 20061209-120520
Yes    | 20061209-121321 | 20061209-121321
Yes    | 20061209-121506 | 20061209-121506
       | guru            | guru

# rug subscribe guru
# rug catalogs

Sub'd? | Name            | Service
-------+-----------------+----------------
Yes    | 20061209-120520 | 20061209-120520
Yes    | 20061209-121321 | 20061209-121321
Yes    | 20061209-121506 | 20061209-121506
Yes    | guru            | guru

Ecco attivato uno dei più conosciuti, adesso rapidamente si possono inserire gli altri due e attivarli entrambi con l'opzione subscribe -a:

# rug sa --type=zypp http://packman.mirrors.skynet.be/pub/packman/suse/10.2 packman
# rug sa --type=zypp http://ftp.tu-chemnitz.de/pub/linux/suse/ftp.suse.com/suse/update/10.2 chemnitz
# rug subscribe -a

Ricerca pacchetti

La ricerca dei programmi da voler installare o tra quelli già installati è il punto forte di ogni distribuzione; a priori infatti si potrebbe conoscere il nome del programma ma non necessariamente il nome del pacchetto.
Vediamo gli switch indispensabili a partire da quello principale (search o nella sua forma abbreviata se):

$ rug se amule

S | Catalog         | Bundle | Name  | Version      | Arch
--+-----------------+--------+-------+--------------+-----
  | System packages |        | aMule | 2.1.3-1.pm.3 | i586

$ rug se umbrello
No packages found.

$ rug se -d umbrello

S | Catalog         | Bundle | Name    | Version  | Arch
--+-----------------+--------+---------+----------+-----
  | 20061209-121321 |        | kdesdk3 | 3.5.5-28 | i586

Lo switch -d consente di cercare nella descrizione, come potete vedere nell'esempio ci sono programmi presenti in pacchetti che sono aggregati di più programmi (umbrello si trova all'interno di kdesdk3), questo switch supplementare ci consente di andare più a fondo nella ricerca.
A volte potremmo volere qualche informazione in più sul pacchetto desiderato, nessun problema grazie allo switch info

$ rug info amule

Catalog: system
Name: aMule
Version: 2.1.3-1.pm.3
Arch: i586
Installed: No
Status: up-to-date
Installed Size: 16070658
Summary: another eMule file-sharing program
Description: aMule stand for another eMule file-sharing program, it is also another fork of the xMule (former lMule) project. It connects to eDonkey2000 network, supports Linux, *BSD platforms, and has a new vision of the GUI.

Installazione pacchetti

Dopo aver trovato il pacchetto che ci interessa arriva il momento di installarlo, niente di più semplice, basta scrivere il nome del pacchetto dopo il tag install o in e il gioco è fatto. Da notare che il nome del pacchetto con questo switch è case sensitive, al contrario di quello di ricerca.

$ rug in aMsn
Resolving Dependencies...

The following packages will be installed:
  aMsn 2.1.3-1.pm.3 (http://packman.mirrors.skynet.be/pub/packman/suse/10.2)

Transaction...

Transaction Finished

Aggiornamenti e altro

E per gli aggiornamenti? Niente di più semplice: basta usare lo switch last-update o lu per conoscere l'entità dell'aggiornamento e lo switch update per aggiornare il sistema.

Un altro switch interessante è quello della storia delle installazioni effettuate (history o hi) che ci permette di ricordare cosa abbiamo combinato smanettando con rug, e quello per pulire la cache delle installazioni (cc) avviabile solamente dalla utenza root.

E se vogliamo tornare indietro?

Rug ha una interessante opzione che ci consente di creare dei veri e propri punti di ripristino, innanzitutto bisogna abilitare l'opzione rollback:

# rug set-prefs rollback true
Preference 'rollback' changed from 'False' to 'True'

adesso è possibile creare i nostri checkpoint:

$ rug checkpoint-add punto_ripristino_1

se volessimo rimuoverlo basta usare il seguente:

$ rug checkpoint-remove punto_ripristino

a questo punto effettuiamo l'installazione dei pacchetti che vogliamo, se qualcosa dovesse andare storto per ripristinare alla situazione iniziale basta eseguire il comando di rollback:

# rug checkpoints

Name             | Date
-----------------+--------------------
punto_ripristino | 16/02/2007 12.52.48

# rug ro punto_ripristino

Conclusione

Quelli presentati sono gli switch più utilizzati, l'elenco completo può essere ottenuto scrivendo semplicemente il comando rug dalla console; affiancando ad ogni opzione lo switch --help si ottengono per ognuno maggiori informazioni.

Anche se per un principiante può risultare scomodo, la flessibilità della shell non credo sia facilmente sostituibile, tanto vale cominciare a prendere dimistichezza cominciando con quei programmi che possono risultare più utili per gestire la nostra Linux box ;).

Comments

Aggiornamento...

Ho aggiunto la parte relativa al rollback e qualche correzione qua e la.