Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hack cpanm?
Search
Shoichi Kaji
March 25, 2015
420
0
Share
Hack cpanm?
Gotanda.pm Perl Technology Conference #4 2015.03.25
Shoichi Kaji
March 25, 2015
More Decks by Shoichi Kaji
See All by Shoichi Kaji
go-exhaustruct linterのすすめ
skaji
0
120
Parallel::Pipesの紹介
skaji
2
1.1k
宿泊予約サイトにおける検索と料金計算の両立
skaji
2
4.2k
昔のGo, 今のGo ~比較, ソート編~
skaji
0
300
Perl Quiz
skaji
0
170
cpm at PerlCon 2019
skaji
0
150
Perl5 Package Manager
skaji
0
790
Internal of cpm
skaji
0
650
How to execute external programs in Perl
skaji
3
740
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
550
Code Reviewing Like a Champion
maltzj
528
40k
The untapped power of vector embeddings
frankvandijk
2
1.7k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
180
Faster Mobile Websites
deanohume
310
31k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
120
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
440
Automating Front-end Workflow
addyosmani
1370
210k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
170
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Everyday Curiosity
cassininazir
0
210
Transcript
Hack cpanm? Shoichi Kaji
About Me • Shoichi Kaji • id: skaji / shoichikaji
/ ks0608 • cpan modules: • App::RemoteCommand • App::FatPacker::Simple
࣍ • cpanm ͱ • cpanm ͷ͕͜͜͜͏ͳΔͱ͍͍ • YAPC::Asia 2013
miyagawa • What can i do? • ༨ஊ : ੲɺplugin system ͱ͍͏ͷ͕͋ͬͨΒ͍͠ • ·ͱΊ
cpanm ͱ • miyagawa ͞Μ͕࡞͍ͬͯΔ cpan client • Very Simple,
ALL IN ONE! • ͨͩ cpanm Plack ͱΕ Plack ͕͑Δɻ
cpanm ͷ͕͜͜͜͏ͳΔͱ͍ ͍ • cpanm ͷ ~ ͷػೳΛଞͷίʔυͰ͍͍ͨ • ྫɿmetadata
ݕࡧ • ྫɿmodule search • cpanm ͷ ~ ͷػೳΛ؆୯ʹม͑ΒΕΔΑ͏ʹͯ͠ཉ͍͠ • ྫɿmodule search • ྫɿґଘؔղܾͷͱ͜ΖͰ ~ ͢Δ
ྫɿmetadata ݕࡧ • cpanm Λ parent ʹͯ͠ίʔυΛॻ͍ͨΒ… • -> https://metacpan.org/pod/Distribution::Metadata
YAPC::Asia 2013 miyagawa • https://speakerdeck.com/miyagawa/whats- new-in-carton-and-cpanm-at-yapc-asia-2013 • cpanm 1.8, cpanfile
1.1, carton 1.1 ͚ͯ • miyagawa ͞ΜࣗਐԽͤ͞ΔͱݴͬͯΔʂ • ͚ͩͲ͍·͍ͪਐΜͰͳ͍ɻ
What can i do?
None
• cpanm module ͷ search ํ๏ͱͯ͠ɺݱ ঢ়Ͱ͍Ζ͍ΖͳͷʹରԠ͍ͯ͠Δɻ͕ɺ ͜ΕΛͬͱ൚༻తʹ͢ΔͨΊʹ CPAN::Common::Index
ʹ͢ΔͷͲ͏͔ɻ
Let’s use CPAN::Common::Index!
just a trial • https://github.com/shoichikaji/cpanminus/ tree/use-common-index • Extract search related
code from cpanm • CPAN::Common::Index::MetaCPAN • add experimental git distribution support
ੲɺplugin γεςϜͱ͍͏ͷ͕ ͋ͬͨΒ͍͠ • https://github.com/miyagawa/cpanminus/commit/ 62ec1f75 • perl Β͍͔͍͍ͬ͜͠ίʔυʂ •
͕ɺ෦ʹΞΫηε͞ΕΔͷͰ͍Ζ͍Ζେมͦ͏ • Changes ʹΑΔͱ2010/02~2010/04 ͷ 2ϲ݄ͷ໋…
·ͱΊ • cpanm ͍͢͝ɻ • ͰɺͻͱΓͰશ෦Γ͗͢ײ͕͋Δ • ػೳΛϥΠϒϥϦʹͯ͠ൈ͖ग़ͤΔͱ͍Ζ͍Ζ͍͍ • plugin
γεςϜʹظ • ·ͩ·ͩ hack Ͱ͖Δͱ͜Ζ͕ͨ͘͞Μ͋Δʂ