Solo quiero crear un archivo RPM para distribuir mi "foobar" binario de Linux, con solo un par de dependencias. Tiene un archivo de configuración, /etc/foobar.conf y debe instalarse en / usr / bin / foobar.
Desafortunadamente, la documentación para RPM tiene 27 capítulos y realmente no tengo un día para sentarme y leer esto, porque también estoy ocupado haciendo instaladores .deb y EXE para otras plataformas.
¿Cuál es el mínimo absoluto que tengo que hacer para crear un RPM? Suponga que el binario foobar y foobar.conf están en el directorio de trabajo actual.
Respuestas:
A menudo hago rpm binarias por empaquetado de aplicaciones propietarias, también moster como websphere, en Linux. Por lo tanto, mi experiencia podría ser útil también para usted, además de que sería mejor hacer un RPM VERDADERO si puede. Pero yo divago.
Entonces, el paso básico para empaquetar su programa (binario) es el siguiente: en el que supongo que el programa es toybinprog con la versión 1.0, tengo que instalar una conf en /etc/toybinprog/toybinprog.conf y tengo un contenedor para instalar en / usr / bin llamado tobinprog:
1. cree su entorno de compilación de rpm para RPM <4.6,4.7
2. crea el tarball de tu proyecto
3. Copie al directorio de fuentes
4. construir la fuente y las rpm binarias
Y eso es todo.
Espero que esto ayude
fuente
sudo dnf install rpm-build
- Comando Fedora 23 para instalar rpmbuild v4.13 +Como distribuidor de aplicaciones, fpm suena perfecto para sus necesidades . Aquí hay un ejemplo que muestra cómo empaquetar una aplicación desde el origen. FPM puede producir archivos deb y archivos RPM.
fuente
Para una construcción rápida de RPM, consulte Togo:
https://github.com/genereese/togo-rpm
El proyecto tiene una guía de inicio rápido y pude crear un RPM básico en menos de 3 minutos.
Ejemplo usando los datos provistos en la pregunta original:
1) Cree el directorio del proyecto usando el script:
2) Realice la estructura de directorios deseada en ./root y copie sus archivos en ella:
3) Excluya los directorios propiedad del sistema de la propiedad de su RPM:
4) (OPCIONAL) Modifique la especificación generada para cambiar la descripción / dependencias / versión / lo que sea del paquete, etc.
5) Construir el RPM:
-y su RPM se escupe en el directorio ./rpms.
fuente
Del mismo modo, necesitaba crear un rpm con solo unos pocos archivos. Dado que estos archivos estaban controlados por la fuente, y porque parecía una tontería, no quería pasar a tararlos solo para que rpm los desarmara. Se me ocurrió lo siguiente:
Configura tu entorno:
mkdir -p ~/rpm/{BUILD,RPMS}
echo '%_topdir %(echo "$HOME")/rpm' > ~/.rpmmacros
Cree su archivo de especificaciones, foobar.spec, con los siguientes contenidos:
Construye tus rpm:
rpmbuild -bb foobar.spec
Hay un pequeño hacker que especifica la 'fuente' como su directorio actual, pero parecía mucho más elegante que la alternativa, que era, en mi caso, escribir un script separado para crear un tarball, etc., etc.
Nota: En mi situación particular, mis archivos se organizaron en carpetas de acuerdo a dónde tenían que ir, de esta manera:
y entonces la sección de preparación se convirtió en:
Que es un poco más limpio.
Además, estoy en un RHEL5.6 con rpm rpm 4.4.2.3, por lo que su kilometraje puede variar.
fuente
$RPM_BUILD_ROOT
para%{buildroot}
que funcionara en mi "Red Hat Enterprise Linux Server versión 6.9". Además, los dos archivos que se instalaron tenían que estar en el directorio actual cuando ejecuté rpmbuild. Lo instalé en mi otra máquina con:sudo rpm -Uvh --nodeps foobar-0.1a-1.x86_64.rpm
Si
make config
funciona para su programa o tiene un script de shell que copia sus dos archivos en el lugar apropiado, puede usar checkinstall . Simplemente vaya al directorio donde está su archivo MAKE y llámelo con el parámetro-R
(para RPM ) y opcionalmente con el script de instalación.fuente
Manera fácil de construir un paquete rpm desde binario (estos pasos fueron probados con Fedora 18):
1) Primero debe instalar rpmdevtools, así que ejecute estos comandos (atención: ejecutar como usuario normal)
2) En la carpeta ~ / rpmbuild / SPECS, cree un nuevo archivo: package_name.spec
3) Ábrelo con un editor (como gedit) y escribe esto:
4) Realice ~ / rpmbuild / BUILDROOT / package_name-version-release.i386 y reproduzca las rutas donde se colocarán los archivos. En este caso, por ejemplo, cree:
5) Coloque en estas carpetas los archivos que desea insertar en el paquete:
usr / share / pixmaps / package_name.png es el icono de binario usr / share / aplicaciones / package_name.desktop son las reglas para insertar el programa en las entradas del menú
6) package_name.desktop debe ser así:
Las categorías son las siguientes: standards.freedesktop.org/menu-spec/latest/apa.html
7) correr
$ rpmbuild -bb ~/rpmbuild/SPECS/package_name.spec
8) Su paquete fue integrado en la carpeta ~ / rpmbuild / RPMS
si instala este paquete, instale:
Gracias a: losurs.org/docs/tips/redhat/binary-rpms
Para más detalles sobre cómo construir rpm, eche un vistazo a este enlace .
Software Java GUI para construir rpm: https://sourceforge.net/projects/javarpmbuilder/
fuente
Si también está familiarizado con Maven, lo
rpm-maven-plugin
que simplifica la creación de RPM: solo tiene que escribirpom.xml
lo que luego se utilizará para construir RPM. El plugin crea implícitamente el entorno de compilación de RPM.fuente
Proceso de generar RPM desde el archivo fuente:
fuente
Los RPM generalmente se crean a partir de la fuente, no los binarios.
Debe escribir el archivo de especificaciones que cubre cómo configurar y compilar su aplicación; también, qué archivos incluir en su RPM.
Un vistazo rápido al manual muestra que la mayor parte de lo que necesita está cubierto en el Capítulo 8; además, como la mayoría de las distribuciones basadas en RPM tienen fuentes disponibles, hay literalmente una infinidad de ejemplos de diferentes enfoques que puede observar.
fuente