revisiting ppm

78
Revisiting PPM March 26, 2011 @OSDC.TW Kenichi Ishigaki (charsbar)

Upload: charsbar

Post on 08-Jun-2015

1.779 views

Category:

Documents


0 download

DESCRIPTION

osdc.tw 2011

TRANSCRIPT

Page 1: Revisiting ppm

Revisiting PPM

March 26, [email protected]

Kenichi Ishigaki(charsbar)

Page 2: Revisiting ppm

Do you rememberwhat miyagawa-

santalked here last

year?

Page 3: Revisiting ppm

cpanminus

Page 4: Revisiting ppm

A lightweightand faster

CPAN client.

Page 5: Revisiting ppm

Why is itlightweightand faster?

Page 6: Revisiting ppm

Remote API servers

Page 7: Revisiting ppm

cpanmetadb

Page 8: Revisiting ppm

search.cpan.org

Page 9: Revisiting ppm

It usually doesn't

download indices

from a CPAN mirror.

Page 10: Revisiting ppm

Less configurationLess start-up

timeLess verbose

Page 11: Revisiting ppm

Better userexperience.

Page 12: Revisiting ppm

miyagawa++

Page 13: Revisiting ppm

You can make iteven faster.

Page 14: Revisiting ppm

cpanm --notest

Page 15: Revisiting ppm

CAVEAT --EMPTOR

Page 16: Revisiting ppm

If you don't runtests, you can'ttell if it reallyworks for you.

Page 17: Revisiting ppm

We can guess.

Page 18: Revisiting ppm

We have CPAN testers.

Page 19: Revisiting ppm

They continuously do

comprehensive tests.

Page 20: Revisiting ppm

It might bereasonable

to trust themand skip tests.

Page 21: Revisiting ppm

Go a stepfurther.

Page 22: Revisiting ppm

You delegatedtesting

to the testers.

Page 23: Revisiting ppm

Why don't youdelegate building

to someone else, too?

Page 24: Revisiting ppm

You can usesystem packagemanagers like

yum or apt.

Page 25: Revisiting ppm

It's convenientif you are satisfied

with official packages.

Page 26: Revisiting ppm

It might cause lots of

troubles if you install

private packageswithout care.

Page 27: Revisiting ppm

What can weuse then?

Page 28: Revisiting ppm

PPM

Page 29: Revisiting ppm

Perl Package Manager

Page 30: Revisiting ppm

PPM is a toolto install

pre-processedpackages.

Page 31: Revisiting ppm

Originallywritten forActivePerl.

Page 32: Revisiting ppm

Used largely bythe Windows

users.

Page 33: Revisiting ppm

Not onlyfor Windows.

Page 34: Revisiting ppm

60-70% of theCPAN distributionsare ready for PPM.

Page 35: Revisiting ppm

You could savemore time if

you use them.

Page 36: Revisiting ppm

Or, if youcan use them.

Page 37: Revisiting ppm

PPM has gone through

several turning points.

Page 38: Revisiting ppm

PPM 1.0

•for Perl 5.004/5 (around 1998)•based on Open Software Description (1997)

Page 39: Revisiting ppm

PPM 2.0

•for Perl 5.6 (around 2000)•Pumpking from ActiveState•Released to the CPAN•started SOAP integration

Page 40: Revisiting ppm

PPM 3.0

•for Perl 5.8 (around 2002)•Not released to the CPAN•Called "Programmer's Package Manager"•Still used a SOAP server

Page 41: Revisiting ppm

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)

Page 42: Revisiting ppm

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

Page 43: Revisiting ppm

So we needed to

•install ActivePerl•or use an older client on the CPAN

Page 44: Revisiting ppm

PPM2 client cannot

parse metadata for

PPM4.

Page 45: Revisiting ppm

We needa new client.

Page 46: Revisiting ppm

Fortunately,the spec is

simple.

Page 47: Revisiting ppm

So I wrote one.

Page 48: Revisiting ppm

App::ppmminus

github.com/charsbar/ppmminus

Page 49: Revisiting ppm

Not releasedto the CPAN yet.

Page 50: Revisiting ppm

Now we can install

60-70% of the CPAN

more quickly.

Page 51: Revisiting ppm

Then, what to do

with the rest?

Page 52: Revisiting ppm

The most fundamentalremedie is fix

them.

Page 53: Revisiting ppm

Or, you can package

what you wantby yourself.

Page 54: Revisiting ppm

Creating PPM packages

is very easy.

Page 55: Revisiting ppm

•$ perl Makefile.PL•$ make•$ make test•$ make ppm•$ tar -czf foobar.tar.gz blib

Page 56: Revisiting ppm

You can alsouse a dedicated

module.

Page 57: Revisiting ppm

PPM::Make

Page 58: Revisiting ppm

$ make_ppm

Page 59: Revisiting ppm

You might alsowant to providea summary file.

Page 60: Revisiting ppm

$ rep_summary --rep /path/to/the/repository

Page 61: Revisiting ppm

This was writtenby Dr. Randy

Kobes.

Page 62: Revisiting ppm

He was a maintainerof Winnipeg repository.

Page 63: Revisiting ppm

His repository was

not so large, buthighly respected.

Page 64: Revisiting ppm

He also createdyet another CPANsearch site called

kobesearch.

Page 65: Revisiting ppm

Or CPAN::SQLite

Page 66: Revisiting ppm

Or Pod::Perldocs

Page 67: Revisiting ppm

He passed awaylast year.

Page 68: Revisiting ppm

I'm not sureuntil when his

repository would be kept.

Page 69: Revisiting ppm

I took over some of

his modules, andstarted preparing

kobesearch mirror.

Page 70: Revisiting ppm

(not done yet)

Page 71: Revisiting ppm

Found severalthings to fix.

Page 72: Revisiting ppm

•top page is not in the distribution•db schema needs to be updated (CPAN grows quite fast)•mod_perl/CGI woes (better use Plack?)

Page 73: Revisiting ppm

Have you evertried WebStart?

Page 74: Revisiting ppm

kobesearch issomewhat localized.

Page 75: Revisiting ppm

No Taiwanesenor Japanese

so far.

Page 76: Revisiting ppm

Waiting foryour

contribution!

Page 77: Revisiting ppm

Questions?

Page 78: Revisiting ppm

Thank you