Je veux juste créer un fichier RPM pour distribuer mon binaire Linux "foobar", avec seulement quelques dépendances. Il a un fichier de configuration, /etc/foobar.conf et doit être installé dans / usr / bin / foobar.
Malheureusement, la documentation de RPM est longue de 27 chapitres et je n'ai vraiment pas un jour pour m'asseoir et lire ceci, car je suis également occupé à créer des installateurs .deb et EXE pour d'autres plates-formes.
Quel est le minimum absolu que je dois faire pour créer un RPM? Supposons que le binaire foobar et foobar.conf se trouvent dans le répertoire de travail actuel.
Réponses:
Je fais souvent des rpm binaires par empaquetage d'applications propriétaires - également sous forme de websphere - sur Linux. Mon expérience pourrait donc être utile à vous aussi, en plus, il serait préférable de faire un VRAI RPM si vous le pouvez. Mais je m'éloigne du sujet.
Donc, l'étape de base pour l'empaquetage de votre programme (binaire) est la suivante - dans laquelle je suppose que le programme est toybinprog avec la version 1.0, ayez un conf à installer dans /etc/toybinprog/toybinprog.conf et ayez un bin à installer dans / usr / bin appelé tobinprog:
1. créez votre environnement de build rpm pour RPM <4.6,4.7
2. créez l'archive tar de votre projet
3. Copier dans le répertoire sources
4. construire la source et le rpm binaire
Et c'est tout.
J'espère que cette aide
la source
sudo dnf install rpm-build
- Commande Fedora 23 pour l'installation de rpmbuild v4.13 +En tant que distributeur d'applications, fpm répond parfaitement à vos besoins . Il y a un exemple ici qui montre comment empaqueter une application à partir de la source. FPM peut produire à la fois des fichiers deb et des fichiers RPM.
la source
Pour la construction rapide de RPM, consultez le Togo:
https://github.com/genereese/togo-rpm
Le projet a un guide de démarrage rapide et j'ai pu créer un RPM de base en moins de 3 minutes.
Exemple utilisant les données fournies dans la question initiale:
1) Créez le répertoire du projet à l'aide du script:
2) Créez la structure de répertoires souhaitée sous ./root et copiez-y vos fichiers:
3) Excluez les répertoires appartenant au système de la propriété de votre RPM:
4) (FACULTATIF) Modifiez la spécification générée pour changer la description de votre package / dépendances / version / peu importe, etc.:
5) Construisez le RPM:
-et votre RPM est craché dans le répertoire ./rpms.
la source
De même, j'avais besoin de créer un rpm avec seulement quelques fichiers. Puisque ces fichiers étaient contrôlés par la source, et parce que cela semblait idiot, je ne voulais pas les tarer juste pour que rpm les décompose. J'ai trouvé ce qui suit:
Configurez votre environnement:
mkdir -p ~/rpm/{BUILD,RPMS}
echo '%_topdir %(echo "$HOME")/rpm' > ~/.rpmmacros
Créez votre fichier de spécifications, foobar.spec, avec le contenu suivant:
Construisez votre rpm:
rpmbuild -bb foobar.spec
Il y a un petit hack spécifiant la `` source '' comme votre répertoire actuel, mais cela semblait beaucoup plus élégant que l'alternative, qui consistait, dans mon cas, à écrire un script séparé pour créer une archive tar, etc., etc.
Remarque: dans ma situation particulière, mes fichiers étaient organisés dans des dossiers en fonction de leur destination, comme ceci:
et ainsi la section de préparation est devenue:
Ce qui est un peu plus propre.
De plus, il se trouve que je suis sur un RHEL5.6 avec les versions de régime 4.4.2.3, donc votre kilométrage peut varier.
la source
$RPM_BUILD_ROOT
à%{buildroot}
l'obtenir pour travailler sur mon « Red Hat Enterprise Linux 6.9 serveur ». De plus, les deux fichiers installés devaient se trouver dans le répertoire actuel lorsque j'ai exécuté rpmbuild. Je l'ai installé sur mon autre machine avec:sudo rpm -Uvh --nodeps foobar-0.1a-1.x86_64.rpm
Si cela
make config
fonctionne pour votre programme ou si vous avez un script shell qui copie vos deux fichiers à l'emplacement approprié, vous pouvez utiliser checkinstall . Allez simplement dans le répertoire où se trouve votre makefile et appelez-le avec le paramètre-R
(pour RPM ) et éventuellement avec le script d'installation.la source
Un moyen facile de créer un package rpm à partir de binaire (ces étapes ont été testées avec Fedora 18):
1) Vous devez d'abord installer rpmdevtools, alors exécutez ces commandes (attention: exécutez en tant qu'utilisateur normal)
2) Dans le dossier ~ / rpmbuild / SPECS, créez un nouveau fichier: package_name.spec
3) Ouvrez-le avec un éditeur (comme gedit) et écrivez ceci:
4) Créez ~ / rpmbuild / BUILDROOT / package_name-version-release.i386 et reproduisez les chemins où les fichiers seront placés Donc dans ce cas par exemple créez:
5) Mettez dans ces dossiers les fichiers que vous souhaitez insérer dans le package:
usr / share / pixmaps / package_name.png est l'icône du binaire usr / share / applications / package_name.desktop sont les règles pour insérer le programme dans les entrées de menu
6) package_name.desktop doit être comme ceci:
Les catégories sont les suivantes: standards.freedesktop.org/menu-spec/latest/apa.html
7) Courir
$ rpmbuild -bb ~/rpmbuild/SPECS/package_name.spec
8) Votre package a été intégré dans le dossier ~ / rpmbuild / RPMS
si vous installez ce package, il est installé:
Merci à: losurs.org/docs/tips/redhat/binary-rpms
Pour plus de détails sur la création de rpm, consultez ce lien .
Logiciel java GUI pour construire rpm: https://sourceforge.net/projects/javarpmbuilder/
la source
Si vous êtes familier avec Maven là aussi
rpm-maven-plugin
ce qui simplifie la création de RPM: vous devez écrire uniquementpom.xml
ce qui sera ensuite utilisé pour construire des RPM. L'environnement de construction RPM est créé implicitement par le plugin.la source
Processus de génération de RPM à partir du fichier source:
la source
Les RPM sont généralement construits à partir de la source, pas des binaires.
Vous devez écrire le fichier de spécification qui explique comment configurer et compiler votre application; également, quels fichiers inclure dans votre RPM.
Un rapide coup d'œil au manuel montre que la plupart de ce dont vous avez besoin est couvert dans le chapitre 8. De plus, comme la plupart des distributions basées sur RPM ont des sources disponibles, il y a littéralement un zillion d'exemples d'approches différentes que vous pourriez examiner.
la source