Product SiteDocumentation Site

10.3. Gestión de grupos con yum-groups-manager

yum-groups-manager se usa para crear o editar el archivo de metadatos de grupos para un repositorio YUM. Usar esta herramienta es frecuentemente mucho más fácil que editar el XML correspondiente a mano. yum-groups-manager puede cargar un archivo entero de metadatos de grupo o crear uno nuevo o editar un grupo existente y luego escribir los metadatos como salida.
Antes de poder utilizar esta herramienta necesita que los paquetes que se vayan a agregar a los grupos correspondientes estén disponibles vía yum, es decir, deben ya estar disponibles en los repositorios configurados.
Creación del grupo YUM Rubyera
# yum-groups-manager -n "Rubyera" --id=rubyera --description="Rubyera, paquetes producidos por..." --save=comps.xml --mandatory passenger
# cat comps.xml 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
        
  <group>
   <id>rubyera</id>
   <default>false</default>
   <uservisible>true</uservisible>
   <display_order>1024</display_order>
   <name>Rubyera</name>
   <description>Rubyera, paquetes producidos por...</description>
    <packagelist>
      <packagereq type="mandatory">passenger</packagereq>
    </packagelist>
  </group>
</comps>
Una vez creado el archivo comps.xml y colocándolo en el mismo directorio donde se encuentran los rpms, se debe volver a ejecutar el comando createrepo especificando ahora el nombre del archivo que define los grupos.
# createrepo --verbose -g comps.xml /var/www/html/x86_64/
Ahora el grupo se encuentra disponible.
# yum clean metadata
# yum groupinfo Rubyera 
Complementos cargados:download-order, downloadonly, filter-data, list-data, presto, verify
Configurando el proceso de grupo
...
rubyera                                                                                                                              | 1.9 kB     00:00 ... 
rubyera/group_gz                                                                                                                     |  341 B     00:00 ... 

Grupo: Rubyera
 Descripción: Rubyera, paquetes producidos por ...
 Paquetes obligatorios:
   passenger

Un tipo de aplicación a la vez

No se pueden agregar aplicaciones mandatorias y opcionales o por omisión en una sola línea de comando, por lo que debe hacerse en comandos separados, por ejemplo, para agregar paquetes opcionales se puede hacer:
# yum-groups-manager --id=rubyera --load=repodata/comps.xml --save=comps.xml --optional dhcp_probe
Note que no se puede operar sobre el mismo archivo de entrada y de salida. La opción --load carga el archivo comps.xml producido previamente por createrepo mientras que --save está operando sobre el directorio donde se encuentran los rpms, en este caso en /var/www/html/x86_64.
Una vez se tiene el nuevo archivo comps.xml, que se muestra abajo, se debe reconstruir el repositorio YUM con createrepo.
# cat rubyera.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
        
  <group>
   <id>rubyera</id>
   <default>false</default>
   <uservisible>true</uservisible>
   <display_order>1024</display_order>
   <name>Rubyera</name>
   <description>Rubyera, paquetes producidos por...</description>
    <packagelist>
      <packagereq type="optional">dhcp_probe</packagereq>
      <packagereq type="mandatory">passenger</packagereq>
    </packagelist>
  </group>
</comps>
# createrepo --verbose -g comps.xml /var/www/html/x86_64/
Verificación de la nueva composición del grupo Rubyera.
# yum clean metadata
# yum groupinfo Rubyera 
...
Grupo: Rubyera
 Descripción: Rubyera, paquetes producidos por ...
 Paquetes obligatorios:
   passenger
 Paquetes opcionales:
   dhcp_probe
Para agregar un segundo grupo:
# yum-groups-manager --name="Rubyera debuginfo" --id=rubyera-debuginfo --load=repodata/comps.xml --save=comps.xml dhcp_probe-debuginfo passenger-debuginfo
# cat comps.xml 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
        
  <group>
   <id>rubyera</id>
   <default>false</default>
   <uservisible>true</uservisible>
   <display_order>1024</display_order>
   <name>Rubyera</name>
   <description>Rubyera, paquetes producidos por ...</description>
    <packagelist>
      <packagereq type="mandatory">passenger</packagereq>
      <packagereq type="optional">dhcp_probe</packagereq>
    </packagelist>
  </group>        
  <group>
   <id>rubyera-debuginfo</id>
   <default>false</default>
   <uservisible>true</uservisible>
   <display_order>1024</display_order>
   <name>Rubyera debuginfo</name>
   <description></description>
    <packagelist>
      <packagereq type="default">dhcp_probe-debuginfo</packagereq>
      <packagereq type="default">passenger-debuginfo</packagereq>
    </packagelist>
  </group>
</comps>
# yum groupinfo "Rubyera debuginfo"
...
Grupo: Rubyera debuginfo
 Paquetes predeterminados:
   dhcp_probe-debuginfo
   passenger-debuginfo