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?”
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. carton
miyagawa-ware
alpha! ☠
Last commit in github: 2012-05-11 ☹
A great software that definitely needs more love from
the author. It's not "stalled" per se.
-- miyagawa, 2013-01-25
14. Tracking dependencies
# cpanfile
requires 'Plack', 0.9980;
requires 'Starman', 0.2000;
$ carton install
Modules installed into ./local/ dir.
Dependency info saved in ./carton.lock file.
15. Deployment
Copy tree to remote location,
skipping ./local/ dir
$ carton install
Carton now installs versions
set in ./carton.lock file,
into ./local/ dir.
16. Bundling
Don’t even need to have net access:
$ carton bundle
fetches tarballs into ./local/cache/ dir
Copy tree to remote location, and:
$ carton install --cached
installs from there
17. Bundling, with DarkPAN
Add your own tarballs to ./local/cache/ dir
Copy tree to remote location, and:
$ carton install --cached
installs 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