chkconfig Portable off Sommaire ● Introduction ✔ RPM : Définition ✔ Pourquoi utiliser RPM ? ● Création de paquetages ✔ Pré-requis ✔ Ça commence ! ✔

Slides:



Advertisements
Présentations similaires
Master 1 ère année Sécurité des Systèmes Informatique 1 Compilation à partir du code source  Pouvoir installer un logiciel avant qu’il ne soit packager.
Advertisements

Développement et maintenance sur le projet RefPack
CEA DSM Irfu Mises à jour de sécurité… … et la pratique F.SCHAER.
Developpement Process « Coding party !! » Tony Carnal Altran.
Acteurs identifiées SteActeurFonctionCommentaire MPICALLStéphane MPICALLMyriamValidationContôle/financement MPICALLSarahService client Backup Sterna MPICALLSternaService.
Outil Système Complet d'Assistance Réseau CRDP de l'académie de Lyon Documentation librement inspirée de la présentation.
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
CREER SON SERVEUR DOMESTIQUE LIBRE Régis VINCENT – Octobre 2011 Benjamin.
Projet tuteuré 2009 Les clients légers Alexandre Cédric Joël Benjamin.
Les Logiciels Libres en pratique Samedi 25 mars 2006 Toulibre
Organisation du projet PostgreSQL. À propos des auteurs ● Guillaume Lelarge ● ●
Formation 1 - Formation INTEGRATION CONTINUE Intégration continue et méthodes agile.
Médiathèque d'Auray – Association RhizomesVendredi 14 mars 2008 Le système d'exploitation GNU/Linux.
chkconfig Tel_Portable off Agenda ● Introduction – Mode de fonctionnement – Définitions ● Utilisation de base – Les commandes principales ● Utilisation.
Dans les coulisses d'une distribution Linux Juillet 2011 Michael Scherer.
1 Rapide introduction à la compilation d'un programme « Use the source, Luke! » David Mentré.
Fedora 11 Party de lancement Jean-Francois Saucier
Sylvestre Ledru Scilab Consortium / Digiteo 3 juillet 2008 Passage de Scilab sous une licence libre.
Séminaire Novembre 2006 Séminaire Novembre 2006 Bilan et perspectives.
PLF, histoire d'un dépôt pas comme les autres pour Mandriva Juillet 2010 Michael Scherer.
1 / 15 Animation - 3 décembre 2008 Les Logiciels libres éducatifs, Des Solutions pour les écoles.
1 Y a-t-il une place pour Opensocial dans l'enseignement supérieur ? David Verdin RENATER JRES - Toulouse – novembre 2011.
Déploiement du service Pack Business Entreprises
AMUE – SIFAC Intégration Fichier Mouvements BDF
Gestion des accès C’est pour chez-nous 29 mai 2017.
Réaliser un CD lecteur de salon (photos ou vidéos) pouvant être lu
PPE : Gestion de parc informatique
Sécurité - ASA8.x - Import du Plug-in VNC pour utilisation dans WebVPN
Formation Utiliser xUbuntu
Sécurité - ASA8.x - Import du Plug-in RDP pour utilisation dans WebVPN
Sécurité - Cisco ASA Outil de capture WebVPN
Logiciel de gestion des adhérents
IS-IS - Adjacence Point à Point
Séminaire EOLE Beaune Septembre 2007
09/05/2018.
Installer linux sur VMware
19/05/2018.
Collecte de données CAPI
Batterie TSE.
Préparation de mise à jour
Des outils pour le développement logiciel
Commande show ip eigrp topology
évolutions et perspectives
Lustre au DAPNIA.
PROTEOMIQUE.
RIP - Configuration des Extensions.
Solution de déploiement logiciel
Présentation OCS-Inventory au LAPP
BENCHMARK Programmes Start’ups – Grands comptes
Quand on aime, on ne compte pas...
Prise en main Emmanuel Braux Institut Mines Telecom / Télécom Bretagne
Module 2 : Implémentation d'une structure de forêt et de domaine Active Directory.
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
BTS SIO 2ème année SLAM SISR
Système d’exploitation UNIX
La facture électronique
La facture électronique
Vue d'ensemble Préparation de l'installation
Communication Assistant V2.0
Prélude CS Mode client-serveur
GESTION DES INTERVENTIONS. Schéma d’une intervention de maintenance : de maintenance :  Événement prévu  Événement imprévu Maintenance préventive Maintenance.
Bshare – optimisation des processus de gestion documentaire
Module 15 : Implémentation de clients Windows 2000
Etat d'avancement: calendrier
Formation SpeechExec Enterprise Dictate
ENDNOTE : UTILITÉ, INSTALLATION, STRUCTURE DES FICHIERS…
Journée 2ème: introduction
Contenu Systèmes de test parallèles Multithreading Synchronisation
Présentation des missions en entreprise et formation
Transcription de la présentation:

chkconfig Portable off

Sommaire ● Introduction ✔ RPM : Définition ✔ Pourquoi utiliser RPM ? ● Création de paquetages ✔ Pré-requis ✔ Ça commence ! ✔ Les Macros ✔ Le fichier SPEC En-tête Requires & BuildRequires %prep, %build, %install %files %changelog ✔ Construction du paquetage : étapes ✔ rpmlint : qualité ✔ mock : contrôle et qualité ● Mise à disposition – Participer au Projet Fedora ● Inscription ● Demande de revue ● Soumission du paquet ● Et ensuite ?

Présentation

Système de gestion de paquets logiciels À l'origine : RedHat Package Manager Acronyme de : RPM Package Manager RPM : Définition

● Pour l'administrateur – installation – gestion des dépendances – Suivi des mises à jour ● Pour l'utilisateur – pas de compilation – configuration minimum Pourquoi utiliser RPM ?

● Pour la sécurité – paquets signés numériquement – Paquets binaires ● Pour le packageur – facilité de mise à jour – facilité de distribution Pourquoi utiliser RPM ?

Création de paquetages

● RPM binaire : un RPM destiné à être installé sur un système particulier (distribution, architecture, version) ● RPM Source : RPM contenant le nécessaire à la reconstruction du ou des RPM binaires ● Fichier SPEC : fichier décrivant les opérations nécessaire à la construction des RPM binaires (il est inclus dans le SRPM) Définitions

● Création d'un utilisateur spécifique ● Installation des outils de développement génériques (gcc, g++, sed, make, patch,...) : le groupe « Development Tools » ● Installation des outils de développement RPM : rpmbuild, rpmdevtools,... Pré-requis

Depuis le compte « builder » : ➢ rpmdev-setuptree ➢ cd ~/rpmbuild/SPECS ➢ rpmdev-newspec nom_du_fichier Ensuite, amusez-vous ! Ça commence !

Le fichier SPEC

● Automatiser certaines tâches ● Éviter les erreurs ● Standardiser les options de compilation ● /usr/lib/rpm/macros ● /usr/lib/rpm/i386-linux/macros ● /etc/rpm/* ● %{name} ● %{version} ● %{_sysconfdir} ● %{_libdir} ● %{_bindir} ● %{_datadir} ● %{_localstatedir} ● %find_lang Les Macros

Name: nom_du_spec Version: Release: 1%{?dist} Summary: Group: License: URL: Source0: BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root- %(%{__id_u} -n) BuildRequires Requires %description En-tête BuildRoot : peut-être : %(mktemp -ud %{_tmppath}/%{name}- %{version}-%{release}-XXXXXX)

Name: ksplash-engine-moodin Version: Release: 3%{?dist} Summary: KDE ksplash Moodin engine Group: User Interface/Desktops License: GPL URL: Source0: BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root- %(%{__id_u} -n) BuildRequires Requires %description En-tête - Moodin BuildRoot : peut-être : %(mktemp -ud %{_tmppath}/%{name}- %{version}-%{release}-XXXXXX)

Requires : Paquetages dont dépend le paquet courant, pour son bon fonctionnement (kdebase pour un logiciel KDE, kernel pour un module noyau,...) Remarque : beaucoup de dépendances sont auto-détectées par rpmbuild. BuildRequires (BR) Paquetages dont dépend le paquet courant pour être correctement compilé (kdebase-devel pour un logiciel KDE, kernel-devel pour un module noyau,...) Requires & BuildRequires

%prep %setup -q Compilation - %build %build %configure make %{?_smp_mflags} Installation - %install %configure make %{?_smp_mflags} make install DESTDIR=$RPM_BUILD_ROOT Préparation - %prep Optionnel - %check Test de non régression. Exemple : make test

%files %defattr(-,root,root,-) %doc À retenir : %{_libdir} -> bibliothèques (/usr/lib | /usr/lib64) %{_bindir} -> exécutables (/usr/bin) %{_sysconfdir} -> fichiers de configuration (/etc) %{_datadir} -> /usr/share %{_localstatedir} --> /var %find_lang et %files -f %{name}.lang %exclude %config -> identifie un fichier comme fichier de configuration, permet de gérer le traitement des sauvegardes (.rpmsave et.rpmnew) Fichiers - %files

%post Cette section contient tout ce qui doit être fait après l'installation du paquetage %preun Cette section contient tout ce qui doit être fait avant la désinstallation du paquetage %postun %pre Cette section contient tout ce qui doit être fait avant l'installation du paquetage Cette section contient tout ce qui doit être fait après la désinstallation du paquetage

Installation %pre de la version 1 (avec $1 = 1) => copie des fichiers %post de la version 2 (avec $1 = 1)

Mise à jour %pre de la version 2 (avec $1 = 2) => copie des fichiers %post de la version 2 (avec $1 = 2) %preun de la version 1 (avec $1 = 1) => nettoyage des fichiers (si besoin) %postun de la version 1 (avec $1 = 1)

Désinstallation %preun de la version 1 (avec $1 = 0) => nettoyage des fichiers %postun de la version 1 (avec $1 = 0)

%changelog * Sat Jun Johan Cwiklinski Since new version is now available in many languages, we must use the find_lang macro * Thu Jun Christophe Polyte Updated to new version * Wed Jun Remi Collet We must use macros everywhere * Mon Jun Johan Cwiklinski Some files should not be excluded * Fri Jun Johan Cwiklinski Initial RPM creation %changelog

Utiliser la macro %find_lang dans la section %install Passer le fichier en argument à %files : %files -f %{name}.lang En cas de problèmes avec %find_lang, utiliser %lang Les fichiers de langues

Construction & Vérifications

Réglage des patches, des BR,... (%prep) rpmbuild -bp Compilation (%build) rpmbuild -bc --short-circuit Empaquetage, contrôle des fichiers (%install et %files) rpmbuild -bi --short-circuit Contrôle des fichiers (%files) rpmbuild -bl --short-circuit Construction - Étapes

Les RPM binaires (%prep, %build, %install...) rpmbuild -bb Le RPM des sources (aucune compilation) rpmbuild -bs Les RPM binaires et le RPM des sources rpmbuild -ba Construction des paquets

rpmlint est fourni par le paquet éponyme ● vérification des droits des fichiers ● vérification des emplacements d'installation ● pas de fichiers de développement dans les paquets binaires Vérification - rpmlint

Construction de votre paquet dans un environnement dédié et sécurisé ● Installation de zéro : vérification des BuildRequires ● Environnement chrooté : pas de risque pour le système installé ● Possibilité de construire des paquets pour des versions antérieures Vérification - mock

Participer au Projet Fedora (distribution des paquetages)

● Ouverture d'un compte Wiki ● Signature du contrat de licence (CLA) ● Inscription au système de compte Fedora (clés GPG et SSH requises) ● Inscription sur le Bugzilla de RedHat ● Inscription aux listes de diffusion de développement Inscription

● Ouverture d'une entrée sur le Bugzilla pour le nouveau paquet ● Corrections éventuelles en fonction des commentaires laissés ● Attente d'approbation du paquet ● Demande de sponsoring (pour le premier paquetage notamment) Demande de revue Bugzilla est fabuleux ;-)

Une fois votre paquet approuvé : ● Demande de la création des dossiers sur le CVS (version n, n-1 et devel) ● Transmission des fichiers vers le CVS Soumission du paquetage

Une fois le paquet sur le serveur CVS : ● Requête auprès du serveur de « build » pour chaque version Fedora ● Vérification du build => Le nouveau paquetage sera disponible, après signature, sur les dépôts officiels Publication

● Maintenance du paquet ● Traitement des bogues déclarés par les utilisateurs ● Travail avec le projet (upstream) ● Mise à jour des nouvelles versions ou intégration des correctifs Et ensuite ?

Questions / Réponses

Nous ne pouvons pas attendre pour vous impressionner L'équipe Merci de votre attention !