Déployer des applications Perl



Documents pareils
Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

La création d un paquet Debian. Aurélien Jarno. Journées du Logiciel Libre. 15 octobre 2005

Automatisation de l administration système

Gestion du projet pour qu'il soit pérenne et collaboratif

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

sshgate Patrick Guiran Chef de projet support

MANUEL UTILISATEUR KIWI BACKUP V 3

Procédure de sauvegarde - Cobian Backup

Notes pour l'installation d'une version de Eprints sur une machine CentOS4.2 Stéphanie Lanthier Le jeudi 17 février 2006

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Tutoriel code::blocks

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

Projet Administration Réseaux

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Support de cours. Administrer Linux avec Webmin. 2003, Sébastien Namèche - 1

e-obs : Conception et utilisation Rémy Decoupes Ether // ums3365

Serveur de sauvegardes incrémental

Aide-Mémoire unix. 9 février 2009

Statistiques réseau et système avec CACTI

2013 Installation de GLPI-OCS. Florian MICHEL BTS SIO LYCEE SAINTE URSULE

Migration vers l'open-source de l infrastructure de pare-feu du campus CNRS d Orléans

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2).

Accès aux ressources informatiques de l ENSEEIHT à distance

Outils de développement collaboratif

OCS Inventory & GLPI

TP1 - Prise en main de l environnement Unix.

Request Tracker pour les Nuls. Yves Agostini - YVESAGO

Environnements et Outils de Développement Cours 1 Introduction

La tête dans les nuages

Sauvegarde automatique des données de GEPI

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

Etudiant Ella Fitzgerald

Installez Slackware sur une Dedibox SC de chez Online

Systèmes de tickets avec RT

ClariLog - Asset View Suite

Plesk Automation. Questions techniques fréquemment posées

[ GLPI et OCS pour Gentoo 2006] ArtisanMicro. Alexandre BALMES

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Chapitre 1 Windows Server

Guide simplifié pour QEMU

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

CCNA Discovery Travailler dans une PME ou chez un fournisseur de services Internet

Sauvegarde sous MAC avec serveur Samba

Installation de Vmware serveur Windows

Quelques éléments de compilation en C et makefiles

RTN / EC2LT Réseaux et Techniques Numériques. Ecole Centrale des Logiciels Libres et de Télécommunications

Créer son premier package.deb. 19 août

Innovations Majeures de la Version 4

CAHIER DE S CHARGE S Remote Workload Manager

TP Déploiement de réseaux IP sous Linux et MS Windows sur une infrastructure virtualisée

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

Profils d installation sous Drupal 7

SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Gérer ses environnements de développement avec Vagrant RMLL 2012

Situation professionnelle n X

PLATE-FORME DE CLOUD COMPUTING SLAPOS. Intégration d applications

GLPI OCS Inventory. 1. Prérequis Installer un serveur LAMP : apt-get install apache2 php5 libapache2-mod-php5 apt-get install mysql-server php5-mysql

Le système de gestion de version Git et GitHub

IFT Systèmes d exploitation - TP n 1-20%

Windows Server 2012 R2 Administration

InstallShield 2014 FICHE TECHNIQUE. Création de programmes d installation pour Microsoft Windows

Agrégation de liens xdsl sur un réseau radio

Bacula R - The Network Backup Solution

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Guide préparatif «Automatiser sa vigie sur Twitter avec R» 1

C.M. 1 & 2 : Prise en main de Linux

Architecture de la plateforme SBC

Déployer une application Web avec WebMatrix et Ma Plateforme Web

Manuel du Desktop Sharing

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

HAYLEM Technologies Inc.

Nicolas ANGENIEUX GISMARTWARE

Projet De Stijl Plate-forme pour robots mobiles

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

Construction de logiciel et packaging

Automatisation de l administration système avec

Les jeux sous GNU/Linux progressent

D. Déploiement par le réseau

Serveur DNS et DHCP couplé à LDAP Debian GNU/Linux

Joomla! Création et administration d'un site web - Version numérique

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Plan. Excalibur. Les opérations sur données. SQL or not SQL? Backups. Inter opérabilité

Learning Object Metadata

Windows 7 Administration de postes de travail dans un domaine Active Directory

Installation et configuration d OCS/GLPI sur un Serveur Debian

Tutoriel QSOS. Version /02/2013

IBM InfoSphere Master Data Management Collaboration Server Version Guide d'installation GC

Bluetooth pour Windows

Talend Technical Note

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

Station de gestion Dell OpenManage Guide d'installation de la version 7.1

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Travaux Pratiques sur GRID 5000

Mise en place du médiateur pour. Application Server avec le logiciel ALERT.

Linux est-il crédible pour le PC familial? Xavier Passot N7 I76 Pour l AI N7 le 11 mars 2010

Symphony. Procédures d installation : Mise à jour vers une version plus récente

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Transcription:

Déployer des applications Perl Vincent Pit 2012-03-05 1

Structure d une distribution Perl code source des modules $ find Mon-Module-0.01 -type f sort Mon-Module-0.01/bin/script Mon-Module-0.01/Changes Mon-Module-0.01/lib/Mon/Module.pm Mon-Module-0.01/Makefile.PL Mon-Module-0.01/MANIFEST Mon-Module-0.01/META.yml Mon-Module-0.01/README Mon-Module-0.01/t/00-load.t Mon-Module-0.01/t/91-pod.t Mon-Module-0.01/t/92-pod-coverage.t Distributions 2

Structure d une distribution Perl scripts $ find Mon-Module-0.01 -type f sort Mon-Module-0.01/bin/script Mon-Module-0.01/Changes Mon-Module-0.01/lib/Mon/Module.pm Mon-Module-0.01/Makefile.PL Mon-Module-0.01/MANIFEST Mon-Module-0.01/META.yml Mon-Module-0.01/README Mon-Module-0.01/t/00-load.t Mon-Module-0.01/t/91-pod.t Mon-Module-0.01/t/92-pod-coverage.t Distributions 2

Structure d une distribution Perl tests $ find Mon-Module-0.01 -type f sort Mon-Module-0.01/bin/script Mon-Module-0.01/Changes Mon-Module-0.01/lib/Mon/Module.pm Mon-Module-0.01/Makefile.PL Mon-Module-0.01/MANIFEST Mon-Module-0.01/META.yml Mon-Module-0.01/README Mon-Module-0.01/t/00-load.t Mon-Module-0.01/t/91-pod.t Mon-Module-0.01/t/92-pod-coverage.t Distributions 2

Structure d une distribution Perl script de configuration $ find Mon-Module-0.01 -type f sort Mon-Module-0.01/bin/script Mon-Module-0.01/Changes Mon-Module-0.01/lib/Mon/Module.pm Mon-Module-0.01/Makefile.PL Mon-Module-0.01/MANIFEST Mon-Module-0.01/META.yml Mon-Module-0.01/README Mon-Module-0.01/t/00-load.t Mon-Module-0.01/t/91-pod.t Mon-Module-0.01/t/92-pod-coverage.t Distributions 2

Structure d une distribution Perl fichier meta (META.{json,yml}) $ find Mon-Module-0.01 -type f sort Mon-Module-0.01/bin/script Mon-Module-0.01/Changes Mon-Module-0.01/lib/Mon/Module.pm Mon-Module-0.01/Makefile.PL Mon-Module-0.01/MANIFEST Mon-Module-0.01/META.yml Mon-Module-0.01/README Mon-Module-0.01/t/00-load.t Mon-Module-0.01/t/91-pod.t Mon-Module-0.01/t/92-pod-coverage.t Distributions 2

Structure d une distribution Perl MANIFEST $ find Mon-Module-0.01 -type f sort Mon-Module-0.01/bin/script Mon-Module-0.01/Changes Mon-Module-0.01/lib/Mon/Module.pm Mon-Module-0.01/Makefile.PL Mon-Module-0.01/MANIFEST Mon-Module-0.01/META.yml Mon-Module-0.01/README Mon-Module-0.01/t/00-load.t Mon-Module-0.01/t/91-pod.t Mon-Module-0.01/t/92-pod-coverage.t Distributions 2

Structure d une distribution Perl autres (README, changelog, templates, code C/XS...) $ find Mon-Module-0.01 -type f sort Mon-Module-0.01/bin/script Mon-Module-0.01/Changes Mon-Module-0.01/lib/Mon/Module.pm Mon-Module-0.01/Makefile.PL Mon-Module-0.01/MANIFEST Mon-Module-0.01/META.yml Mon-Module-0.01/README Mon-Module-0.01/t/00-load.t Mon-Module-0.01/t/91-pod.t Mon-Module-0.01/t/92-pod-coverage.t Distributions 2

ExtUtils::MakeMaker Script de configuration : Makefile.PL Crée un Makefile pour GNU make Dans la distribution standard perl depuis 1994 Invocation : $ perl Makefile.PL $ make $ make test $ make install Distributions 3

ExtUtils::MakeMaker Exemple : $ cat Makefile.PL use strict; use warnings; use ExtUtils::MakeMaker; WriteMakefile( NAME => Mon::Module, AUTHOR => Vincent Pit <perl@profvince.com>, LICENSE => perl, VERSION_FROM => lib/mon/module.pm, ABSTRACT_FROM => lib/mon/module.pm, EXE_FILES => [ bin/script ], MIN_PERL_VERSION => 5.012, PREREQ_PM => { Moose => 1.21 }, ); Distributions 4

Module::Install Script de configuration : Makefile.PL Surcouche de ExtUtils::MakeMaker Pas dans la distribution standard perl, donc à inclure dans le répertoire inc de votre distribution Invocation : idem que ExtUtils::MakeMaker Distributions 5

Module::Install Exemple : $ cat Makefile.PL use strict; use warnings; use inc::module::install; name Mon-Module ; author Vincent Pit <perl@profvince.com> ; license perl ; version_from lib/mon/module.pm ; abstract_from lib/mon/module.pm ; install_script bin/script ; perl_version 5.012 ; requires Moose => 1.21 ; WriteAll; Distributions 6

Module::Build Script de configuration : Build.PL Implémenté complètement en Perl Dans la distribution standard depuis perl 5.10 Invocation : $ perl Build.PL $./Build $./Build test $./Build install Distributions 7

Module::Build Exemple : $ cat Build.PL use strict; use warnings; use Module::Build; my $build = Module::Build->new( module_name => Mon::Module, dist_author => Vincent Pit <perl@profvince.com>, license => perl, script_files => [ bin/script ]; requires => { perl => 5.014, Moose => 1.21, }, ); $build->create_build_script; Distributions 8

Déploiement d une distribution Perl Comment installer cette distribution sur une machine? Sur N machines? Déploiement 9

Via le CPAN Uploader sa distribution sur PAUSE (http://pause.perl.org) L installer avec un client CPAN : $ cpan Mon::Module # core depuis 1997 $ cpanp -i Mon::Module # core depuis perl 5.10 $ wget http://cpanmin.us -O - perl - Mon::Module Déploiement 10

Via le CPAN Uploader sa distribution sur PAUSE (http://pause.perl.org) L installer avec un client CPAN : $ cpan Mon::Module # core depuis 1997 $ cpanp -i Mon::Module # core depuis perl 5.10 $ wget http://cpanmin.us -O - perl - Mon::Module Mais on n a pas d accès internet sur toutes les machines... Déploiement 10

Via un miroir CPAN privé CPAN::Mini crée et synchronise une copie partielle ou totale du CPAN CPAN::Mini::Inject peut alors injecter votre distribution dans le miroir local Les clients CPAN n ont plus qu à utiliser ce miroir comme source Déploiement 11

Via un miroir CPAN privé CPAN::Mini crée et synchronise une copie partielle ou totale du CPAN CPAN::Mini::Inject peut alors injecter votre distribution dans le miroir local Les clients CPAN n ont plus qu à utiliser ce miroir comme source Mais mes utilisateurs ne veulent pas utiliser de client CPAN... Déploiement 11

Via auto_install La fonction auto_install de Module::Install rajoute au Makefile des cibles qui installent les dépendances : $ perl Makefile.PL $ make installdeps $ make $ make test $ make install Permet aussi de choisir intéractivement des fonctionnalités facultatives Déploiement 12

Via auto_install La fonction auto_install de Module::Install rajoute au Makefile des cibles qui installent les dépendances : $ perl Makefile.PL $ make installdeps $ make $ make test $ make install Permet aussi de choisir intéractivement des fonctionnalités facultatives Mais je veux plutôt installer les paquets de ma distribution... Déploiement 12

Via le gestionnaire de paquets du système L utilitaire cpan2dist de CPANPLUS peut automatiser la création de paquets : $ dists="deb Fedora Mageia Slackware Arch Gentoo SUSE" $ for dist in $dists; do \ cpan2dist --format="cpanplus::dist::$dist" \ --buildprereq Mon::Module ; \ done Ces paquets peuvent être incorporés à un dépot local Déploiement 13

Via le gestionnaire de paquets du système L utilitaire cpan2dist de CPANPLUS peut automatiser la création de paquets : $ dists="deb Fedora Mageia Slackware Arch Gentoo SUSE" $ for dist in $dists; do \ cpan2dist --format="cpanplus::dist::$dist" \ --buildprereq Mon::Module ; \ done Ces paquets peuvent être incorporés à un dépot local Mais je veux distribuer un seul fichier... Déploiement 13

Via App::FatPacker App::FatPacker analyse les dépendances d un script Perl et les rassemble en un seul fichier : $ fatpack trace script.pl $ fatpack tree $(fatpack packlists-for \ `cat fatpacker.trace`) $ (echo #!/usr/bin/env perl ; fatpack file; \ cat script.pl) > script-packed.pl $ rm -rf fatpacker.trace fatlib Déploiement 14

Via App::FatPacker App::FatPacker analyse les dépendances d un script Perl et les rassemble en un seul fichier : $ fatpack trace script.pl $ fatpack tree $(fatpack packlists-for \ `cat fatpacker.trace`) $ (echo #!/usr/bin/env perl ; fatpack file; \ cat script.pl) > script-packed.pl $ rm -rf fatpacker.trace fatlib Mais mes utilisateurs ne veulent pas installer perl... Déploiement 14

Via PAR L utilitaire pp de PAR::Packer peut créer un exécutable contenant perl et toutes les dépendances d un script : $ pp -B -o script.exe script.pl $./script.exe Déploiement 15

Merci! Déploiement 16