JPerl Advent Calendar Casual Track 一日目をやる myfinder です。
去年はlocal::libがもてはやされたりしていましたが、あれから1年の間にPerlは更に手軽に使えるようになりました。
初日、最初の一歩ということで今回はPerl開発環境を簡単に作るための手順をまとめます。
対象は基本的にLinuxで、さくらのVPSとかその辺を想定しています。
Macでも同じようにやればできるでしょう。
Windowsの場合はわかりません。きっとWin32トラックの人が書いてくれると思います(ぉ
これまでは、システムの提供するPerl + local::libで環境を作っていたと思いますが、perlbrewの登場によってPerl本体すらも自分のアカウント内に置くことが簡単にできるようになりました。
バージョンの切り替えもできるので、複数のバージョンが混在する環境でモジュールを評価したいときにも便利です。
また、いろいろ試している途中で設定状況がよくわからなくなってしまった場合はディレクトリを丸ごと削除すればそれでなかったことにできるので、Perlの学習をするにも最適なのではと思います。
セットアップ方法は簡単
$ curl -LO http://xrl.us/perlbrew $ perl perlbrew install $ rm perlbrew $ ~/perl5/perlbrew/bin/perlbrew init $ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bashrc $ source ~/.bashrc
ここまでで、perlbrewを使うお膳立ては整いました。
現時点でのPerlの最新安定版は5.12.2なので、それをインストールしてみます。
$ perlbrew install perl-5.12.2 $ perlbrew switch perl-5.12.2 $ perl -v This is perl 5, version 12, subversion 2 (v5.12.2) built for x86_64-linux Copyright 1987-2010, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
perlbrew installを実行すると「tail -f /home/username/perl5/perlbrew/build.log」という表示が出ます、これはインストール経過ログを見るためのコマンドです。
インストールの進捗が気になるときは、実行するとよいでしょう。
インストールに失敗した場合はどこで失敗しているかが出力されるので、必要に応じて見るとよいです。
ここまで出来れば、~/perl5/perlbrew/perls/ディレクトリの下にインストールされます。
作業中に状況がよくわからなくなっちゃった場合は、~/perl5ごと削除して、もう一度最初からやればなかった事にできます。
~/perl5を丸ごとsvnやgitリポジトリに突っ込んで管理するのも手でしょう。
perlをswitchすると、付随するcpanコマンドも下記のようにperlbrewでインストールしたものが使われます。
$ which cpan ~/perl5/perlbrew/perls/perl-5.12.2/bin/cpan
が、貧弱なサーバ環境の場合cpanコマンドが重たすぎたり、そもそも実行が遅いなどあまりいい事がありません。
2010年代には軽量版のcpanmがありますので、そちらを使いましょう。
インストールは簡単
$ curl -L http://cpanmin.us | perl - App::cpanminus $ which cpanm ~/perl5/perlbrew/perls/perl-5.12.2/bin/cpanm
これだけで、上記のようにcpnamコマンドが入ります。
使い方も簡単
$ cpanm Acme $ ls ~/perl5/perlbrew/perls/perl-5.12.2/lib/site_perl/5.12.2/ Acme.pm App Bundle File HTML HTTP LWP LWP.pm Net Spiffy.pm URI URI.pm WWW lwpcook.pod lwptut.pod x86_64-linux
これだけで、perlbrewで仕立てたperlの中にモジュールが入ってくれます。
「CPANモジュールのアンインストールってどうやるんですか?」という疑問は長年の間スルーされ続けてきたトピックの一つだと思いますが、ついにその疑問に答えるものが出てきました。
それがpm-uninstallです。
pm-uninstallを入れると、コマンド一発でモジュールを消せるのでとってもお手軽ですね。
インストールはcpanmで一発
$ cpanm App::pmuninstall $ which pm-uninstall ~/perl5/perlbrew/perls/perl-5.12.2/bin/pm-uninstall
だけ。
使い方も簡単。
$ pm-uninstall Acme Acme is included in the distribution Acme and contains: /home/somei/perl5/perlbrew/perls/perl-5.12.2/lib/site_perl/5.12.2/Acme.pm /home/somei/perl5/perlbrew/perls/perl-5.12.2/man/man3/Acme.3 Are you sure to uninstall Acme? [y] y $ ls ~/perl5/perlbrew/perls/perl-5.12.2/lib/site_perl/5.12.2/ App Bundle CPAN File HTML HTTP LWP LWP.pm Net POD2 Spiffy.pm Test URI URI.pm WWW YAML YAML.pm lib local lwpcook.pod lwptut.pod x86_64-linux
Acmeがきれいに消えてしまいました。
CPANモジュールは日々改善されているので、最新に簡単に追随できるようにしたいところです。
そんなときにはcpan-outdatedを使います。
$ cpanm App::cpanoutdated $ which cpan-outdated ~/perl5/perlbrew/perls/perl-5.12.2/bin/cpan-outdated
cpan-outdatedコマンドを実行すると、新しいバージョンがあるものについて表示してくれます。
$ cpan-outdated A/AN/ANDYA/Test-Harness-3.22.tar.gz B/BI/BINGOS/Archive-Extract-0.46.tar.gz B/BI/BINGOS/Archive-Tar-1.72.tar.gz .....
こんな感じで。
「え、この一覧から手でcpanmしないといけないの!?」と思った人は安心してください。
下記のようにやれば一発で全部アップデートされます。
$ cpan-outdated | cpanm
お手軽ですね。
明日はミスターPerlCasualこと yusukebe さんです、お楽しみに!