まずはCPAN::Uploaderをインストール
# cpan -i CPAN::Uploader CPAN: Storable loaded ok (v2.24) Going to read '/root/.cpan/Metadata' Database was generated on Thu, 18 Nov 2010 02:43:48 GMT Running install for module 'CPAN::Uploader' CPAN: YAML loaded ok (v0.72) Running make for R/RJ/RJBS/CPAN-Uploader-0.102150.tar.gz CPAN: LWP::UserAgent loaded ok (v5.835) CPAN: Time::HiRes loaded ok (v1.9721) Fetching with LWP: ftp://ftp.jaist.ac.jp/pub/CPAN/authors/id/R/RJ/RJBS/CPAN-Uploader-0.102150.tar.gz CPAN: Digest::SHA loaded ok (v5.48) CPAN: Compress::Zlib loaded ok (v2.021) Checksum for /root/.cpan/sources/authors/id/R/RJ/RJBS/CPAN-Uploader-0.102150.tar.gz ok CPAN: Archive::Tar loaded ok (v1.68) CPAN-Uploader-0.102150 CPAN-Uploader-0.102150/Changes CPAN-Uploader-0.102150/dist.ini CPAN-Uploader-0.102150/bin CPAN-Uploader-0.102150/bin/cpan-upload CPAN-Uploader-0.102150/lib/CPAN CPAN-Uploader-0.102150/lib/CPAN/Uploader.pm CPAN-Uploader-0.102150/t CPAN-Uploader-0.102150/t/00-load.t CPAN-Uploader-0.102150/META.yml CPAN-Uploader-0.102150/LICENSE CPAN-Uploader-0.102150/README CPAN-Uploader-0.102150/MANIFEST CPAN-Uploader-0.102150/META.json CPAN-Uploader-0.102150/t/release-pod-syntax.t CPAN-Uploader-0.102150/Makefile.PL CPAN: File::Temp loaded ok (v0.22) CPAN.pm: Going to build R/RJ/RJBS/CPAN-Uploader-0.102150.tar.gz Checking if your kit is complete... Looks good Warning: prerequisite Getopt::Long::Descriptive 0.084 not found. Warning: prerequisite Term::ReadKey 0 not found. Writing Makefile for CPAN::Uploader ---- Unsatisfied dependencies detected during ---- ---- RJBS/CPAN-Uploader-0.102150.tar.gz ---- Getopt::Long::Descriptive [requires] Term::ReadKey [requires] Running make test Delayed until after prerequisites Running make install Delayed until after prerequisites Running install for module 'Getopt::Long::Descriptive' Running make for R/RJ/RJBS/Getopt-Long-Descriptive-0.086.tar.gz Fetching with LWP: ftp://ftp.jaist.ac.jp/pub/CPAN/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.086.tar.gz Checksum for /root/.cpan/sources/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.086.tar.gz ok Getopt-Long-Descriptive-0.086/ Getopt-Long-Descriptive-0.086/Changes Getopt-Long-Descriptive-0.086/MANIFEST Getopt-Long-Descriptive-0.086/META.yml Getopt-Long-Descriptive-0.086/Makefile.PL Getopt-Long-Descriptive-0.086/README Getopt-Long-Descriptive-0.086/lib/ Getopt-Long-Descriptive-0.086/t/ Getopt-Long-Descriptive-0.086/t/00-load.t Getopt-Long-Descriptive-0.086/t/descriptive.t Getopt-Long-Descriptive-0.086/t/pod-coverage.t Getopt-Long-Descriptive-0.086/t/pod.t Getopt-Long-Descriptive-0.086/lib/Getopt/ Getopt-Long-Descriptive-0.086/lib/Getopt/Long/ Getopt-Long-Descriptive-0.086/lib/Getopt/Long/Descriptive/ Getopt-Long-Descriptive-0.086/lib/Getopt/Long/Descriptive.pm Getopt-Long-Descriptive-0.086/lib/Getopt/Long/Descriptive/Opts.pm Getopt-Long-Descriptive-0.086/lib/Getopt/Long/Descriptive/Usage.pm CPAN.pm: Going to build R/RJ/RJBS/Getopt-Long-Descriptive-0.086.tar.gz Checking if your kit is complete... Looks good Writing Makefile for Getopt::Long::Descriptive cp lib/Getopt/Long/Descriptive/Opts.pm blib/lib/Getopt/Long/Descriptive/Opts.pm cp lib/Getopt/Long/Descriptive.pm blib/lib/Getopt/Long/Descriptive.pm cp lib/Getopt/Long/Descriptive/Usage.pm blib/lib/Getopt/Long/Descriptive/Usage.pm Manifying blib/man3/Getopt::Long::Descriptive::Opts.3pm Manifying blib/man3/Getopt::Long::Descriptive.3pm Manifying blib/man3/Getopt::Long::Descriptive::Usage.3pm RJBS/Getopt-Long-Descriptive-0.086.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-load.t ....... 1/1 # Testing Getopt::Long::Descriptive 0.086, Perl 5.010000, /usr/bin/perl t/00-load.t ....... ok t/descriptive.t ... ok t/pod-coverage.t .. ok t/pod.t ........... ok All tests successful. Files=4, Tests=44, 4 wallclock secs ( 0.14 usr 0.02 sys + 0.88 cusr 0.11 csys = 1.15 CPU) Result: PASS RJBS/Getopt-Long-Descriptive-0.086.tar.gz /usr/bin/make test -- OK Running make install Prepending /root/.cpan/build/Getopt-Long-Descriptive-0.086-yuRghB/blib/arch /root/.cpan/build/Getopt-Long-Descriptive-0.086-yuRghB/blib/lib to PERL5LIB for 'install' Installing /usr/local/share/perl/5.10.0/Getopt/Long/Descriptive.pm Installing /usr/local/share/perl/5.10.0/Getopt/Long/Descriptive/Usage.pm Installing /usr/local/share/perl/5.10.0/Getopt/Long/Descriptive/Opts.pm Installing /usr/local/man/man3/Getopt::Long::Descriptive::Opts.3pm Installing /usr/local/man/man3/Getopt::Long::Descriptive.3pm Installing /usr/local/man/man3/Getopt::Long::Descriptive::Usage.3pm Appending installation info to /usr/lib/perl/5.10/perllocal.pod RJBS/Getopt-Long-Descriptive-0.086.tar.gz /usr/bin/make install -- OK Running install for module 'Term::ReadKey' Running make for J/JS/JSTOWE/TermReadKey-2.30.tar.gz Fetching with LWP: ftp://ftp.jaist.ac.jp/pub/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz Fetching with LWP: ftp://ftp.jaist.ac.jp/pub/CPAN/authors/id/J/JS/JSTOWE/CHECKSUMS Checksum for /root/.cpan/sources/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz ok TermReadKey-2.30/ TermReadKey-2.30/genchars.pl TermReadKey-2.30/Makefile.PL TermReadKey-2.30/Configure.pm TermReadKey-2.30/test.pl TermReadKey-2.30/ReadKey.pm TermReadKey-2.30/META.yml TermReadKey-2.30/ReadKey.xs TermReadKey-2.30/ppport.h TermReadKey-2.30/MANIFEST TermReadKey-2.30/README CPAN.pm: Going to build J/JS/JSTOWE/TermReadKey-2.30.tar.gz Checking if your kit is complete... Looks good Writing Makefile for Term::ReadKey cp ReadKey.pm blib/lib/Term/ReadKey.pm AutoSplitting blib/lib/Term/ReadKey.pm (blib/lib/auto/Term/ReadKey) /usr/bin/perl -I/usr/share/perl/5.10 genchars.pl Writing termio/termios section of cchars.h... Done. Checking for sgtty... Sgtty NOT found. Writing sgtty section of cchars.h... Done. /usr/bin/perl /usr/local/share/perl/5.10.0/ExtUtils/xsubpp -noprototypes -typemap /usr/share/perl/5.10/ExtUtils/typemap ReadKey.xs > ReadKey.xsc && mv ReadKey.xsc ReadKey.c cc -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -DVERSION=\"2.30\" -DXS_VERSION=\"2.30\" -fPIC "-I/usr/lib/perl/5.10/CORE" ReadKey.c In file included from ReadKey.xs:6: ppport.h:230:1: warning: "PERL_UNUSED_DECL" redefined In file included from ReadKey.xs:4: /usr/lib/perl/5.10/CORE/perl.h:299:1: warning: this is the location of the previous definition Running Mkbootstrap for Term::ReadKey () chmod 644 ReadKey.bs rm -f blib/arch/auto/Term/ReadKey/ReadKey.so cc -shared -O2 -g -L/usr/local/lib ReadKey.o -o blib/arch/auto/Term/ReadKey/ReadKey.so \ \ chmod 755 blib/arch/auto/Term/ReadKey/ReadKey.so cp ReadKey.bs blib/arch/auto/Term/ReadKey/ReadKey.bs chmod 644 blib/arch/auto/Term/ReadKey/ReadKey.bs Manifying blib/man3/Term::ReadKey.3pm JSTOWE/TermReadKey-2.30.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" -w test.pl 1 .. 8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 JSTOWE/TermReadKey-2.30.tar.gz /usr/bin/make test -- OK Running make install Prepending /root/.cpan/build/TermReadKey-2.30-ecL7RY/blib/arch /root/.cpan/build/TermReadKey-2.30-ecL7RY/blib/lib to PERL5LIB for 'install' Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /usr/local/lib/perl/5.10.0/auto/Term/ReadKey/ReadKey.so Installing /usr/local/lib/perl/5.10.0/auto/Term/ReadKey/ReadKey.bs Installing /usr/local/lib/perl/5.10.0/Term/ReadKey.pm Installing /usr/local/lib/perl/5.10.0/auto/Term/ReadKey/autosplit.ix Installing /usr/local/man/man3/Term::ReadKey.3pm Appending installation info to /usr/lib/perl/5.10/perllocal.pod JSTOWE/TermReadKey-2.30.tar.gz /usr/bin/make install -- OK Running make for R/RJ/RJBS/CPAN-Uploader-0.102150.tar.gz Has already been unwrapped into directory /root/.cpan/build/CPAN-Uploader-0.102150-arOBEv CPAN.pm: Going to build R/RJ/RJBS/CPAN-Uploader-0.102150.tar.gz cp lib/CPAN/Uploader.pm blib/lib/CPAN/Uploader.pm cp bin/cpan-upload blib/script/cpan-upload /usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/cpan-upload Manifying blib/man1/cpan-upload.1p Manifying blib/man3/CPAN::Uploader.3pm RJBS/CPAN-Uploader-0.102150.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-load.t ............. ok t/release-pod-syntax.t .. skipped: these tests are for release candidate testing All tests successful. Files=2, Tests=1, 0 wallclock secs ( 0.07 usr 0.02 sys + 0.26 cusr 0.04 csys = 0.39 CPU) Result: PASS RJBS/CPAN-Uploader-0.102150.tar.gz /usr/bin/make test -- OK Running make install Prepending /root/.cpan/build/CPAN-Uploader-0.102150-arOBEv/blib/arch /root/.cpan/build/CPAN-Uploader-0.102150-arOBEv/blib/lib to PERL5LIB for 'install' Installing /usr/local/share/perl/5.10.0/CPAN/Uploader.pm Installing /usr/local/man/man1/cpan-upload.1p Installing /usr/local/man/man3/CPAN::Uploader.3pm Installing /usr/local/bin/cpan-upload Appending installation info to /usr/lib/perl/5.10/perllocal.pod RJBS/CPAN-Uploader-0.102150.tar.gz /usr/bin/make install -- OK
テストでアップロード。失敗するのはおそらくバージョンが古いから。
$ cpan-upload -v ******************************-0.05.tar.gz registering upload with PAUSE web server ----- REQUEST BEGIN ----- Authorization: Basic ************************************ Content-Length: 45392 Content-Type: multipart/form-data; boundary=xYzZY ----- REQUEST END ------- POSTing upload for ******************************-0.05.tar.gz request failed with error code 406 Message: Not Acceptable
内容を適当に書き換えて再度アップロードチェック。今回は成功。その前にperl Makefile.PLから。
$ perl Makefile.PL $ make $ make test $ make dist $ cpan-upload -v ******************************-0.06.tar.gz registering upload with PAUSE web server ----- REQUEST BEGIN ----- Authorization: Basic ************************************ Content-Length: 45399 Content-Type: multipart/form-data; boundary=xYzZY ----- REQUEST END ------- POSTing upload for ******************************-0.06.tar.gz Looks OK! ----- RESPONSE BEGIN ----- Cache-Control: no-cache Connection: close Date: Thu, 18 Nov 2010 07:23:33 GMT Pragma: no-cache Accept: * Server: Apache Vary: accept-encoding Content-Length: 22419 Content-Type: text/html; charset=ISO-8859-1 Expires: Thu, 18 Nov 2010 07:23:33 GMT Last-Modified: Thu, 18 Nov 2010 07:23:33 GMT Client-Date: Thu, 18 Nov 2010 07:24:24 GMT Client-Peer: 195.37.231.65:80 Client-Response-Num: 1 Link: </pause/pause_favicon.jpg>; rel="shortcut icon"; type="image/jpeg" Link: </pause/pause.css>; rel="stylesheet"; title="pause"; type="text/css" Title: PAUSE: add_uri ----- RESPONSE END ------- PAUSE add message sent ok [200]