Help us understand the problem. What is going on with this article?

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

More than 5 years have 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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした