LoginSignup
14
14

More than 5 years have passed since last update.

Perl5のPSGIアプリ用buildpackのまとめ

Last updated at Posted at 2014-10-24

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

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14