linux - paquetes - para instalar todos los archivos.rpm de un repositorio, ¿qué comando tienes que usar?
extraer el archivo de especificaciones del paquete rpm (6)
¿Hay alguna forma de extraer el archivo de especificaciones del paquete rpm (solo tengo el archivo RPM)
no por
rpm --scripts -qp my-great-app-1.1.2.rpm
(esta sintaxis no obtiene el archivo de especificaciones solo los scripts del rpm)
El archivo de especificación no se almacena en rpms binarios a menos que el empaquetador lo haya incluido específicamente por algún motivo (y realmente no hay motivo para hacerlo). La única información que puede obtener de un rpm binario es la información que rpm -qi <package>
y los archivos que rpm -ql <package>
enumera. Si necesita más que eso, debe encontrar el paquete fuente. Si Google / el sitio web del proveedor no puede proporcionar eso para usted, debe haber información de contacto proporcionada en el campo de empaquetamiento para cualquier cosa empaquetada por cualquier persona competente. Por ejemplo, aquí hay un paquete que se envía con RHEL y un paquete de un proveedor externo:
$ 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])
Ahí tienes un sitio web y una dirección de correo electrónico, respectivamente, donde puedes preguntar sobre un archivo de especificación o un archivo srpm.
Instale rpmrebuild y extraiga el archivo de especificaciones de su archivo rpm o su paquete ya instalado .
Ejemplos:
rpmrebuild --package --notest-install -e oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
rpmrebuild -s hercules.spec hercules
Los archivos de especificaciones generalmente no están en rpm. Están en rpm de origen.
Por la respuesta de Per @ RumpleStiltskin, los archivos de especificaciones originales se encuentran en las fuentes rpms que se pueden extraer. Para obtener los rpms de origen, ejecute lo siguiente:
rpmrebuild -e -p <rpm_file>
Esto instalará el paquete en el directorio actual. Para extraerlo ejecute:
yum install yum-utils # Only required if yumdownloader is not installed
yumdownloader --source <package name, like ''emacs-nox''>
El archivo .spec
estará en su directorio actual.
Si no puede instalar yum-utils por alguna razón, mire los archivos en /etc/yum.repos.d/
y busque las secciones que hacen referencia a los repositorios de rpm de la fuente. Puede escribir los valores de baseurl
en su navegador y buscar manualmente el paquete fuente. Extraer el .spec
aún requiere rpm2cpio
.
podrías usar
yumdownloader --source < something.rpm
entonces:
rpm2cpio packagename | cpio -ivd
rpmrebuild es tu amigo. Utilizar
rpm2cpio <package name>.src.rpm | cpio -civ ''*.spec''
A medida que abre el archivo de especificaciones en un editor, también puede hacer cambios a las especificaciones de rpm.