• Català
  • Castellano
  • English


Red Carpet, el gestor de paquets de Ximian


imatge de PaRaP

Tot i que per a Red Hat hi ha d'altres gestors de paquets com ara APT o YUM, Ximian en té un altre que, tot i estar encarat a l'escriptori Ximian (un GNOME maquejat) i a la distribució Red Hat, pot ésser usat en qualsevol altre entorn (o això diuen). No importa, doncs, si useu Debian i KDE, que Red Carpet també us pot ésser útil.



Quina diferència hi ha entre, per exemple, APT i Red Carpet? El primer es basa en repositoris mentre que el segon es basa en canals. M'explicaré.



APT usa una llista de repositoris per saber d'on obtenir informació sobre els paquets, això permet que nosaltres afegim tants repositoris com vulguem per trobar per la xarxa.



Red Carpet també permet això, si algú munta un repositori pot afegir-lo, però l'idea és diferent: existeix un repositori principal, d'on pengen els altres, i aquests darrers són el que anomenem canals. Els canals poden ser especialitzats o no, però sigui com sigui podem activar-los al nostre gust. D'aquesta manera, veurem que Ximian mateix té varis canals per varies de les seves aplicacions, com ara l'entorn d'escriptori o el famós client de correu Evolution.



Red Carpet es basa en tres programes principals. El primer és el dimoni rcd que romandrà sempre corrent en segon pla cercant noves actualitzacions. Quina avantatge tenir un dimoni? Doncs que podem accedir a ell de remotament per actualitzar el nostre sistema de forma segura i a distancia. Aquí, però, no tractarem com funciona la configuració del dimoni i ens centrarem en els seus clients: red-carpet i rug.



El primer d'ells seria l'equivalent al Synaptic d'APT. Un entorn gràfic molt intuïtiu que ens permet seleccionar els canals, els paquets, resoldre dependències i un llarg etc. que també ens ofereix, en menor o major mesura, el Synaptic.



Com sempre, la part que requereix més comentaris, és el programa de terminal, que ja hem avançat que es diu rug



Suposem que volem mirar l'estat del nostre equip, fem un update (per als usuaris d'APT, recordeu que un apt-get update el que fa és actualitzar la memòria cau de paquets, l'equivalent al update de Red Carpet a APT seria un upgrade)

$ rug update
The following requested packages will be installed:
  gthumb 2.1.4-1.fr (freshrpms.net)
  libzvt 2.0.1-1.fr (freshrpms.net)
  memprof 1:0.5.1-3.ximian.6.3 (Ximian Desktop 2)
 
3 packages will be installed.
This is at least a 332.97k download.
Do you want to continue? [y/N]

Si li diem que sí ens ho descarregarà. En aquest cas no tenim problemes de dependències, però si les tinguéssim també les resoldria (o ho intentaria, una dependència potser no està als canals!). En alguns casos, a més, potser haurà de desinstal·lar algun paquet, per permetre això usarem

$ rug -r update

on amb la -r li estem dient que li permetem esborrar (remove). Veig que hi ha una actualització del canal Ximian Desktop 2 (si us fixeu surt al costat de cada paquet). Què deu ser? Fent un info ho esbrinaré.

$ rug info memprof

Name: memprof
Version: 0.5.1
Release: 3
Installed size: 765326
Summary: Tool for memory profiling and leak detection
Description:
Memprof is a tool for profiling memory usage and
detecting memory leaks. It can be used with existing
binaries without need for recompilation.

Molt bé, a instal·lar amb un install:

$rug install memprof

Using memprof 1:0.5.1-3.ximian.6.3 from the 'Ximian Desktop 2' channel
The following requested packages will be installed:
  memprof 1:0.5.1-3.ximian.6.3 (Ximian Desktop 2)
 
1 packages will be installed.
This is a 332.97k download.
Do you want to continue? [y/N] y
Download complete
Verifying memprof
Preparing Transaction
Removing
Installing memprof-0.5.1-3.ximian.6.3.i386.rpm
Transaction finished

Ja està instal·lat. Aquest cop ha estat fàcil, què passa, però, si hagués necessitat dependències? Doncs haguéssim utilitzat, de nou, el paràmetre -r. I encara més: què passa si les dependències no estan als canals on estem subscrits? Doncs sempre podem provar en tota la jerarquia de canals utilitzant -u.



Així doncs una instal·lació típica seria:

$ rug -ru install paquet

Ara suposem un problema més difícil. Acabem d'instal·lar un programa utilitzant un RPM sense usar Red Carpet (per els motius que siguin) i, al intentar executar ens surt una cosa com:

$ ./programita
./programita: error while loading shared libraries: libshout.so.3: cannot open shared object file: No such file or directory

Vatua l'olla, sembla que el nostre programita li falta una biblioteca! Què fem? No passa res, aquí tenim el Red Carpet! Anem a resoldre les dependències (solvedeps):

$ rug solvedeps "libshout.so.3"
 
The following packages will be installed:
  libshout 2.0-0.dag.rh90 (Dag Apt Repository)
 
1 packages will be installed.
Do you want to continue? [y/N]

Introduint el nom exacte del fitxer que busquem, biblioteques en la major part dels casos, podrem obtenir en quin fitxer està i així arreglar el nostre problema. Evidentment l'exemple que us proposem està preparat perquè funcioni, tampoc us penseu que Red Carpet és el Sant Grial i us solucionarà tots els problemes!



El rug també ens pot ajudar en d'altres cosetes. Posem, per exemple, que volem saber si, per fi, ha sortit una versió 1.x del programa de missatgeria instantània Gaim, només hem de fer:

$ rug solvedeps "gaim >= 1"
 
ERROR: Unresolved dependencies:
 
Can't satisfy requirement '>gaim-1[[Any]]'

El rug no pot satisfer la nostra condició i, per tant, encara no hi ha disponible als canals cap versió 1.x o superior. Sols per assegurar-nos podem fer:

$ rug solvedeps "gaim <= 1"
 
Requirements are already met on the system.  No packages need to be
installed or removed.

Tal com esperàvem el Red Carpet sap detectar la nostra versió del Gaim i és una versió inferior a la 1.x. Concretament, si fem una consulta utilitzant l'eina clàssica rpm

$ rpm -qi gaim
Name        : gaim                         Relocations: (not relocateable)
Version     : 0.75                              Vendor: Ximian, Inc.
...

La 0.75? No teníem una versió anterior? Si ens falla la memòria també podem fer us del l'ordre history del rug

$ rug history gaim
 
Date       | Action  | Package | Version
-----------+---------+---------+--------------------
2004-03-02 | upgrade | gaim    | 1:0.75-0.ximian.6.1

En fi, ja ho veieu. Tot un món de possibilitats semblant al que ja ofereixen d'altres eines de gestió de paquets. Quina triar? És cosa vostre, però un consell, vigileu de barrejar paquets de repositoris o canals molt diversos, perquè llavors la podeu començar a liar de valent amb les dependències i no hi haurà rug que us salvi (i us ho dic per experiència).