Guide d'écriture de fichiers de spécifications pour les scripts de production de packages RPM

Le fichier de spécifications est utilisé pour créer des packages RPM et contient de nombreuses informations sur le progiciel, telles que le nom, la version, la catégorie, le résumé de la description du progiciel, les instructions à exécuter lors de la création, les opérations à effectuer lors de l'installation, et les fichiers à inclure dans le progiciel. Listes et plus encore. Les exemples sont les suivants :

Name: myprogram
Version: 1.0
Release: 1
Vendor: Jaun
Summary: My program 

License: GPL
URL: http://myprogram.com
Source0: myprogram-1.0.tar.gz
Group: Development/Tools
BuildRequires: gcc

%description
My program is a simple example program.

%prep
%setup -q

%build
./configure
make

%install
make install DESTDIR=%{
    
    buildroot}

%clean
rm -rf %{
    
    buildroot}

%files
%defattr(-,root,root)
/sbin/myprogram

%post
/sbin/ldconfig /sbin/myprogram

%preun
/sbin/ldconfig /sbin/myprogram

%postun
/sbin/ldconfig

%changelog

Ce qui suit est une introduction à chaque classification de paramètres

1. Description du progiciel

1.1、Nom:

Le nom du progiciel peut être référencé ultérieurement %{name}. Le progiciel RPM final utilise ce nom, ce numéro de version, ce numéro de version et ce numéro de système pour nommer le progiciel.

1.2、Version

Le numéro de version du progiciel pourra %{version}être référencé à l'avenir. Le numéro de version ne sera augmenté que lorsque le progiciel aura changé de manière significative par rapport à avant.

1.3、Publication

Le numéro de série d'émission réel indique le temps d'emballage, le nombre de fois et d'autres informations, qui peuvent être référencées ultérieurement %{release}.

1.4、Vendeur

Le nom du développeur du logiciel.

1.5、Résumé

Résumez autant d’informations que possible sur le colis en une phrase

1.6、Licence/Droit d'auteur

La licence de distribution du progiciel, c'est-à-dire la méthode d'autorisation du logiciel, est généralement GPL. Les autres licences courantes sont : GPL (logiciel libre), BSD, MIT, Public Domain (domaine public), Distribuable (contribution), commerciale (commercial ), Partager, etc.

1.7、URL

Le site Web, le blog, l’e-mail et d’autres informations de l’éditeur peuvent être placés ici

1.8、Source

Les packages de code source sont généralement référencés à l'aide de Source0, Source1..., et peuvent également être %{source0}référencés ultérieurement %{source1}.

1.9、Groupe

Pour le regroupement de logiciels, il est recommandé d'utiliser un regroupement standard. Les regroupements courants sont les suivants :

Groupe expliquer
Divertissements/Jeux (Divertissement/Jeux)
Divertissements/Graphismes (Divertissement/Graphisme)
Applications/Archivage (Demande/Documentation)
Applications/Communications (Applications/Communications)
Applications/Bases de données (application/base de données)
Applications/Éditeurs (Application/Éditeur)
Applications/émulateurs (Application/Émulateur)
Applications/Ingénierie (Ingénierie des applications)
Demandes/Fichier (Demande/Dossier)
Applications/Internet (Applications/Internet)
Applications/Multimédia (Applications/Multimédia)
Applications/Productivité (Application/Produit)
Applications/Publication (Application/Impression)
Applications/Système (système opérateur)
Applications/Texte (application/texte)
Développement/Débogueurs (Développement/Débogueur)
Développement/Langues (Langage de développement)
Développement/Bibliothèques (Bibliothèque de développement/fonctions)
Développement/Système (système de développement)
Outils de développement (outils de développement)
Documentation (Documentation)
Environnement/Base du système (Environnement système/base)
Environnement système/démons (Environnement système/Gardien)
Environnement système/noyau (Environnement système/noyau)
Environnement système/Bibliothèques (Environnement système/bibliothèque de fonctions)
Environnement système/Shell (Environnement système/interface)
Interface utilisateur/ordinateurs de bureau (interface utilisateur/bureau)
Interface utilisateur/X (Interface utilisateur/Fenêtre X)
Interface utilisateur/Support matériel X (Interface utilisateur/Support matériel X)

1.10、Mise à jour

Chemin du package de code source du correctif, vous pouvez utiliser Patch0, Patch1..., vous pouvez également utiliser %{patch0}, %{patch1}pour y faire référence plus tard.

1.11、BuildRoot

Le répertoire racine lors de l'installation ou de la compilation. Lors de la génération du package, si ce répertoire n'est pas spécifié comme répertoire racine virtuel, le répertoire racine du système sera utilisé comme répertoire racine d'installation lors de la phase d'installation.

1.12、Nécessite

Le package RPM actuellement généré doit s'appuyer sur le nom du package logiciel. Utilisez >= ou <= pour indiquer supérieur ou égal ou inférieur ou égal à la version spécifiée. Les symboles sont séparés par des espaces des deux côtés. Différent les progiciels sont également séparés par des espaces.

1.13、Emballeur

Informations sur le conditionneur

1.14、%description

Description détaillée du logiciel, peut être écrite sur plusieurs lignes

1.15、BuildArch

Fait référence à l'architecture du processeur cible pour la compilation. L'indicateur noarch n'est pas spécifié, mais le contenu de /usr/lib/rpm/marcros est généralement utilisé comme valeur par défaut.

2. Opérations à chaque étape de génération du progiciel

2.1、%prep

Dans la phase de compilation préparatoire, vous pouvez utiliser un script pour décompresser le package de code source. S'il existe un correctif, le correctif sera également traité, puis les informations de configuration de compilation seront générées (la plupart des logiciels exécuteront le script de configuration à ce moment-là). étape pour la vérification de la compilation); en plus d'exécuter les commandes macro définies par RPM (en commençant par %), vous pouvez également exécuter la commande SHELL. La commande peut avoir plusieurs lignes, comme la commande de déballage tar que nous écrivons souvent.

2.2、%build

Au cours de la phase de compilation, la commande à exécuter consiste à générer des services de progiciel. La plupart des logiciels effectueront l'opération de création à ce stade.

2.3、%install

Pendant la phase d'installation, la plupart des logiciels effectueront l'opération make install à ce stade.

2.4、%clean

Lors de la phase de nettoyage, une fois l'installation terminée, les fichiers temporaires générés par les étapes ci-dessus seront nettoyés.

2.5、%check

test du package RPM.

3. Packager les scripts d'application

3.1、%pre

Script de pré-installation, c'est-à-dire avant l'installation du package RPM, exécutez d'abord cette partie du script, comme la création d'un compte désigné, etc.

3.2、%post

Script de post-installation, c'est-à-dire qu'une fois le package RPM installé avec succès, cette partie du script continuera à être exécutée, comme la configuration du démarrage, le démarrage des services, etc.

3.3、%preun

Désinstallez le script de pré-exécution, c'est-à-dire avant la désinstallation du package RPM, exécutez d'abord cette partie du script, comme l'arrêt des services, l'annulation du démarrage, etc.

3.4、%postun

Script de post-désinstallation, c'est-à-dire qu'une fois le package RPM désinstallé avec succès, cette partie du script continuera à être exécutée, comme la suppression du compte spécifié, etc.

4. Informations sur la configuration du package

4.1、%files

Liste des fichiers du package, les fichiers qui doivent être placés dans le package RPM sont répertoriés ici, qui peuvent être un répertoire

4.2、%changelog

Journal de change, qui peut indiquer les informations à demander pour cet emballage

4.3、%doc

Indique qu'il s'agit d'un fichier de documentation, donc s'il est installé avec --exclusivedocs, ce type de fichier ne sera pas installé.

4.4、%dir

Indique que le contenu du chemin du répertoire dir est entré dans le progiciel RPM.

4.5、%config(noreplace)

Ce fichier de configuration n'écrasera pas les fichiers existants (les fichiers du package RPM existeront dans le système sous le nom .rpmnew. Lors de la désinstallation, le fichier de configuration dans le système sera enregistré sous le nom .rpmsave. Sans cette option, les fichiers du package RPM sera enregistré sous .rpmsave lors de l'installation. .rpmorig existe dans le système) écrase le fichier existant (non modifié) et crée un nouveau fichier avec le suffixe d'extension .rpmnew (modifié).

4.6、%attr

Contrôler les autorisations des fichiers

Documentation de référence

1、https://betheme.net/a/12582767.html?action=onClick

2、http://www.someapp.cn/article/14.html

3、http://blog.chinaunix.net/uid-30242191-id-5777389.html

Je suppose que tu aimes

Origine blog.csdn.net/yuelai_217/article/details/130722081
conseillé
Classement