Revisiting ppm
Upcoming SlideShare
Loading in...5

Revisiting ppm


  • 1,906 views 2011 2011



Total Views
Views on SlideShare
Embed Views



4 Embeds 174 129 42
http://localhost 2 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Revisiting ppm Revisiting ppm Presentation Transcript

  • 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
  • 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
  • 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
  • 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