Comment créer ou de construire les paquetages RPM

Comment créer ou de construire les paquetages RPM

Introduction —

Outil * “rpmbuild” est utilisé pour construire les deux …

1) ~ paquet binaire utilisé pour installer le logiciel et le soutien des scripts. Il contient les fichiers qui composent la demande ainsi que toute information supplémentaire nécessaire à l’installation et l’effacer.
2) le paquet source ~ contient le fichier d’origine compressé tar du code source, les correctifs et les spécifications du fichier.

* Qu’est-ce que RPM et RPM Package Manager?

Le RPM Package Manager (RPM) est une puissante ligne de commande du système de gestion des paquets capable d’installation, la désinstallation, la vérification, l’interrogation et la mise à jour des paquets logiciels.

RPM paquet se compose d’une archive de fichiers et de méta-données utilisées pour l’installation et effacer les fichiers d’archive. Les méta-données comprennent des scripts d’aide, les attributs de fichier, et des informations descriptives sur le paquet.

* Mettre en place paquet RPM, vous devez spécifier trois choses ~

1) Source d’application – Dans tous les cas, vous ne devez pas modifier les sources utilisées dans le processus de construction du paquet.

2) Patches – RPM vous donne la possibilité d’appliquer automatiquement les correctifs pour eux. Le patch résout un problème spécifique au système cible. Cela pourrait comprendre l’évolution makefiles pour installer l’application dans les répertoires appropriés, ou résoudre des conflits inter-plate-forme. Patches créer l’environnement requis pour la compilation correcte.

3) la spécification de fichier – Le fichier image est au cœur du processus d’édification de paquet RPM. Il contient des informations requises par RPM pour construire le paquet, ainsi que des instructions disant RPM manière de le construire. Le fichier de spécification dicte aussi exactement quels fichiers sont une partie du paquet, et où ils doivent être installés.

** Spécification de fichier ~ est divisé en 8 sections, comme indiqué ci-dessous

a) Préambule ~ contient des renseignements qui seront affichés lorsque les utilisateurs demandent des informations sur le package. Cela comprend une description de la fonction du paquet, le numéro de version du logiciel, etc

b) Préparation ~ lorsque les travaux de construction d’un paquet démarre. Comme son nom l’indique, cette section est l’endroit où les préparatifs nécessaires sont effectués avant la construction proprement dite du logiciel. En général, si quelque chose doit être fait pour les sources avant de compiler le logiciel, il doit se passer dans la section préparation. Le contenu de cette section sont d’un script shell ordinaire. Toutefois, le RPM ne prévoit deux macros pour rendre la vie plus facile. Une macro peut décompresser un fichier compressé tar et un cd dans le répertoire source. La macro s’applique facilement d’autres correctifs pour les sources décompressées.

c) Construction ~ Cette section est composée d’un script shell. Il est utilisé pour exécuter toutes les commandes sont requises pour compiler les sources effectivement comme seule commande make, ou être plus complexe si le processus de construction il a besoin. Il n’ya pas de macros disponibles dans cette section.

d) Installer ~ Cette section contient également un script shell, la section d’installation est utilisé pour exécuter les commandes nécessaires pour installer les logiciels.

e) Installez et les scripts de désinstallation ~ Il est composé de scripts qui seront exécutés, le système de l’utilisateur, lorsque le paquet est effectivement installés ou enlevés. RPM peut exécuter un script de pre / post installation ou l’enlèvement de l’emballage.

f) Vérifier Script ~ script qui est exécuté sur le système de l’utilisateur. Il est exécuté lors de RPM vérifie une bonne installation du paquet.

g) L’article Clean ~ script qui peut nettoyer les choses en place après la construction. Ce script est rarement utilisée, car RPM ne normalement un bon travail de nettoyage dans la plupart construire des environnements.

h) Liste des fichiers ~ se compose d’une liste de fichiers qui composent le paquet. En outre, un certain nombre de macros peuvent être utilisés pour contrôler les attributs de fichier lors de l’installation, ainsi que pour indiquer quels sont les fichiers de documentation, et qui contiennent des informations de configuration. La liste des fichiers est très important.

*** Exigence de RPM pour construire environnement ~

A] RPM requiert un ensemble de répertoires pour effectuer la compilation. Bien des endroits les répertoires et les noms peuvent être changés. Disposition par défaut est montré ci-dessous —

root @ arunsb: ~ # ls-l / usr / src / redhat /

drwxr-xr-x 2 root root 4096 25 août 2007 SOURCES => contient les sources originales, les correctifs et les fichiers d’icône
drwxr-xr-x 2 root root 4096 25 août 2007 specs => contient les fichiers de spécification
drwxr-xr-x 2 root root 4096 25 août 2007 “Build => répertoire dans lequel les sources sont décompressés, et le logiciel est intégré
drwxr-xr-x 8 root root 4096 Mai 28 2008 tr-mn => contient le paquet binaire des fichiers créés par le processus de construction
drwxr-xr-x 2 root root 4096 25 août 2007 SRPMS => contient le paquet source des fichiers créés par le processus de construction

root @ arunsb: ~ #

B] besoin d’exporter quelques variables globales utilisées par RPM —

root @ arunsb: ~ # export RPM_BUILD_DIR = / usr / src / redhat / BUILD /
root @ arunsb: ~ # export RPM_SOURCE_DIR = / usr / src / redhat / SOURCES /

Etape 1] Créez Specification (SPEC) du fichier ~

root @ arunsb: ~ # head-n 50 / usr / src / redhat / SPECS / openlsm.spec
# Authority: Arun Bagul

# RPM_BUILD_DIR / usr / src / redhat / BUILD /
# RPM_SOURCE_DIR / usr / src / redhat / SOURCES /

% define MY_PREFIX / usr / local / openlsm /

# # Préambule Section –
Nom: openlsm
Version: 0.99
Vendeur: IndianGNU.org & openlsm
Sortie: r45
Group: System Environment / Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Résumé: openlsm Admin Serveur
Licence: GPL

description%
openlsm Admin Server est gratuit & web open source basé panneau de commande de Linux, les systèmes Unix.

# # Préparation Section –
prep%

rm-rf $ (RPM_BUILD_DIR) / openlsm-0.99-R45 /
tar xvfz RPM_SOURCE_DIR $ () / openlsm-0.99-r45.tar.gz-C $ () RPM_BUILD_DIR

# # Construction Section –
% build

./openlsm-0.99-r45 cd /
. / configure-prefix = / usr / local / openlsm-with-mysql = / usr / bin / mysql_config-enable-pcre internes-avec-geoip = / usr-with-ldap = / usr-enable-trace
faire

# # Installez Section –
% install

./openlsm-0.99-r45 cd /
make install

# # # # Files section –
% files

/ usr / local / openlsm
/ usr / local / openlsm / etc / openlsm / openlsm.conf
/ usr / local / openlsm / etc / openlsm / openlsm.conf.perf_sample
/ usr / local / openlsm / etc / openlsm ssl /
/ usr / local / openlsm / bin / openlsm-config
….
… ..
… .. liste des fichiers installés par paquet
root @ arunsb: ~ #

* Comment créer la liste de fichiers?

Création de la liste des fichiers est procédé manuel. Ce que j’ai fait est j’ai pris la liste des fichiers de mon répertoire manuel préfixe installé avec la commande find tel qu’indiqué ci-dessous …

root @ arunsb: ~ # find / usr / local / openlsm /-type f-ou-type d

Etape 2] A partir de la Construction ~

root @ arunsb: ~ # cd / usr / src / redhat / SPECS
root @ arunsb: / usr / src / redhat / SPECS # ls-l openlsm.spec
-rw-r-r-1 root root 12938 Dec 2 17:21 openlsm.spec
root @ arunsb: / usr / src / redhat / SPECS #

root @ arunsb: / usr / src / redhat / SPECS # rpmbuild-ba openlsm.spec

….
… ..

Vérification des fichiers non emballés (s): / usr / lib / rpm / check-files% () buildroot
A écrit: / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
A écrit: / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS # echo $?
0

root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-rw-r-r-1 root root 3206 Dec 2 17:50 / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-rw-r-r-1 root root 3052868 Dec 2 17:50 / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS #

* Source et paquet binaire créé!

** Voyons ce qui s’est passé dans “/ usr / src / redhat / répertoire”

root @ arunsb: / usr / src / redhat # pwd
/ usr / src / redhat
root @ arunsb: / usr / src / redhat # ls
Construire des RPM SOURCES SPECS SRPMS
root @ arunsb: / usr / src / redhat # ls BUILD /
openlsm-0.99-r45 <== Source extrait ici dans le cadre des instructions de compilation de dire la spécification de fichier “openlsm.spec”
root @ arunsb: / usr / src / redhat # ls SOURCES
openlsm-0.99-r45.tar.gz <== openlsm original »-0.99-r45.tar.gz« source fichier copié par moi
root @ arunsb: / usr / src / redhat # ls RPMS /
athlon i386 i486 i586 i686 noarch
root @ arunsb: / usr / src / redhat # ls RPMS/i386 /
openlsm-0.99-r45.i386.rpm <== paquet rpm binaire créé!
root @ arunsb: / usr / src / redhat # ls SRPMS /
openlsm-0.99-r45.src.rpm <== paquet RPM source créé!
root @ arunsb: / usr / src / redhat #

Etape 3] Maintenant, installez le paquet et de le tester ~

root @ arunsb: / usr / src / redhat RPMS/i386/openlsm-0.99-r45.i386.rpm # cp / home / arunsb /

root @ arunsb: / usr / src / redhat # cd / home / arunsb /
root @ arunsb: ~ # ls
openlsm-0.99-r45.i386.rpm
root @ arunsb: ~ # rpm-ivh openlsm-0.99-r45.i386.rpm
Preparing … ########################################### [100%]
1: ########################################### openlsm [100%]
root @ arunsb: ~ # ls / usr / local / openlsm /
etc contrib bin comprennent var scripts lib sbin part
root @ arunsb: ~ #

** Démarrage du serveur openlsm ~

root @ arunsb: ~ # / usr / local / openlsm / contrib / redhat openlsm-start
* À partir du serveur admin openlsm: openlsm
. [OK]
root @ arunsb: ~ #
root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm statut redhat
openlsm (pid 21607) est en cours d’exécution …
root @ arunsb: ~ #

root @ arunsb: ~ # rpm-q openlsm-0.99-R45
openlsm-0.99-R45
root @ arunsb: ~ #

root @ arunsb: ~ # rpm-ql openlsm-0.99-r45
..

root @ arunsb: ~ # rpm-openlsm qiv-0.99-R45
Nom: Mouvements openlsm: (not relocatable)
Version: 0.99 du vendeur: IndianGNU.org & openlsm
Sortie: r45 Build Date: Wed 02 Dec 2009 05:50:54 PM CEST
Install Date: mer 02 Dec 2009 06:06:23 PM CEST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Group: System Environment / Daemons Source RPM: openlsm-0.99-r45.src.rpm
Taille: 14877918 Licence: GPL
Signature: (none)
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Résumé: openlsm Admin Serveur
Description:
openlsm Admin Server est gratuit & web open source basé panneau de commande de Linux, les systèmes Unix.
root @ arunsb: ~ #

** REMARQUE ~ Cet article ne contient pas d’informations sur la façon de définir les micros, comment copier des documents, pages de manuel pour l’emplacement par défaut, comment définir permision et etc appropriation Je vais couvrir ce sujet dans l’article suivant sur RPM.

** S’il vous plaît consulter l’article anglais ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/

Observe,
Arun Bagul

Similar Posts:

Be Sociable, Share!

Laisser un commentaire

Your email address will not be published. Required fields are marked *