2 votos

¿Cuál es la forma correcta de actualizar la configuración de los componentes de terceros cuando se utiliza RPM?

Usamos RPM para empaquetar y desplegar nuestro producto. Nuestro producto depende de otros componentes, como la base de datos postgresql, etc., que se especifican en nuestro archivo .spec. Digamos que uno de los archivos de configuración de los componentes de terceros debe ser parcheado antes de instalar nuestro producto (y revertido después de desinstalarlo). ¿Cuál es el procedimiento correcto para hacerlo? ¿Existen ejemplos de paquetes RPM que hagan lo mismo?

Gracias.

1voto

dsmsk80 Puntos 2848

Los archivos de especificaciones de los RPM admiten la instalación por separado ( %pre ) y después de la instalación ( %post ) o antes de la desinstalación ( %preun ) y después de la desinstalación ( %postun ) que se pueden utilizar para actualizar cualquier configuración del sistema antes de que se instale el paquete RPM o cuando se elimine.

Puede comprobar por ejemplo el paquete httpd donde en %pre se define la sección para añadir el usuario apache y en %post se define para habilitar el servicio httpd en el arranque.

rpm -q --scripts httpd

preinstall scriptlet (using /bin/sh):
# Add the "apache" user
getent group apache >/dev/null || groupadd -g 48 -r apache
getent passwd apache >/dev/null || \
  useradd -r -u 48 -g apache -s /sbin/nologin \
    -d /var/www -c "Apache" apache
exit 0
postinstall scriptlet (using /bin/sh):
# Register the httpd service
/sbin/chkconfig --add httpd
/sbin/chkconfig --add htcacheclean
preuninstall scriptlet (using /bin/sh):
if [ $1 = 0 ]; then
        /sbin/service httpd stop > /dev/null 2>&1
        /sbin/chkconfig --del httpd
        /sbin/service htcacheclean stop > /dev/null 2>&1
        /sbin/chkconfig --del htcacheclean
fi
posttrans scriptlet (using /bin/sh):
test -f /etc/sysconfig/httpd-disable-posttrans || \
 /sbin/service httpd condrestart >/dev/null 2>&1 || :

Aquí están las secciones relacionadas en el archivo SPEC para el paquete httpd:

%pre
# Add the "apache" user
getent group apache >/dev/null || groupadd -g 48 -r apache
getent passwd apache >/dev/null || \
  useradd -r -u 48 -g apache -s /sbin/nologin \
    -d %{contentdir} -c "Apache" apache
exit 0

%post
# Register the httpd service
/sbin/chkconfig --add httpd

I cosa RPM máximas es la fuente de información definitiva sobre cómo hacer estas cosas.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: