More than 1 year has passed since last update.

tl;dr - HerokuでPSGIアプリを動かすなら https://github.com/pnu/heroku-buildpack-perl がおすすめ。

miyagawa/heroku-buildpack-perl

確認したバージョン: ae9e87e3 (2014/10/31)

  • detect: app.psgiが存在するときにbuildpackが有効になる。
  • Perl: dynoに最初からインストールされている/usr/bin/perlを使う。
  • 依存解決: cpanmをインストールしてcpanm --installdeps .を実行することで依存しているCPANモジュールをインストールする。
    • キャッシュ: cpanmによってインストールされたモジュールをCACHE_DIRにキャッシュする。
  • WebサーバーはStarman

miyagawa/heroku-buildpack-perl#carton

miyagawa/heroku-buildpack-perlのfork。

確認したバージョン: 3066d917 (2013/07/24)

  • Perl: .perl-versionに対応するPerlをcache.bulknews.net/heroku/perl-$PERL_VERSION.tgzからダウンロードしてインストールする。
  • 依存解決: cpanmを使ってcarton 0.9.59をインストールして、carton install --deploymentでアプリケーションが依存しているCPANモジュールをインストールする。
  • Webサーバーとしてcarton execを経由してstarmanを起動する。

作者による解説: Carton and perl version support: miyagawa/heroku-buildpack-perl - Tatsuhiko Miyagawa's blog

pnu/heroku-buildpack-perl

確認したバージョン: ae9e87e3 (2014/08/14)

miyagawa/heroku-buildpack-perlのfork。

Perl環境向けのbuildpackの中ではおそらく一番作りこまれていて、汎用性が高い。まずはこれを使うことを検討するとよさそう。

基本的な機能や使い方はREADMEにまとまっている。

compileだけで100行近くの分量があるので、重要そうな部分だけ紹介する。

  • Perl: .perl-versionに対応するPerlをhttps://heroku-buildpack-perl.s3.amazonaws.com/perl-$PERL_VERSION.tgzからダウンロードしてインストールする。
    • 利用できる最新バージョンは5.20.0。
    • systemを指定するとdynoのperlが使われる。
  • 依存解決:
    • carton install --deployment --cached, cpanm --installdeps .で依存しているモジュールをインストールする。
    • local::libを使って、cpanmによるモジュールのインストール先もcartonと同じ./local/に設定している。
    • キャッシュ: ./local/をキャッシュする。Perlのバージョン指定が前回のcompile時とは違っていたらキャッシュを破棄する。
  • 依存モジュールが多すぎてcompileがタイムアウトするアプリ向けに、あらかじめtarで固めておいた./local/をダウンロードしてそのまま使う機能がある。
  • 環境変数でPerlを取得するサーバー、cpanmのオプション、CPANのミラー、Perlのバージョン(.perl-versionより優先される)などを設定できる。

shoichikaji/heroku-buildpack-perl#relocatable-perl

miyagawa/heroku-buildpack-perlのfork。

確認したバージョン: 1d021019 (2014/09/23)

リンク

sng2c/heroku-buildpack-perlcarton

miyagawa/heroku-buildpack-perlのfork。

確認したバージョン: e32f90b1 (2014/09/12)

  • detect: cpanfilevendorが存在するときに有効になる。
  • Perl: dynoに最初からインストールされている/usr/bin/perlを使う。
  • 依存解決: carton install --deployment --cachedで依存しているモジュールをインストールする。

judofyr/perloku

確認したバージョン: f5a55a8c (2014/08/21)

  • detect: Perlokuが存在するときに有効になる。
  • Perl: perl 5.18.1を perloku.s3.amazonaws.com からインストールする。
  • 依存解決: cpanmで依存しているモジュールをインストールする。

kazeburo/heroku-buildpack-perl-procfile

確認したバージョン: 571d80fc (2014/06/27)

  • detect: 「Makefile.PL, Build.PL, META.json, cpanfile」のどれかが存在して、かつProcfileが存在するときにbuildpackが有効になる。
  • Perl: dynoに最初からインストールされている/usr/bin/perlを使う。
  • 依存解決: cpanm --installdeps .で依存しているモジュールをインストールする。
  • compileの実行時に、パスを通すシェルスクリプトを.profile.dに追加する。

リンク

CC0