Extraire les scripts pre/post-install d’un RPM

Lorsque l’on extrait un RPM avec la commande rpm2cpio, seuls les fichiers du package sont extraits :

simon@simon-daas:[~/tmp]: ls
puppetlabs-release-pc1-el-7.noarch.rpm
simon@simon-daas:[~/tmp]: rpm2cpio puppetlabs-release-pc1-el-7.noarch.rpm | cpio -dium
12 blocs
simon@simon-daas:[~/tmp]: ls
etc  puppetlabs-release-pc1-el-7.noarch.rpm  usr

Pour récupérer les scripts pre/post-(un)install/update d’un RPM, on utilisera :

rpm -qp --scripts [chemin du RPM]

Lequel retournera l’intégralité des scripts :

simon@simon-daas:[~/tmp]: rpm -qp --scripts puppetlabs-release-pc1-el-7.noarch.rpm
preinstall scriptlet (using /bin/sh):
# Save state so we know later if this is an upgrade or an install
mkdir -p /var/lib/rpm-state/puppetlabs-release-pc1
if [ "$1" -eq 1 ] ; then
  touch /var/lib/rpm-state/puppetlabs-release-pc1/install
fi
if [ "$1" -gt 1 ] ; then
  touch /var/lib/rpm-state/puppetlabs-release-pc1/upgrade
fi


# Run preinstall scripts on install if defined
if [ "$1" -eq 1 ] ; then
  :
fi

# Run preinstall scripts on upgrade if defined
if [ "$1" -gt 1 ] ; then
  :
fi
postinstall program: /bin/sh
preuninstall scriptlet (using /bin/sh):
# Run pre-uninstall scripts on upgrade if defined
if [ "$1" -eq 1 ] ; then
  :
fi

# Run pre-uninstall scripts on removal if defined
if [ "$1" -eq 0 ] ; then
  :
fi
postuninstall scriptlet (using /bin/sh):
# Run post-uninstall scripts on upgrade if defined
if [ "$1" -eq 1 ] ; then
  :
fi

# Run post-uninstall scripts on removal if defined
if [ "$1" -eq 0 ] ; then
  :
fi
posttrans scriptlet (using /bin/sh):
# Run post-transaction scripts on install if defined
if [ -e /var/lib/rpm-state/puppetlabs-release-pc1/install ] ; then
  :
  rm /var/lib/rpm-state/puppetlabs-release-pc1/install
fi

# Run post-transaction scripts on upgrade if defined
if [ -e /var/lib/rpm-state/puppetlabs-release-pc1/upgrade ] ; then
  :
  rm /var/lib/rpm-state/puppetlabs-release-pc1/upgrade
fi

On peut également les obtenir pour un package déjà installé :

rpm -q --scripts [nom du RPM]

Source : https://blog.packagecloud.io/eng/2015/10/13/inspect-extract-contents-rpm-packages/

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s