heroku で 最新の perl を使う
ダウンロードすれば使えるリロケータブル perl はまさに heroku などの paas にぴったりである。
試しに heroku-buildpack-perl を relocatable perl 5.20.1 を使うようにかえてみた。
使い方
build-pack として上記のものを指定するだけである。
簡単な例を書くと以下の通り。(heroku login はすでにできているとする。)
app.psgi と cpanfile を用意し git add . && git commit -am init しておく。
$ ls app.psgi cpanfile $ cat app.psgi sub { [200, [], ["hello from perl $^V"]]; }; $ cat cpanfile requires "Plack"; requires "Starman"; # なくてもいい
heroku create で build-pack を指定する。
$ heroku create --buildpack 'https://github.com/shoichikaji/heroku-buildpack-perl.git#relocatable-perl'
deploy。
$ git push heroku master Initializing repository, done. Counting objects: 47, done. Delta compression using up to 8 threads. Compressing objects: 100% (46/46), done. Writing objects: 100% (47/47), 4.89 KiB | 0 bytes/s, done. Total 47 (delta 13), reused 0 (delta 0) -----> Fetching custom git buildpack... done -----> Perl/PSGI app detected -----> Vendoring Perl Using perl v5.20.1 -----> Installing dependencies Successfully installed ExtUtils-Config-0.008 ... (略) ... Successfully installed Starman-0.4010 29 distributions installed -----> Installing Starman Starman is up to date. (0.4010) -----> Changing shebang lines changed shebang line of /tmp/build_ea573262-0e0c-48c3-ad01-456f07522687/vendor/bin/net-server changed shebang line of /tmp/build_ea573262-0e0c-48c3-ad01-456f07522687/vendor/bin/plackup changed shebang line of /tmp/build_ea573262-0e0c-48c3-ad01-456f07522687/vendor/bin/starman -----> Discovering process types Procfile declares types -> (none) Default types for Perl/PSGI -> web -----> Compressing... done, 18.4MB -----> Launching... done, v5 http://glacial-shore-7685.herokuapp.com/ deployed to Heroku To git@heroku.com:glacial-shore-7685.git * [new branch] master -> master
heroku open
でアクセス! hello from perl v5.20.1 と表示される(はず)。