SlideShare a Scribd company logo
Revisiting PPM March 26, 2011 @OSDC.TW Kenichi Ishigaki (charsbar)
Do you remember what miyagawa-san talked here last year?
cpanminus
A lightweight and faster CPAN client.
Why is it lightweight and faster?
Remote API servers
cpanmetadb
search.cpan.org
It usually doesn't download indices from a CPAN mirror.
Less configuration Less start-up time Less verbose
Better user experience.
miyagawa++
You can make it even faster.
cpanm --notest
CAVEAT --EMPTOR
If you don't run tests, you can't tell if it really works for you.
We can guess.
We have CPAN testers.
They continuously do comprehensive tests.
It might be reasonable to trust them and skip tests.
Go a step further.
You delegated testing to the testers.
Why don't you delegate building to someone else, too?
You can use system package managers like yum or apt.
It's convenient if you are satisfied with official packages.
It might cause lots of troubles if you install private packages without care.
What can we use then?
PPM
Perl Package Manager
PPM is a tool to install pre-processed packages.
Originally written for ActivePerl.
Used largely by the Windows users.
Not only for Windows.
60-70% of the CPAN distributions are ready for PPM.
You could save more time if you use them.
Or, if you can use them.
PPM has gone through several turning points.
PPM 1.0 for Perl 5.004/5 (around 1998) based on Open Software Description (1997)
PPM 2.0 for Perl 5.6 (around 2000) Pumpking from ActiveState Released to the CPAN started SOAP integration
PPM 3.0 for Perl 5.8 (around 2002) Not released to the CPAN Called "Programmer's Package Manager" Still used a SOAP server
Sophos Age ActiveState was acquired by Sophos. (2003) ActivePerl was steadily released. Some of the well known packages were missing from their PPM repository. Frustrated people started to create yet another Perl for Windows (which became Strawberry Perl). (2006)
PPM 4.0 ActiveState became independent again.(2006) New version with GUI for Perl 5.8.8 (2006) Renamed to "Perl Package Manager" again Moved to another namespace (ActivePerl::PPM) Not released to the CPAN either PPD spec has changed SOAP server was deprecated in favor of local SQLite database
So we needed to install ActivePerl or use an older client on the CPAN
PPM2 client cannot parse metadata for PPM4.
We need a new client.
Fortunately, the spec is simple.
So I wrote one.
App::ppmminus github.com/charsbar/ppmminus
Not released to the CPAN yet.
Now we can install 60-70% of the CPAN more quickly.
Then, what to do with the rest?
The most fundamental remedie is fix them.
Or, you can package what you want by yourself.
Creating PPM packages is very easy.
$ perl Makefile.PL $ make $ make test $ make ppm $ tar -czf foobar.tar.gz blib
You can also use a dedicated module.
PPM::Make
$ make_ppm
You might also want to provide a summary file.
$ rep_summary --rep /path/to/the/repository
This was written by Dr. Randy Kobes.
He was a maintainer of Winnipeg repository.
His repository was not so large, but highly respected.
He also created yet another CPAN search site called kobesearch.
Or CPAN::SQLite
Or Pod::Perldocs
He passed away last year.
I'm not sure until when his repository  would be kept.
I took over some of his modules, and started preparing kobesearch mirror.
(not done yet)
Found several things to fix.
top page is not in the distribution db schema needs to be updated (CPAN grows quite fast) mod_perl/CGI woes (better use Plack?)
Have you ever tried WebStart?
kobesearch is somewhat localized.
No Taiwanese nor Japanese so far.
Waiting for your contribution!
Questions?
Thank you

More Related Content

KEY
Modern Commandline Tool
PPTX
Capistrano 3 Deployment
PDF
Medindo performance do seu código Ruby, com Rafael França
PDF
Capistrano
ODP
Smolder Introduction
KEY
SydPHP March 2012 Meetup
PDF
Care and Feeding of Large Web Applications
PDF
Oracle中加速索引创建或重建的方法
Modern Commandline Tool
Capistrano 3 Deployment
Medindo performance do seu código Ruby, com Rafael França
Capistrano
Smolder Introduction
SydPHP March 2012 Meetup
Care and Feeding of Large Web Applications
Oracle中加速索引创建或重建的方法

What's hot (20)

ODP
Testing Toolbox
PPTX
What is Test Kitchen
PDF
Tomcat Maven Plugin
PDF
Self Created Load Balancer for MTA on AWS
PPSX
Setting advanced PHP development environment
PPTX
Performance tips for Symfony2 & PHP
PPTX
DevTalk: Introducing Helix- A New And Better DVCS
PDF
Composer intro
PDF
Padre user experience
PDF
20170701 kkbox的團隊協作方式
 
PPTX
Nodejs Performance Debug
PDF
Using Go in DevOps
PDF
perlcc made easy or, how to make a CGI Moose app
PPTX
Click’n’Deploy | SuperSpeakers @CodeCamp Iasi, 2014
PPTX
Tech trends 2018 2019
PPTX
How to Write Chef Cookbook
ODP
JRuby - Everything in a single process
KEY
Capistrano, Puppet, and Chef
PPTX
PDF
Speeding up your testflow
Testing Toolbox
What is Test Kitchen
Tomcat Maven Plugin
Self Created Load Balancer for MTA on AWS
Setting advanced PHP development environment
Performance tips for Symfony2 & PHP
DevTalk: Introducing Helix- A New And Better DVCS
Composer intro
Padre user experience
20170701 kkbox的團隊協作方式
 
Nodejs Performance Debug
Using Go in DevOps
perlcc made easy or, how to make a CGI Moose app
Click’n’Deploy | SuperSpeakers @CodeCamp Iasi, 2014
Tech trends 2018 2019
How to Write Chef Cookbook
JRuby - Everything in a single process
Capistrano, Puppet, and Chef
Speeding up your testflow
Ad

Similar to Revisiting ppm (20)

PDF
Modern Perl for the Unfrozen Paleolithic Perl Programmer
PDF
Recent Change of cpm
ODP
30 Minutes To CPAN
ODP
Perl in RPM-Land
PDF
Care and feeding notes
PDF
CPAN Training
KEY
Perlbrew
PDF
Puppet Primer, Robbie Jerrom, Solution Architect VMware
PDF
V mware
PPTX
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
PPT
走向开源:提交CPAN模块Step by Step
PDF
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PPTX
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
PDF
21st Century CPAN Testing: CPANci
ODP
Packaging for the Maemo Platform
PDF
PDF
PDF
Running operations in 2 hours at DevTernity 2015
PPT
Capital onehadoopintro
PDF
ZendCon 2015 - DevOps for Small Teams
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Recent Change of cpm
30 Minutes To CPAN
Perl in RPM-Land
Care and feeding notes
CPAN Training
Perlbrew
Puppet Primer, Robbie Jerrom, Solution Architect VMware
V mware
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
走向开源:提交CPAN模块Step by Step
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
21st Century CPAN Testing: CPANci
Packaging for the Maemo Platform
Running operations in 2 hours at DevTernity 2015
Capital onehadoopintro
ZendCon 2015 - DevOps for Small Teams
Ad

More from charsbar (20)

PPT
Common boolean class_for_perl5
PPT
2018年夏のPerl5
PDF
萬國之津梁
PDF
Better detection of what modules are used by some Perl 5 code
PPT
2017年夏のPerl
PPT
2017年春のPerl
PPT
Json(::PP) is a-changing
PPT
2016年のPerl (Long version)
PPT
JSON, JSON::PP, and more
PPT
perl language update
PPT
CPANの依存モジュールをもう少し正しく検出したい
PDF
2013年のCPANモジュール作成事情
PDF
What you need to remember when you upload to CPAN
PPT
On UnQLite
PPT
typemap in Perl/XS
PDF
Analyze CPAN, Analyze Community
PDF
Annual Report 2012
PDF
DBD::SQLite
PDF
CPANTS: Kwalitative website and its tools
PPT
CPANTS 2012
Common boolean class_for_perl5
2018年夏のPerl5
萬國之津梁
Better detection of what modules are used by some Perl 5 code
2017年夏のPerl
2017年春のPerl
Json(::PP) is a-changing
2016年のPerl (Long version)
JSON, JSON::PP, and more
perl language update
CPANの依存モジュールをもう少し正しく検出したい
2013年のCPANモジュール作成事情
What you need to remember when you upload to CPAN
On UnQLite
typemap in Perl/XS
Analyze CPAN, Analyze Community
Annual Report 2012
DBD::SQLite
CPANTS: Kwalitative website and its tools
CPANTS 2012

Revisiting ppm