CPAN Dependency Heaven
Upcoming SlideShare
Loading in...5
×
 

CPAN Dependency Heaven

on

  • 987 views

Installing CPAN modules and managing their dependencies has got much easier over recent years thanks to tools like cpanm. But what about the DarkPAN, i.e. all the code that *isn't* on CPAN? ...

Installing CPAN modules and managing their dependencies has got much easier over recent years thanks to tools like cpanm. But what about the DarkPAN, i.e. all the code that *isn't* on CPAN?

In this talk we will look at how to build our own private CPAN, upload our own DarkPAN modules, and easily mix private and public dependencies.

From this we will build cross-platform installation packages which can be used on any system with Perl installed (no external dependencies or even Internet access required).

Presented at the YAPC::Europe 2012 conference in Frankfurt, Germany.

Statistics

Views

Total Views
987
Views on SlideShare
987
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

CPAN Dependency Heaven CPAN Dependency Heaven Presentation Transcript

  • CPAN Dependency Heaven Jon  Allen  (JJ)  –  jj@opusvl.com  
  • www.opusvl.com!
  • CPAN www.opusvl.com!
  • perl myscript.pl Cant locate SomeModule.pm in @INC (@INC contains: /Users/jj/ perl/perl-5.14.1/lib/site_perl/ 5.14.1/darwin-2level /Users/jj/ perl/perl-5.14.1/lib/site_perl/ 5.14.1 /Users/jj/perl/ perl-5.14.1/lib/5.14.1/ darwin-2level /Users/jj/perl/ perl-5.14.1/lib/5.14.1 .) ... www.opusvl.com!
  • perl myscript.pl Cant locate OtherModule.pm in @INC (@INC contains: /Users/jj/ perl/perl-5.14.1/lib/site_perl/ 5.14.1/darwin-2level /Users/jj/ perl/perl-5.14.1/lib/site_perl/ 5.14.1 /Users/jj/perl/ perl-5.14.1/lib/5.14.1/ darwin-2level /Users/jj/perl/ perl-5.14.1/lib/5.14.1 .) ... www.opusvl.com!
  • CPANDependency Hell www.opusvl.com!
  • www.opusvl.com!
  • solvedproblem? www.opusvl.com!
  • cpanm"local::lib www.opusvl.com!
  • bootstraps www.opusvl.com!
  • curl -L"http://cpanmin.us |"perl - --self-upgrade www.opusvl.com!
  • www.opusvl.com!
  • DarkPAN www.opusvl.com!
  • DarkPAN www.opusvl.com!
  • DarkPAN www.opusvl.com!
  • DarkPAN www.opusvl.com!
  • DarkPAN www.opusvl.com!
  • all your codenot on CPAN www.opusvl.com!
  • rpm?"deb? www.opusvl.com!
  • token Mac user www.opusvl.com!
  • token Windows user www.opusvl.com!
  • not cross- platform www.opusvl.com!
  • use CPANpackaging www.opusvl.com!
  • build your own CPAN www.opusvl.com!
  • CPAN::Mini www.opusvl.com!
  • CPAN::Mini::Inject www.opusvl.com!
  • can be tricky " to use www.opusvl.com!
  • build your own PAUSE www.opusvl.com!
  • CPAN::Mini::"Inject::REST www.opusvl.com!
  • REST API forCPAN::Mini::Inject www.opusvl.com!
  • inject modules remotely www.opusvl.com!
  • supportsauthentication www.opusvl.com!
  • enforces versionchanges www.opusvl.com!
  • client? www.opusvl.com!
  • CPAN::Mini::"Inject::REST::" Client www.opusvl.com!
  • command-line app www.opusvl.com!
  • workflow www.opusvl.com!
  • build CPAN package www.opusvl.com!
  • perl Makefile.PL" make" make dist www.opusvl.com!
  • upload to your CPAN www.opusvl.com!
  • mcpani-client" add " --host cpan.local"MyModule-0.1.tar.gz www.opusvl.com!
  • install www.opusvl.com!
  • cpanm --mirror "http://cpan.local " --mirror-only My::Module www.opusvl.com!
  • easily mix local and CPANdependencies www.opusvl.com!
  • distribution www.opusvl.com!
  • Elaine’s Law www.opusvl.com!
  • “Just make itfucking easy to install!” www.opusvl.com!
  • App::cpackage www.opusvl.com!
  • creates installpackages forPerl modules www.opusvl.com!
  • self-contained(dependencies included) www.opusvl.com!
  • very simple www.opusvl.com!
  • someone else did the hard work! www.opusvl.com!
  • www.opusvl.com!
  • thin wrapper around cpanminus www.opusvl.com!
  • analysesdependencies www.opusvl.com!
  • downloadsdependencies www.opusvl.com!
  • writes install.pl script www.opusvl.com!
  • cpanmApp::cpackage www.opusvl.com!
  • cpackageModule::Name www.opusvl.com!
  • cpackage " --mirror "http://cpan.local " --mirror-only My::Module www.opusvl.com!
  • ./packages/…" ./bin/cpanm" ./install.pl www.opusvl.com!
  • perl install.pl www.opusvl.com!
  • perl install.pl" --sudo www.opusvl.com!
  • no internet required www.opusvl.com!
  • no CPAN client required www.opusvl.com!
  • self-contained installer www.opusvl.com!
  • CPANDependencyHeaven www.opusvl.com!
  • done. www.opusvl.com!
  • done. :-) www.opusvl.com!
  • www.opusvl.com!