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/darwi...
perl myscript.pl	Cant locate OtherModule.pm in @INC (@INC contains: /Users/jj/ perl/perl-5.14.1/lib/site_perl/ 5.14.1/darw...
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!
Upcoming SlideShare
Loading in...5
×

CPAN Dependency Heaven

909

Published on

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.

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
909
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CPAN Dependency Heaven

  1. 1. CPAN Dependency Heaven Jon  Allen  (JJ)  –  jj@opusvl.com  
  2. 2. www.opusvl.com!
  3. 3. CPAN www.opusvl.com!
  4. 4. 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!
  5. 5. 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!
  6. 6. CPANDependency Hell www.opusvl.com!
  7. 7. www.opusvl.com!
  8. 8. solvedproblem? www.opusvl.com!
  9. 9. cpanm"local::lib www.opusvl.com!
  10. 10. bootstraps www.opusvl.com!
  11. 11. curl -L"http://cpanmin.us |"perl - --self-upgrade www.opusvl.com!
  12. 12. www.opusvl.com!
  13. 13. DarkPAN www.opusvl.com!
  14. 14. DarkPAN www.opusvl.com!
  15. 15. DarkPAN www.opusvl.com!
  16. 16. DarkPAN www.opusvl.com!
  17. 17. DarkPAN www.opusvl.com!
  18. 18. all your codenot on CPAN www.opusvl.com!
  19. 19. rpm?"deb? www.opusvl.com!
  20. 20. token Mac user www.opusvl.com!
  21. 21. token Windows user www.opusvl.com!
  22. 22. not cross- platform www.opusvl.com!
  23. 23. use CPANpackaging www.opusvl.com!
  24. 24. build your own CPAN www.opusvl.com!
  25. 25. CPAN::Mini www.opusvl.com!
  26. 26. CPAN::Mini::Inject www.opusvl.com!
  27. 27. can be tricky " to use www.opusvl.com!
  28. 28. build your own PAUSE www.opusvl.com!
  29. 29. CPAN::Mini::"Inject::REST www.opusvl.com!
  30. 30. REST API forCPAN::Mini::Inject www.opusvl.com!
  31. 31. inject modules remotely www.opusvl.com!
  32. 32. supportsauthentication www.opusvl.com!
  33. 33. enforces versionchanges www.opusvl.com!
  34. 34. client? www.opusvl.com!
  35. 35. CPAN::Mini::"Inject::REST::" Client www.opusvl.com!
  36. 36. command-line app www.opusvl.com!
  37. 37. workflow www.opusvl.com!
  38. 38. build CPAN package www.opusvl.com!
  39. 39. perl Makefile.PL" make" make dist www.opusvl.com!
  40. 40. upload to your CPAN www.opusvl.com!
  41. 41. mcpani-client" add " --host cpan.local"MyModule-0.1.tar.gz www.opusvl.com!
  42. 42. install www.opusvl.com!
  43. 43. cpanm --mirror "http://cpan.local " --mirror-only My::Module www.opusvl.com!
  44. 44. easily mix local and CPANdependencies www.opusvl.com!
  45. 45. distribution www.opusvl.com!
  46. 46. Elaine’s Law www.opusvl.com!
  47. 47. “Just make itfucking easy to install!” www.opusvl.com!
  48. 48. App::cpackage www.opusvl.com!
  49. 49. creates installpackages forPerl modules www.opusvl.com!
  50. 50. self-contained(dependencies included) www.opusvl.com!
  51. 51. very simple www.opusvl.com!
  52. 52. someone else did the hard work! www.opusvl.com!
  53. 53. www.opusvl.com!
  54. 54. thin wrapper around cpanminus www.opusvl.com!
  55. 55. analysesdependencies www.opusvl.com!
  56. 56. downloadsdependencies www.opusvl.com!
  57. 57. writes install.pl script www.opusvl.com!
  58. 58. cpanmApp::cpackage www.opusvl.com!
  59. 59. cpackageModule::Name www.opusvl.com!
  60. 60. cpackage " --mirror "http://cpan.local " --mirror-only My::Module www.opusvl.com!
  61. 61. ./packages/…" ./bin/cpanm" ./install.pl www.opusvl.com!
  62. 62. perl install.pl www.opusvl.com!
  63. 63. perl install.pl" --sudo www.opusvl.com!
  64. 64. no internet required www.opusvl.com!
  65. 65. no CPAN client required www.opusvl.com!
  66. 66. self-contained installer www.opusvl.com!
  67. 67. CPANDependencyHeaven www.opusvl.com!
  68. 68. done. www.opusvl.com!
  69. 69. done. :-) www.opusvl.com!
  70. 70. www.opusvl.com!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×