web-dev-qa-db-fra.com

extraire le fichier spec du package rpm

Existe-t-il un moyen d'extraire le fichier de spécifications du package rpm (je n'ai que le fichier RPM)

pas par

   rpm --scripts -qp my-great-app-1.1.2.rpm 

(cette syntaxe n'obtient pas le fichier spec uniquement les scripts du rpm)

37
jon

Installez rpmrebuild et extrayez le fichier de spécifications de votre rpm fichier ou de votre déjà package installé.

Exemples:

rpmrebuild --package --notest-install -e Oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
rpmrebuild -s Hercules.spec Hercules
24
reichhart

Le fichier spec n'est pas stocké dans des rpms binaires à moins que le packager ne l'ait spécifiquement inclus pour une raison quelconque (et il n'y a vraiment aucune raison de le faire). Les seules informations que vous pouvez obtenir à partir d'un rpm binaire sont les informations que rpm -qi <package> renvoie et les fichiers rpm -ql <package> listes. Si vous avez besoin de plus que cela, vous devez trouver le paquet source. Si Google/le site Web du fournisseur ne parvient pas à vous fournir cela, des informations de contact doivent être fournies dans le champ Packager pour tout ce qui est emballé par une personne compétente. Par exemple, voici un package livré avec RHEL et un package d'un fournisseur tiers:

$ rpm --qf '%{Packager}\n' -q redhat-release
Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
$ rpm --qf '%{Packager}\n' -q cfengine-community
CFEngine AS ([email protected])

Là, vous avez un site Web et une adresse e-mail, respectivement, où vous pouvez poser des questions sur un fichier spec ou un fichier srpm.

13
dannysauer

tu pourrais utiliser

yumdownloader --source < something.rpm

ensuite:

rpm2cpio packagename | cpio -ivd
7
kamal

Selon la réponse de @ RumpleStiltskin, les fichiers de spécifications d'origine se trouvent dans les rpms source qui peuvent être extraits. Pour obtenir les rpms source, exécutez ce qui suit:

yum install yum-utils # Only required if yumdownloader is not installed
yumdownloader --source <package name, like 'emacs-nox'>

Cela installera le package dans le répertoire courant. Pour l'extraire, exécutez:

rpm2cpio <package name>.src.rpm | cpio -civ '*.spec'

Le .spec le fichier sera dans votre répertoire actuel.

Si vous ne pouvez pas installer yum-utils pour une raison quelconque, regardez les fichiers dans /etc/yum.repos.d/ et recherchez les sections faisant référence aux référentiels rpm source. Vous pouvez saisir les valeurs de baseurl dans votre navigateur et rechercher manuellement le package source. Extraire le .spec nécessite encore rpm2cpio.

7
Rick Smith

les fichiers spec ne sont généralement pas en rpm. Ils sont en source rpm.

6
Rumple Stiltskin

rpmrebuild est votre ami. Utilisation

rpmrebuild -e -p <rpm_file>

Comme il ouvre le fichier de spécifications dans un éditeur, vous pouvez également apporter des modifications à la spécification rpm.

5
esmeagol

Je pourrais obtenir tous mes .spec, source, Patches par cette simple commande

$ rpmbuild --recompile --noclean ./SRPMS/somerpm.src.rpm

Maintenant, on peut changer les spécifications, src et reconstruire RPM ou SRPM.

0
Vipin Tripathi