SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
YAPC::Asia 2009                            2009/09/10




                 CPAN::Packager
        ~Help to make packages from CPAN module~



                                          dann

CPAN::Packager          github.com/dann             dann
About me
•   Dann
• Creator of CPAN::Packager
• HTTP::Engine(Middleware), Mouse
    etc
•   http://github.com/dann

CPAN::Packager     github.com/dann   dann
What is CPAN::Packager?

  A tool to help you make Redhat
  or Debian packages from perl
  modules on CPAN


CPAN::Packager   github.com/dann   dann
Motivation
 • It’s very time wasting to install Catalyst,
     Plagger... a LOT of dependencies
 • different module versions on each server....
 • Can’t make packages because XXX module
     has a LOT of DEPENDENCIES...


                   Make RPM/Deb packages
             and manage them with packaging system
CPAN::Packager            github.com/dann            dann
The problem
      • cpanflute2, dh-make-perl
       • Don’t resolve module’s dependencies
      • CPANPLUS::Dist::{Deb, RPM}
       • resolve module dependency at first level
             only
         • can’t fix incorrect module’s dependencies
             manually


CPAN::Packager          github.com/dann            dann
Packaging System requirements
   • Resolve module’s dependencies
   • Can fix incorrect module dependencies
     manually
    • fix module’s incorrect dependencies with a
      configuration
    • Can skip moduledependenciesmodule has
      some incorrect
                       build if the




CPAN::Packager       github.com/dann          dann
Feature
                    and
                 How to use

CPAN::Packager     github.com/dann   dann
Key Features of CPAN::Packager
    • Resolve module dependencies automatically
    • Can fix module dependencies manually
    • Can skip incorecct module manually

        CPAN::Packager can automatically resolve
         dependencies and manually fixes module’s
       incorrect dependencies with a configuration


CPAN::Packager         github.com/dann              dann
How to use CPAN::Packager
How to build a module on CPAN
 sudo cpan-packager --module Moose --builder RPM --
 conf conf/config.yaml
                                                   Which type of package
            configuration for
            manually module’s                        do you develop?
             incorrectness.

How to develop multiple modules on CPAN
 sudo cpan-packager --modulelist modules.list --builder
 RPM --conf conf/config.yaml
                                                  module lists



CPAN::Packager                  github.com/dann                            dann
How to write the configuration
---
global:
  fix_module_name:                               Common settings
    - from: Template::Toolkit                    for all modules
      to: Template
  fix_package_depends: []
  no_depends:
   skip_name_resolve_modules: []
modules:
 - module: Test::Exception                     Eash module’s setting
                                              to fix incorrectness of
   depends:                                         the module
    - module: Test::Simple
   no_depends:
    - module: Test::Builder::Tester
 - module: HTTP::Request::AsCGI
   skip_build: 1

CPAN::Packager              github.com/dann                            dann
Demo
                 build a HTTP::Engine RPM package




CPAN::Packager              github.com/dann         dann
• CPAN::Packager help you to make RPM/Deb package
 • Automatically resolve module dependencies
 • Can fix modules dependencies with a configuration
• Repository
 • http://github.com/dann/p5-cpan-packager/tree/
          master



Angelos             github.com/dann             dann

Más contenido relacionado

La actualidad más candente

Gulp and bower Implementation
Gulp and bower Implementation Gulp and bower Implementation
Gulp and bower Implementation Prashant Shrestha
 
meet.php #11 - Huston, we have an airbrake
meet.php #11 - Huston, we have an airbrakemeet.php #11 - Huston, we have an airbrake
meet.php #11 - Huston, we have an airbrakeMax Małecki
 
Scaling php - Intercon php
Scaling php - Intercon phpScaling php - Intercon php
Scaling php - Intercon phpHandrus Nogueira
 
Symfony ile Gelişmiş API Mimarisi
Symfony ile Gelişmiş API MimarisiSymfony ile Gelişmiş API Mimarisi
Symfony ile Gelişmiş API MimarisiBehram ÇELEN
 
KAK Etkinliği OJS de Symfony kullanımı
KAK Etkinliği OJS de Symfony kullanımıKAK Etkinliği OJS de Symfony kullanımı
KAK Etkinliği OJS de Symfony kullanımıBehram Çelen
 
Backward to DPAN
Backward to DPANBackward to DPAN
Backward to DPANbrian d foy
 
30 Minutes To CPAN
30 Minutes To CPAN30 Minutes To CPAN
30 Minutes To CPANdaoswald
 
Setting advanced PHP development environment
Setting advanced PHP development environmentSetting advanced PHP development environment
Setting advanced PHP development environmentKapil Sharma
 
Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014th0masr
 
An introduction to the Symfony CMF - creating a CMS on top of Symfony
An introduction to the Symfony CMF - creating a CMS on top of Symfony An introduction to the Symfony CMF - creating a CMS on top of Symfony
An introduction to the Symfony CMF - creating a CMS on top of Symfony Roel Sint
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPMax Romanovsky
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient waySylvain Rayé
 
Open web mail setup
Open web mail setupOpen web mail setup
Open web mail setupChacheng Oo
 
Accelerate your web app with a layer of Varnish
Accelerate your web app with a layer of VarnishAccelerate your web app with a layer of Varnish
Accelerate your web app with a layer of VarnishJeremy Cook
 
Magento on HHVM. Daniel Sloof
Magento on HHVM. Daniel SloofMagento on HHVM. Daniel Sloof
Magento on HHVM. Daniel SloofMeetMagentoNY2014
 
Vagrant up-and-running
Vagrant up-and-runningVagrant up-and-running
Vagrant up-and-runningJoe Ferguson
 
CakePHPのWebTestCaseでfixtureを使う
CakePHPのWebTestCaseでfixtureを使うCakePHPのWebTestCaseでfixtureを使う
CakePHPのWebTestCaseでfixtureを使うkishida4slideshare
 

La actualidad más candente (20)

Composer
ComposerComposer
Composer
 
Gulp and bower Implementation
Gulp and bower Implementation Gulp and bower Implementation
Gulp and bower Implementation
 
meet.php #11 - Huston, we have an airbrake
meet.php #11 - Huston, we have an airbrakemeet.php #11 - Huston, we have an airbrake
meet.php #11 - Huston, we have an airbrake
 
Scaling php - Intercon php
Scaling php - Intercon phpScaling php - Intercon php
Scaling php - Intercon php
 
Symfony ile Gelişmiş API Mimarisi
Symfony ile Gelişmiş API MimarisiSymfony ile Gelişmiş API Mimarisi
Symfony ile Gelişmiş API Mimarisi
 
KAK Etkinliği OJS de Symfony kullanımı
KAK Etkinliği OJS de Symfony kullanımıKAK Etkinliği OJS de Symfony kullanımı
KAK Etkinliği OJS de Symfony kullanımı
 
Backward to DPAN
Backward to DPANBackward to DPAN
Backward to DPAN
 
30 Minutes To CPAN
30 Minutes To CPAN30 Minutes To CPAN
30 Minutes To CPAN
 
Setting advanced PHP development environment
Setting advanced PHP development environmentSetting advanced PHP development environment
Setting advanced PHP development environment
 
Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014
 
An introduction to the Symfony CMF - creating a CMS on top of Symfony
An introduction to the Symfony CMF - creating a CMS on top of Symfony An introduction to the Symfony CMF - creating a CMS on top of Symfony
An introduction to the Symfony CMF - creating a CMS on top of Symfony
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHP
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
 
Websockets
WebsocketsWebsockets
Websockets
 
Devopstore
DevopstoreDevopstore
Devopstore
 
Open web mail setup
Open web mail setupOpen web mail setup
Open web mail setup
 
Accelerate your web app with a layer of Varnish
Accelerate your web app with a layer of VarnishAccelerate your web app with a layer of Varnish
Accelerate your web app with a layer of Varnish
 
Magento on HHVM. Daniel Sloof
Magento on HHVM. Daniel SloofMagento on HHVM. Daniel Sloof
Magento on HHVM. Daniel Sloof
 
Vagrant up-and-running
Vagrant up-and-runningVagrant up-and-running
Vagrant up-and-running
 
CakePHPのWebTestCaseでfixtureを使う
CakePHPのWebTestCaseでfixtureを使うCakePHPのWebTestCaseでfixtureを使う
CakePHPのWebTestCaseでfixtureを使う
 

Destacado

Separate Model from Catalyst
Separate Model from CatalystSeparate Model from Catalyst
Separate Model from Catalysttechmemo
 
優しいWAFの作り方
優しいWAFの作り方優しいWAFの作り方
優しいWAFの作り方techmemo
 
Cloud computing fact or fiction
Cloud computing fact or fictionCloud computing fact or fiction
Cloud computing fact or fictionsteven hasting
 
How to develop modern web application framework
How to develop modern web application frameworkHow to develop modern web application framework
How to develop modern web application frameworktechmemo
 
Pembangunan dh dalam konteks pembangunan nasional
Pembangunan dh dalam konteks pembangunan nasionalPembangunan dh dalam konteks pembangunan nasional
Pembangunan dh dalam konteks pembangunan nasionalSLAMET SUGIHARTO
 
Historia Del Logo De Los JJ.OO. De Pekin 2008
Historia Del Logo De Los JJ.OO. De Pekin 2008Historia Del Logo De Los JJ.OO. De Pekin 2008
Historia Del Logo De Los JJ.OO. De Pekin 2008carlos_serrano
 
今日から始めるDigitalOcean
今日から始めるDigitalOcean今日から始めるDigitalOcean
今日から始めるDigitalOceanMasahito Zembutsu
 

Destacado (11)

Separate Model from Catalyst
Separate Model from CatalystSeparate Model from Catalyst
Separate Model from Catalyst
 
優しいWAFの作り方
優しいWAFの作り方優しいWAFの作り方
優しいWAFの作り方
 
Gmaldonado mi confrontación con la docencia
Gmaldonado mi confrontación con la docenciaGmaldonado mi confrontación con la docencia
Gmaldonado mi confrontación con la docencia
 
Cloud computing fact or fiction
Cloud computing fact or fictionCloud computing fact or fiction
Cloud computing fact or fiction
 
How to develop modern web application framework
How to develop modern web application frameworkHow to develop modern web application framework
How to develop modern web application framework
 
Pembangunan dh dalam konteks pembangunan nasional
Pembangunan dh dalam konteks pembangunan nasionalPembangunan dh dalam konteks pembangunan nasional
Pembangunan dh dalam konteks pembangunan nasional
 
Historia Del Logo De Los JJ.OO. De Pekin 2008
Historia Del Logo De Los JJ.OO. De Pekin 2008Historia Del Logo De Los JJ.OO. De Pekin 2008
Historia Del Logo De Los JJ.OO. De Pekin 2008
 
Simderella
SimderellaSimderella
Simderella
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Fiebre
FiebreFiebre
Fiebre
 
今日から始めるDigitalOcean
今日から始めるDigitalOcean今日から始めるDigitalOcean
今日から始めるDigitalOcean
 

Similar a Make Perl modules into packages with CPAN::Packager

MyCPAN (Frozen Perl 2008 Lightning Talk)
MyCPAN (Frozen Perl 2008 Lightning Talk)MyCPAN (Frozen Perl 2008 Lightning Talk)
MyCPAN (Frozen Perl 2008 Lightning Talk)brian d foy
 
Composer & Drupal
Composer & DrupalComposer & Drupal
Composer & Drupaldrubb
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modulesKris Buytaert
 
Create ReactJS Component & publish as npm package
Create ReactJS Component & publish as npm packageCreate ReactJS Component & publish as npm package
Create ReactJS Component & publish as npm packageAndrii Lundiak
 
Perl: Setting Up An Internal Darkpan
Perl: Setting Up An Internal DarkpanPerl: Setting Up An Internal Darkpan
Perl: Setting Up An Internal Darkpandaoswald
 
Managing Perl Installations: A SysAdmin's View
Managing Perl Installations: A SysAdmin's ViewManaging Perl Installations: A SysAdmin's View
Managing Perl Installations: A SysAdmin's ViewBaden Hughes
 
Capifony. Minsk PHP MeetUp #11
Capifony. Minsk PHP MeetUp #11Capifony. Minsk PHP MeetUp #11
Capifony. Minsk PHP MeetUp #11Yury Pliashkou
 
Packaging perl (LPW2010)
Packaging perl (LPW2010)Packaging perl (LPW2010)
Packaging perl (LPW2010)p3castro
 
perlbrew yapcasia 2010
perlbrew yapcasia 2010perlbrew yapcasia 2010
perlbrew yapcasia 2010Kang-min Liu
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 DevelopmentDuke Dao
 
Packaging for the Maemo Platform
Packaging for the Maemo PlatformPackaging for the Maemo Platform
Packaging for the Maemo PlatformJeremiah Foster
 
Reliable from-source builds (Qshare 28 Nov 2023).pdf
Reliable from-source builds (Qshare 28 Nov 2023).pdfReliable from-source builds (Qshare 28 Nov 2023).pdf
Reliable from-source builds (Qshare 28 Nov 2023).pdfRalf Gommers
 
Making kubernetes simple for developers
Making kubernetes simple for developersMaking kubernetes simple for developers
Making kubernetes simple for developersSuraj Deshmukh
 
Rembug Presentation
Rembug PresentationRembug Presentation
Rembug Presentationifnu bima
 
ASU DUG - SVN and CVS
ASU DUG - SVN and CVSASU DUG - SVN and CVS
ASU DUG - SVN and CVSJeff Beeman
 

Similar a Make Perl modules into packages with CPAN::Packager (20)

MyCPAN (Frozen Perl 2008 Lightning Talk)
MyCPAN (Frozen Perl 2008 Lightning Talk)MyCPAN (Frozen Perl 2008 Lightning Talk)
MyCPAN (Frozen Perl 2008 Lightning Talk)
 
Smoking docker
Smoking dockerSmoking docker
Smoking docker
 
CPAN Training
CPAN TrainingCPAN Training
CPAN Training
 
Composer & Drupal
Composer & DrupalComposer & Drupal
Composer & Drupal
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modules
 
Create ReactJS Component & publish as npm package
Create ReactJS Component & publish as npm packageCreate ReactJS Component & publish as npm package
Create ReactJS Component & publish as npm package
 
Perl: Setting Up An Internal Darkpan
Perl: Setting Up An Internal DarkpanPerl: Setting Up An Internal Darkpan
Perl: Setting Up An Internal Darkpan
 
Perlbrew
PerlbrewPerlbrew
Perlbrew
 
Managing Perl Installations: A SysAdmin's View
Managing Perl Installations: A SysAdmin's ViewManaging Perl Installations: A SysAdmin's View
Managing Perl Installations: A SysAdmin's View
 
Capifony. Minsk PHP MeetUp #11
Capifony. Minsk PHP MeetUp #11Capifony. Minsk PHP MeetUp #11
Capifony. Minsk PHP MeetUp #11
 
Packaging perl (LPW2010)
Packaging perl (LPW2010)Packaging perl (LPW2010)
Packaging perl (LPW2010)
 
perlbrew yapcasia 2010
perlbrew yapcasia 2010perlbrew yapcasia 2010
perlbrew yapcasia 2010
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 Development
 
Native Hadoop with prebuilt spark
Native Hadoop with prebuilt sparkNative Hadoop with prebuilt spark
Native Hadoop with prebuilt spark
 
Packaging for the Maemo Platform
Packaging for the Maemo PlatformPackaging for the Maemo Platform
Packaging for the Maemo Platform
 
Composer
ComposerComposer
Composer
 
Reliable from-source builds (Qshare 28 Nov 2023).pdf
Reliable from-source builds (Qshare 28 Nov 2023).pdfReliable from-source builds (Qshare 28 Nov 2023).pdf
Reliable from-source builds (Qshare 28 Nov 2023).pdf
 
Making kubernetes simple for developers
Making kubernetes simple for developersMaking kubernetes simple for developers
Making kubernetes simple for developers
 
Rembug Presentation
Rembug PresentationRembug Presentation
Rembug Presentation
 
ASU DUG - SVN and CVS
ASU DUG - SVN and CVSASU DUG - SVN and CVS
ASU DUG - SVN and CVS
 

Último

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Make Perl modules into packages with CPAN::Packager

  • 1. YAPC::Asia 2009 2009/09/10 CPAN::Packager ~Help to make packages from CPAN module~ dann CPAN::Packager github.com/dann dann
  • 2. About me • Dann • Creator of CPAN::Packager • HTTP::Engine(Middleware), Mouse etc • http://github.com/dann CPAN::Packager github.com/dann dann
  • 3. What is CPAN::Packager? A tool to help you make Redhat or Debian packages from perl modules on CPAN CPAN::Packager github.com/dann dann
  • 4. Motivation • It’s very time wasting to install Catalyst, Plagger... a LOT of dependencies • different module versions on each server.... • Can’t make packages because XXX module has a LOT of DEPENDENCIES... Make RPM/Deb packages and manage them with packaging system CPAN::Packager github.com/dann dann
  • 5. The problem • cpanflute2, dh-make-perl • Don’t resolve module’s dependencies • CPANPLUS::Dist::{Deb, RPM} • resolve module dependency at first level only • can’t fix incorrect module’s dependencies manually CPAN::Packager github.com/dann dann
  • 6. Packaging System requirements • Resolve module’s dependencies • Can fix incorrect module dependencies manually • fix module’s incorrect dependencies with a configuration • Can skip moduledependenciesmodule has some incorrect build if the CPAN::Packager github.com/dann dann
  • 7. Feature and How to use CPAN::Packager github.com/dann dann
  • 8. Key Features of CPAN::Packager • Resolve module dependencies automatically • Can fix module dependencies manually • Can skip incorecct module manually CPAN::Packager can automatically resolve dependencies and manually fixes module’s incorrect dependencies with a configuration CPAN::Packager github.com/dann dann
  • 9. How to use CPAN::Packager How to build a module on CPAN sudo cpan-packager --module Moose --builder RPM -- conf conf/config.yaml Which type of package configuration for manually module’s do you develop? incorrectness. How to develop multiple modules on CPAN sudo cpan-packager --modulelist modules.list --builder RPM --conf conf/config.yaml module lists CPAN::Packager github.com/dann dann
  • 10. How to write the configuration --- global: fix_module_name: Common settings - from: Template::Toolkit for all modules to: Template fix_package_depends: [] no_depends: skip_name_resolve_modules: [] modules: - module: Test::Exception Eash module’s setting to fix incorrectness of depends: the module - module: Test::Simple no_depends: - module: Test::Builder::Tester - module: HTTP::Request::AsCGI skip_build: 1 CPAN::Packager github.com/dann dann
  • 11. Demo build a HTTP::Engine RPM package CPAN::Packager github.com/dann dann
  • 12. • CPAN::Packager help you to make RPM/Deb package • Automatically resolve module dependencies • Can fix modules dependencies with a configuration • Repository • http://github.com/dann/p5-cpan-packager/tree/ master Angelos github.com/dann dann