Usage
myrpm.pl [OPTION]
myrpm.pl is a automatic spec file generator and builder.
Myrpm allow you to install freely software on a rpm compliant system and realize a binary package from a list of file.
This program manages rigths and users. It s a simple tool that simplify packaging in chroot mode.
General Options
-h, --help : Print this help.
-v, --verbose : Print debug information, verbose mode.
-m, --multiple : Split into 3 packages : main, doc and config
-b, --build : Build the package automatically at the end.
-a, --archive=filename : RPM Creation based on a archive file
-u, --uid=user id or name : User id for archive file
-g, --gid=user id or name : Group id for archive file
-n, --nodoc : Avoid documentation file detection
-c, --noconfig : Avoid config file detection
-s, --noreserved : Avoid reserved directory
-t, --template=filename : Generate the spec skeleton from this template.
-x, --exclude="pattern1,pattern2" : Exclude some file patterns.
-r, --root-directory=<directory> : Root directory ( / by default ).
-d, --directory=<directory> : Directory where is the tree to package
by default, list of files is build from the stdin data
Package Options
-N, --name=<name> : Package name - This option is mandatory
-V, --version=<version> : Package version - This option is mandatory
-R, --release=<release> : Package release - This option is mandatory
-C, --changelog=<changelog> : Package changeLog
-D, --description=<description> : Package Description.
-S, --summary=<summary> : Package Summary.
-P, --packager=<packager> : Packager identity.
-U, --vendor-url=<vendor url> : Vendor URL.
-O, --vendor=<vendor> : Vendor name.
-A, --architecture=<archi> : Target architecture.
-T, --distribution=<distro> : Target distribution.
--requires=<dependency>,... : Dependency list.
--build-script=<filename> : Script filename to include in the %build session.
--pre-script=<filename> : Script filename to include in the %pre session.
--post-script=<filename> : Script filename to include in the %post session.
--preun-script=<filename> : Script filename to include in the %preun session.
--postun-script=<filename> : Script filename to include in the %postun session.
Examples
Realize a kick rpm snapshot of /home/jmrenouard/myrpmBuildDir
myrpm.pl -v -d /home/jmrenouard/myrpmBuildDir -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1 -b
An other version
cd /home/jmrenouard/myrpmBuildDir && myrpm.pl -v -d . -r . -N toto -V 1.0 -R 1 -b
The same with UNIX tools interaction
cd /home/jmrenouard/myrpmBuildDir && find `pwd` -iname '*' -print | myrpm.pl -v -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1 -b
find /home/jmrenouard/myrpmBuildDir | myrpm.pl -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1
Explanations
This script performs the following operations :
Find build the list of all the files in /home/jmrenouard/myrpmBuildDir.
myrpm.pl packages all the files /home/jmrenouard/myrpmBuildDir in a package with toto as name.
myrpm.pl consider /home/jmrenouard/myrpmBuildDir as the root of all the files so all this files will be installed from the root file system by the rpm program.
Repackage existing configuration
rpm -ql yum | myrpm.pl -v -N yum -V 2.7 -R 1_jmr -b
Explanations
Rpm gives the list of the files in the yum package installed on the system.
myrpm.pl packages all the files in a package with yum as name and 1_jmr as release.
This is a new way to package modification on a installed system.
Configuration file samples
Myrpm tool is an ecology-friendly configurated.
Standard $HOME/.rpmmacros sample
%_topdir /home/jmrenouard/redhat
%packager Jean-Marie Renouard<jmrenouard.externe at pagesjaunes.fr>
%vendor Pages Jaunes
%vendor_url http://www.pagesjaunes.fr
%distribution Red Hat Enterprise 4
%dist_tag .1
%_tmppath /var/tmp
Help to improve this tool
Submit bugs or remarks at http://code.google.com/p/myrpm/issues/list
You can also contact me at Jean-Marie Renouard <jmrenouard at gmail.com>
Documentation française
Usage
myrpm.pl [OPTION]
myrpm.pl est un générateur automatique de fichier spec prêt à l'emploi.
Myrpm vous prmet d'installer des logiciel librement sur un système Linux compatible RPM et de réaliser des paquets RPMs binaires depuis une liste de fichiers.
Ce programme gère les droits et les utilisaterus. C'est un outil simple qui simplifie le packaging en mode non privilégié.
Options générales
-h, --help : Affichage de l'aide en ligne.
-v, --verbose : Mode verbeux, affichage d'information de deboggage.
-b, --build : Compilation automatique du package.
-a, --archive=filename : Création d'un RPM à partir d'une archive
-u, --uid=user id or name : Identifiant utilisateur pour l'archive
-g, --gid=user id or name : Identifiant de groupe pour l'archive
-n, --nodoc : Annulation de la detection des fichiers de documentation
-c, --noconfig : Annulation de la detection des fichiers de configuration
-s, --noreserved : Annulation de la detection des repertoires réservés
-m, --multiple : Séparation en 3 packets : principal, doc et config
-t, --template=filename : Spécification d'un fichier template aternatif.
-x, --exclude="pattern1,pattern2" : Exclusion de certaines formes de fichier.
-r, --root-directory=<directory> : Répertoire racine ( / par défaut ).
-d, --directory=<directory> : Répertoire à packager.
Par défaut, la liste de fichiers est construite depuis le flux d'entrée standard.
Options du package RPM
-N, --name=<name> : Nom du package - Option obligatoire.
-V, --version=<version> : Version du package - Option obligatoire.
-R, --release=<release> : Release du package - Option obligatoire.
-C, --changelog=<changelog> : ChangeLog du package
-D, --description=<description> : Description du package.
-S, --summary=<summary> : Résumé du package.
-P, --packager=<packager> : Identité du packageur.
-U, --vendor-url=<vendor url> : URL du fournisseur.
-O, --vendor=<vendor> : Nom du fournisseur.
-A, --architecture=<archi> : Architecture cible.
-T, --distribution=<distro> : Distribution cible.
--requires=<dependency>,... : Liste des dépendances.
--build-script=<filename> : Nom du script à inclure dans la session %build.
--pre-script=<filename> : Nom du script à inclure dans la session %pre.
--post-script=<filename> : Nom du script à inclure dans la session %post.
--preun-script=<filename> : Nom du script à inclure dans la session %preun.
--postun-script=<filename> : Nom du script à inclure dans la session %postun.
Exemples
Réalisation rapide d'une image du répertoire /home/jmrenouard/myrpmBuildDir
myrpm.pl -v -d /home/jmrenouard/myrpmBuildDir -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1 -b
Une autre version
cd /home/jmrenouard/myrpmBuildDir && myrpm.pl -v -d . -r . -N toto -V 1.0 -R 1 -b
La même avec des interactions avec les outils UNIX
cd /home/jmrenouard/myrpmBuildDir && find `pwd` -iname '*' -print | myrpm.pl -v -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1 -b
find /home/jmrenouard/myrpmBuildDir | myrpm.pl -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1
Explications
Le script réalise les opérations suivantes :
Find construit la liste de tous les fichiers contenus dans le répertoie /home/jmrenouard/myrpmBuildDir.
myrpm.pl packages tous les fichiers du répertoie /home/jmrenouard/myrpmBuildDir dans le package ayant toto comme nom, 1.0 comme version et 1 comme release.
myrpm.pl considère /home/jmrenouard/myrpmBuildDir comme répertoire root ( / ) si bien que tous les fichiers seront installé à la racine par le programme rpm.
Repackager une configuration existante
rpm -ql yum | myrpm.pl -v -N yum -V 2.7 -R 1_jmr -b
Explications
Rpm donne la liste des fichiers du package Yum installé sur le système.
myrpm.pl packages tous les fichiers de ce package dans un nouveau package avec yum comme nom.
Il s'agit d'un nouveau moyen de packager des modifications depuis un système installé.
Exemple de fichier de configuration
Myrpm utilise le fichier utilisateur pour configurer les valeurs par défaut.
Exemples de $HOME/.rpmmacros standard
%_topdir /home/jmrenouard/redhat
%packager Jean-Marie Renouard<jmrenouard.externe at pagesjaunes.fr>
%vendor Pages Jaunes
%vendor_url http://www.pagesjaunes.fr
%distribution Red Hat Enterprise 4
%dist_tag .1
%_tmppath /var/tmp
Aide à l'amélioration du produit
Merci de soumettre les erreurs et les remarques sur http://code.google.com/p/myrpm/issues/list
Vous pouvez contactez Jean-Marie Renouard <jmrenouard at gmail.com> pour plus de détails.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 642:
Non-ASCII character seen before =encoding in 'française'. Assuming CP1252