Enviar búsqueda
Cargar
Carton CPAN dependency manager
•
12 recomendaciones
•
4,130 vistas
Tatsuhiko Miyagawa
Seguir
Tecnología
Arte y fotografía
Denunciar
Compartir
Denunciar
Compartir
1 de 39
Descargar ahora
Descargar para leer sin conexión
Recomendados
From Tomcat to Java EE, making the transition with TomEE
From Tomcat to Java EE, making the transition with TomEE
jaxconf
GenRetry: Simple Exponential Backoff in Elixir
GenRetry: Simple Exponential Backoff in Elixir
Pete Gamache
High Availability Server Apps
High Availability Server Apps
Tarek Ziadé De Turcey
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
jaxconf
Java to scala
Java to scala
Skills Matter
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Panagiotis Kanavos
10 Things you should know about Ruby
10 Things you should know about Ruby
sikachu
PuppetCampLA 2013: Lessons Learned in the OSUOSL Puppet Migration
PuppetCampLA 2013: Lessons Learned in the OSUOSL Puppet Migration
Lance Albertson
Recomendados
From Tomcat to Java EE, making the transition with TomEE
From Tomcat to Java EE, making the transition with TomEE
jaxconf
GenRetry: Simple Exponential Backoff in Elixir
GenRetry: Simple Exponential Backoff in Elixir
Pete Gamache
High Availability Server Apps
High Availability Server Apps
Tarek Ziadé De Turcey
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
jaxconf
Java to scala
Java to scala
Skills Matter
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Panagiotis Kanavos
10 Things you should know about Ruby
10 Things you should know about Ruby
sikachu
PuppetCampLA 2013: Lessons Learned in the OSUOSL Puppet Migration
PuppetCampLA 2013: Lessons Learned in the OSUOSL Puppet Migration
Lance Albertson
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Tatsuhiko Miyagawa
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
Tatsuhiko Miyagawa
CPAN Realtime feed
CPAN Realtime feed
Tatsuhiko Miyagawa
Intro to PSGI and Plack
Intro to PSGI and Plack
Tatsuhiko Miyagawa
Tatsumaki
Tatsumaki
Tatsuhiko Miyagawa
Network Programming With Anyevent
Network Programming With Anyevent
Pedro Melo
No Hugging, No Learning
No Hugging, No Learning
Olaf Alders
ZeroMQ in PHP
ZeroMQ in PHP
José Lorenzo Rodríguez Urdaneta
Wight: Phantom’s Perl friend - YAPC::Asia 2012
Wight: Phantom’s Perl friend - YAPC::Asia 2012
Hiroshi Shibamura
DevOps Introduction @Cegeka
DevOps Introduction @Cegeka
dieterdm
Oop design magma rails 2011
Oop design magma rails 2011
MagmaConf
Caridy patino - node-js
Caridy patino - node-js
StarTech Conference
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
Caridy Patino
Puppet camp europe 2011 hackability
Puppet camp europe 2011 hackability
Puppet
Ruby hollywood
Ruby hollywood
ehuard
The Fast, The Slow and the Lazy
The Fast, The Slow and the Lazy
Maurício Linhares
Intro to Micro-frameworks
Intro to Micro-frameworks
jsmith92
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
Zohar Babin
WTF Is Messaging And Why You Should Use It?
WTF Is Messaging And Why You Should Use It?
James Russell
Introduction to JavaScriptMVC
Introduction to JavaScriptMVC
Pedro Pimentel
Groke
Groke
Janne Kuuskeri
node.js for front-end developers
node.js for front-end developers
Garann Means
Más contenido relacionado
Destacado
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Tatsuhiko Miyagawa
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
Tatsuhiko Miyagawa
CPAN Realtime feed
CPAN Realtime feed
Tatsuhiko Miyagawa
Intro to PSGI and Plack
Intro to PSGI and Plack
Tatsuhiko Miyagawa
Tatsumaki
Tatsumaki
Tatsuhiko Miyagawa
Network Programming With Anyevent
Network Programming With Anyevent
Pedro Melo
No Hugging, No Learning
No Hugging, No Learning
Olaf Alders
ZeroMQ in PHP
ZeroMQ in PHP
José Lorenzo Rodríguez Urdaneta
Wight: Phantom’s Perl friend - YAPC::Asia 2012
Wight: Phantom’s Perl friend - YAPC::Asia 2012
Hiroshi Shibamura
Destacado
(9)
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
CPAN Realtime feed
CPAN Realtime feed
Intro to PSGI and Plack
Intro to PSGI and Plack
Tatsumaki
Tatsumaki
Network Programming With Anyevent
Network Programming With Anyevent
No Hugging, No Learning
No Hugging, No Learning
ZeroMQ in PHP
ZeroMQ in PHP
Wight: Phantom’s Perl friend - YAPC::Asia 2012
Wight: Phantom’s Perl friend - YAPC::Asia 2012
Similar a Carton CPAN dependency manager
DevOps Introduction @Cegeka
DevOps Introduction @Cegeka
dieterdm
Oop design magma rails 2011
Oop design magma rails 2011
MagmaConf
Caridy patino - node-js
Caridy patino - node-js
StarTech Conference
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
Caridy Patino
Puppet camp europe 2011 hackability
Puppet camp europe 2011 hackability
Puppet
Ruby hollywood
Ruby hollywood
ehuard
The Fast, The Slow and the Lazy
The Fast, The Slow and the Lazy
Maurício Linhares
Intro to Micro-frameworks
Intro to Micro-frameworks
jsmith92
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
Zohar Babin
WTF Is Messaging And Why You Should Use It?
WTF Is Messaging And Why You Should Use It?
James Russell
Introduction to JavaScriptMVC
Introduction to JavaScriptMVC
Pedro Pimentel
Groke
Groke
Janne Kuuskeri
node.js for front-end developers
node.js for front-end developers
Garann Means
Secrets of the GWT
Secrets of the GWT
David Chandler
Errors and handling them. YOW nights Sydney 2011
Errors and handling them. YOW nights Sydney 2011
Michael Neale
Error Handling Done Differently
Error Handling Done Differently
CloudBees
JavaSE - The road forward
JavaSE - The road forward
eug3n_cojocaru
Namesmatter
Namesmatter
Adam Goucher
AppScale Talk at SBonRails
AppScale Talk at SBonRails
Chris Bunch
CommonJS Frameworks
CommonJS Frameworks
Janne Kuuskeri
Similar a Carton CPAN dependency manager
(20)
DevOps Introduction @Cegeka
DevOps Introduction @Cegeka
Oop design magma rails 2011
Oop design magma rails 2011
Caridy patino - node-js
Caridy patino - node-js
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
Puppet camp europe 2011 hackability
Puppet camp europe 2011 hackability
Ruby hollywood
Ruby hollywood
The Fast, The Slow and the Lazy
The Fast, The Slow and the Lazy
Intro to Micro-frameworks
Intro to Micro-frameworks
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
WTF Is Messaging And Why You Should Use It?
WTF Is Messaging And Why You Should Use It?
Introduction to JavaScriptMVC
Introduction to JavaScriptMVC
Groke
Groke
node.js for front-end developers
node.js for front-end developers
Secrets of the GWT
Secrets of the GWT
Errors and handling them. YOW nights Sydney 2011
Errors and handling them. YOW nights Sydney 2011
Error Handling Done Differently
Error Handling Done Differently
JavaSE - The road forward
JavaSE - The road forward
Namesmatter
Namesmatter
AppScale Talk at SBonRails
AppScale Talk at SBonRails
CommonJS Frameworks
CommonJS Frameworks
Más de Tatsuhiko Miyagawa
Plack at OSCON 2010
Plack at OSCON 2010
Tatsuhiko Miyagawa
cpanminus at YAPC::NA 2010
cpanminus at YAPC::NA 2010
Tatsuhiko Miyagawa
Plack at YAPC::NA 2010
Plack at YAPC::NA 2010
Tatsuhiko Miyagawa
PSGI/Plack OSDC.TW
PSGI/Plack OSDC.TW
Tatsuhiko Miyagawa
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and servers
Tatsuhiko Miyagawa
Plack - LPW 2009
Plack - LPW 2009
Tatsuhiko Miyagawa
Asynchronous programming with AnyEvent
Asynchronous programming with AnyEvent
Tatsuhiko Miyagawa
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQuery
Tatsuhiko Miyagawa
Remedie OSDC.TW
Remedie OSDC.TW
Tatsuhiko Miyagawa
Why Open Matters It Pro Challenge 2008
Why Open Matters It Pro Challenge 2008
Tatsuhiko Miyagawa
20 modules i haven't yet talked about
20 modules i haven't yet talked about
Tatsuhiko Miyagawa
Web::Scraper for SF.pm LT
Web::Scraper for SF.pm LT
Tatsuhiko Miyagawa
Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8
Tatsuhiko Miyagawa
Web::Scraper
Web::Scraper
Tatsuhiko Miyagawa
XML::Liberal
XML::Liberal
Tatsuhiko Miyagawa
Test::Base
Test::Base
Tatsuhiko Miyagawa
Hacking Vox and Plagger
Hacking Vox and Plagger
Tatsuhiko Miyagawa
Plagger the duct tape of internet
Plagger the duct tape of internet
Tatsuhiko Miyagawa
Tilting Google Maps and MissileLauncher
Tilting Google Maps and MissileLauncher
Tatsuhiko Miyagawa
Writing Pluggable Software
Writing Pluggable Software
Tatsuhiko Miyagawa
Más de Tatsuhiko Miyagawa
(20)
Plack at OSCON 2010
Plack at OSCON 2010
cpanminus at YAPC::NA 2010
cpanminus at YAPC::NA 2010
Plack at YAPC::NA 2010
Plack at YAPC::NA 2010
PSGI/Plack OSDC.TW
PSGI/Plack OSDC.TW
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and servers
Plack - LPW 2009
Plack - LPW 2009
Asynchronous programming with AnyEvent
Asynchronous programming with AnyEvent
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie OSDC.TW
Remedie OSDC.TW
Why Open Matters It Pro Challenge 2008
Why Open Matters It Pro Challenge 2008
20 modules i haven't yet talked about
20 modules i haven't yet talked about
Web::Scraper for SF.pm LT
Web::Scraper for SF.pm LT
Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8
Web::Scraper
Web::Scraper
XML::Liberal
XML::Liberal
Test::Base
Test::Base
Hacking Vox and Plagger
Hacking Vox and Plagger
Plagger the duct tape of internet
Plagger the duct tape of internet
Tilting Google Maps and MissileLauncher
Tilting Google Maps and MissileLauncher
Writing Pluggable Software
Writing Pluggable Software
Último
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
The Digital Insurer
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Fwdays
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
RankYa
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Scott Keck-Warren
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Florian Wilhelm
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
SeasiaInfotech2
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Zilliz
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
Manik S Magar
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Miki Katsuragi
Último
(20)
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Carton CPAN dependency manager
1.
Carton
Tatsuhiko Miyagawa YAPC::Asia 2011 Tokyo Friday, October 14, 2011
2.
Managing CPAN
Dependencies Friday, October 14, 2011
3.
Case Study:
(Poor) Web Development Friday, October 14, 2011
4.
You’re writing a
new web app. You don’t wanna reinvent wheels. Want to use as many CPAN deps. Friday, October 14, 2011
5.
Fine.
Get them from CPAN, install on your machine. Friday, October 14, 2011
6.
> cpanm Web::Framework
installed LWP-‐5.912 installed Plack-‐0.9980 installed Web-‐Framework-‐1.20 > cpanm JSON::Fast installed JSON-‐Fast-‐1.91 > cpanm MIME::Parser::XS installed MIME-‐Parser-‐XS-‐0.20 Friday, October 14, 2011
7.
Test it... Friday, October
14, 2011
8.
Works? Ship it! Friday,
October 14, 2011
9.
Deployment
Set up new production servers. Install CPAN modules (until the errors are gone) Friday, October 14, 2011
10.
Few weeks later... Friday,
October 14, 2011
11.
Your website is
popular! Need more web servers! Friday, October 14, 2011
12.
Re-Deployment
Set up new production servers. Install CPAN modules (until the errors are gone) Friday, October 14, 2011
13.
“Crap, Web::Framework has
been updated to 1.4 and many APIs have been changed or deprecated!” Friday, October 14, 2011
14.
Rollback
Log in to the old web server. Check Perl module versions. Install them on the new server. Friday, October 14, 2011
15.
“Crap, this author
deleted the version 1.20 we want. Let’s go to BackPAN...” Friday, October 14, 2011
16.
“Crap, version 1.20
doesn’t actually work with the newer LWP 6 that we just installed! Have to downgrade this too...” Friday, October 14, 2011
17.
and so on. Friday,
October 14, 2011
18.
What was wrong? Friday,
October 14, 2011
19.
• Dependency declaration
• Isolated Perl environments • Version controls/history • Dependency analysis • Repeatable deployments • etc. Friday, October 14, 2011
20.
Many existing solutions
MyCPAN, DPAN, CPAN::Mini::Inject, OrePAN, Shipwright Friday, October 14, 2011
21.
None of those
didn’t quite work for me. (Or I haven’t even tried) Friday, October 14, 2011
22.
So I wrote
a new one. Friday, October 14, 2011
23.
Carton
https://github.com/miyagawa/carton Friday, October 14, 2011
24.
Inspired by... Friday, October
14, 2011
25.
Friday, October 14,
2011
26.
• App-specific local
environment • Fast and safe install • Dep-tree analysis, including versions • Locking module versions • Easy Redeployment • Single-file,VCS friendly • Safe and easy rollback Friday, October 14, 2011
27.
Local perl environment
Using local::lib and cpanm -L Each app has an isolated local library path Friday, October 14, 2011
28.
Fast and safe
install cpanm 1.5 Saves MYMETA.json and install meta info Friday, October 14, 2011
29.
Dep tree analysis
Rebuild the dependency tree from meta info Checks if anything is missing/superflous Friday, October 14, 2011
30.
Locking versions
Versions are saved in carton.lock including dependencies Friday, October 14, 2011
31.
Easy Redeployment
Reinstall exactly the same set of modules on another prod/development machines. Friday, October 14, 2011
32.
Single-file,VCS friendly
You can add carton.lock to git update whenever you update modules Friday, October 14, 2011
33.
Safe and easy
rollback revert the lock file and redeploy Friday, October 14, 2011
34.
DEMO Friday, October 14,
2011
35.
> cpanm Carton Friday,
October 14, 2011
36.
WARNING
It is beta software, some features are missing or not working correctly (yet). Friday, October 14, 2011
37.
github.com/miyagawa/carton
irc.perl.org #carton Friday, October 14, 2011
38.
Questions? Friday, October 14,
2011
39.
Thanks!
twitter.com/miyagawa Friday, October 14, 2011
Descargar ahora