- Soy capaz de extraer archivos de un archivo RPM, pero ¿cómo lo "reconstruyo", por ejemplo cpio2rpm?
- He extraído el archivo RPM usando el siguiente comando. rpm2cpio theFileName.rpm | cpio -idmv
- Tengo que modificar los pocos archivos de la aplicación web como * .php, * .html o .js. Estos archivos no requieren ninguna compilación de origen. Así que me gustaría reemplazar o cambiar estos archivos con modificaciones sin reconstruir rpm. Desde entonces, necesito hacer esto para múltiples plataformas como Redhat Linux y SUSE, y arquitectura múltiple como sistemas operativos de 32 y 64 bit.
- Espero realizar estos cambios solo en el sistema y sin reconstruir rpm y no habría una dependencia de la arquitectura del sistema de destino (como i386, 64).
- No me parece el comando rpmbuild -rebuild the.src.rpm ya que no tengo fuente. Necesito ser reconstruir el archivo .RPM binario (no fuente .rpm)
Quiero hacer esto sin fuente y plataforma o arquitectura independiente y sin usar archivo de especificaciones si es posible.¿Cómo "volver a empaquetar" un archivo RPM, por ejemplo, cpio2rpm, sin instalar el RPM?
Cualquier amigo, podría sugerir cualquier solución o cualquier herramienta gratuita.
Gracias a todos los que pasan tiempo leyendo y respondiendo a mi hilo.
Respuesta
Principially puede empacar todo lo que desee en un archivo RPM. Simplemente trate lo que tiene como "fuente" y escriba un archivo SPEC que coloque los datos donde normalmente irían los binarios compilados.
En cuanto a RPM, considero "fuente" "lo que tengo" y "binario" "lo que necesito ejecutar". No es una terminología muy exacta, pero ayuda a trabajar con RPM.
su archivo spec ve como cualquier otro archivo de especificaciones, lo que se refiere a los parámetros etc, pero la parte de código es diferente:
[...]
%prep
# Here you either have nothing to do or you already unpack the cpio and possibly modify it.
# %build can be omitted
%install
[ "${buildroot}" != "/" ] && [ -d ${buildroot} ] && rm -rf ${buildroot};
# Here you can either unpack the cpio or copy the data unpacked in %prep.
# Be careful to put it into %{buildroot} or $RPM_BUILD_ROOT.
Usted puede volver a empaquetar un RPM instalados (incluyendo los archivos modificados) usando rpmrebuild. http://rpmrebuild.sourceforge.net/
Obviamente sus binarios (si los hubiera) tendrían que ser independientes de la plataforma/arquitectura para trabajar en todos los sabores del sistema operativo que está esperando, pero parece que son solo archivos web que no deberían ser problema.
Puede usar rpmrebuild para modificar un archivo de rpm real (no es necesario instalarlo).
La mayoría de los ejemplos para este uso complican los comandos de edición en línea para modificar archivos conocidos de maneras particulares, pero puede usar un editor normal. Lo usé para arreglar un script de shell en un archivo rpm que no tenía el código fuente. Llame al comando como
rpmrebuild -ep theFileName.rpm
Esto lo coloca en un editor con el archivo de especificaciones para el RPM. El nombre del archivo será algo así como ~/.tmp/rpmrebuild.12839/work/spec.2
. Si observa, en este ejemplo, ~/.tmp/rpmrebuild.12839/work
, encontrará todos los archivos utilizados para hacer el RPM (en mi caso, el archivo estaba en root/usr/sbin
dentro de ese directorio). Por lo tanto, vaya a otra ventana, cd a ese directorio, y edite cualquier archivo que necesite cambiar.
Cuando haya terminado de editar archivos, vuelva a la ventana de edición con el archivo de especificaciones, realice los cambios que necesite en ese archivo (no tenía ninguno, ya que no estaba agregando o eliminando archivos), guarde el archivo, y diga "y" a la pregunta "¿Desea continuar?". Luego construirá un nuevo archivo RPM y le dirá dónde lo ha ubicado (en mi caso, en ~/rpmbuild/RPMS/x86_64 /)
- 1. ¿Cómo volver a instalar el paquete rpm?
- 2. Desempaquetar un archivo RPM y volver a empaquetarlo
- 3. excluir tipos de archivos al empaquetar un rpm
- 4. La actualización RPM desinstala el RPM
- 5. Empaquetando un solo archivo JAR como un RPM correctamente
- 6. Instalando java - ¿Debería usar el archivo .rpm o .tar.gz?
- 7. ¿Cómo distribuir módulos kernel usando un RPM?
- 8. ¿Cómo actualizo un archivo en un contenedor sin volver a empaquetar todo el contenedor?
- 9. RPM - Instale los parámetros de tiempo
- 10. Instalación de un directorio vacío con RPM
- 11. Yum instalar RPM de fabricación casera de error
- 12. Copia de rpm de un sistema operativo a otro
- 13. Cómo distribuir la aplicación Python/Django a través de RPM
- 14. Python RPM que construí no instalará
- 15. Error de sintaxis: newline inesperado node.js rpm
- 16. extraer el archivo de especificación del paquete rpm
- 17. Cómo comparo versiones de RPM en python
- 18. comando chkconfig en el archivo de especificaciones rpm
- 19. ¿Por qué el servicio se detiene después de actualizar RPM?
- 20. Especificación de alternativas en dependencias de RPM
- 21. Cuál es la diferencia entre maven-rpm-plugin y rpm-maven-plugin
- 22. ¿Cómo puedo construir un RPM en mi sistema MacOS?
- 23. Rpmbuild - configuración del nombre del archivo .rpm creado
- 24. Rails + New Relic: ¿Qué significa RPM?
- 25. ¿Es posible pasar el argumento definido por el usuario a RPM durante la instalación?
- 26. ¿Cómo ejecutar un comando de shell en el archivo de especificaciones de RPM?
- 27. ¿Cómo saber el valor de la macro incorporada en RPM?
- 28. ¿Muestra información sobre el paquete RPM no instalado?
- 29. ¿Cómo uso rpm para actualizar/reemplazar archivos existentes?
- 30. ¿Cómo averiguo w/YUM o RPM qué archivos instaló?
¡Genial! ¿Hay alguna manera de automatizarlo en algún script? –