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)
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
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.
tu pourrais utiliser
yumdownloader --source < something.rpm
ensuite:
rpm2cpio packagename | cpio -ivd
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
.
les fichiers spec ne sont généralement pas en rpm. Ils sont en source rpm.
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.
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.