• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. cartoncph.pm, 2013-01-29lars@thegler.dk
  • 2. server app
  • 3. server app app
  • 4. server modules app app
  • 5. server perl modules app app
  • 6. Parent’s dilemma“Mommy, I want perl-5.8.8 and Mason!”“But *I* want Mojolicius! And perl-5.10.1! And a pony!”<sigh> “Can’t you two just stop fighting for 5 minutes?”
  • 7. Dependency managementDivide & conquerKeep it simple, stupidDon’t trample the other’s feet
  • 8. server server physical virtual - VMWare - jails perl perl - Xen - Virtualbox modules modules app app
  • 9. server perl perl perlbrew plenv modules modules app app
  • 10. server perl modules modules local::lib Fatpacker carton app app
  • 11. cartonmiyagawa-warealpha! ☠Last commit in github: 2012-05-11 ☹A great software that definitely needs more love fromthe author. Its not "stalled" per se. -- miyagawa, 2013-01-25
  • 12. cartonLatest version 0.9.4Latest dev version 0.9_7 (read: 0.9.7)
  • 13. carton philosophyproject-private module reporepeatable module versionswrapper around cpanmmix’n’match with perlbrew & local::lib
  • 14. Tracking dependencies # cpanfile requires Plack, 0.9980; requires Starman, 0.2000; $ carton installModules installed into ./local/ dir.Dependency info saved in ./carton.lock file.
  • 15. DeploymentCopy tree to remote location,skipping ./local/ dir $ carton installCarton now installs versionsset in ./carton.lock file,into ./local/ dir.
  • 16. BundlingDon’t even need to have net access:$ carton bundlefetches tarballs into ./local/cache/ dirCopy tree to remote location, and:$ carton install --cachedinstalls from there
  • 17. Bundling, with DarkPANAdd your own tarballs to ./local/cache/ dirCopy tree to remote location, and:$ carton install --cachedinstalls from there, with your own DPAN modules
  • 18. Housekeeping$ carton list List tracked deps in carton.lock file$ carton check Check for missing and unsused modules$ carton install Foo:Bar Fetch & install module ad-hoc
  • 19. Trial by fire $ carton exec -- perl myscript.pl Execute in isolated carton local environment Excludes .../site-perl/... Adds local/lib/perl5/ and .
  • 20. perlbrew and local::lib Development environment perlbrew lib (using local::lib) Co-development and production environment carton
  • 21. ThanksYes, slides will be on slideshareOther questions?