あーかいぶすハイディフィニション

ここはもう更新しとらんのじゃ

なんか GrowthForeCast が動かなかったお話

Perl の知識無すぎワロリンヌwwww以前の問題だろオォン?と Perl ニキ達に折檻されそうな内容です……。

なんかむっちゃエラーでた、困る

Perlbrew いれろ、と公式に書いてあったので入れたけどよくわかんぬぇ!が、なんとか Perlbrew はインストールできたので github から GrowthForecast 持ってきて、cpanm --installdeps ./Growthforecast してみた。したらばこうなってたので、

-rwxrwxr-x 1 growthforecast growthforecast   7534 Sep 19 19:42 growthforecast.pl

こうじゃ。

[growthforecast@localhost GrowthForecast]$ ./growthforecast.pl --data-dir /home/growthforecast/GrowthForecast/data/ --port 5125
Can't locate Plack/Loader.pm in @INC (@INC contains: /home/growthforecast/GrowthForecast/lib /home/growthforecast/GrowthForecast/extlib/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./growthforecast.pl line 10.
BEGIN failed--compilation aborted at ./growthforecast.pl line 10.

意味わかんねぇな?いやずっとそう思っとったんじゃけどな?ワシ気づいてしまってな?

[growthforecast@localhost GrowthForecast]$ which perl
~/perl5/perlbrew/perls/perl-5.18.1/bin/perl
[growthforecast@localhost GrowthForecast]$ whereis perl
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz
[growthforecast@localhost GrowthForecast]$ vi growthforecast.pl
#!/usr/bin/perl
(以下略)

あっ(察し)。
perlbrew ってシステムワイドの perl をなんかこういい感じに自分に向けてくれるんじゃねえのか……、追加した PATH の意味ないの?!

結局どうすればいいの
  1. growthforecast.pl の shebang を書き換える
#!/home/growthforecast/perl5/perlbrew/perls/perl-5.18.1/bin/perl
とか
#!/usr/bin/env perl
  1. /usr/bin/perl を無理やりリムーブして、シンボリックリンクとして ~/perl5/perlbrew/perls/perl-5.18.1/bin/perl に向ける

ミドルウェアに影響出そうなので、後者はやんないほうが良い気がします。となると必然的に前者の shebang 書き換えですが、とりあえず直接 perlbrew 以下のバイナリを指定すれば良いっでしょう。そもそも perlbrew インストールしてそのコントール下においたのは、GrowthForeCast のためなので。
んで、/usr/bin/env を呼び出す方ですが、こっちはみなさんご存知のように最大の下策でしょう。某ガバガバチャート RTA に定評のある兄貴なみに「動いたからいいでしょう!」という粒度であれば採用しても構いませんが、問題が起きた時の切り分けが極端に難しくなるのでおすすめできません。
参考:どさにっき

動いた動いた

なにはともあれ動きました。こんな初歩的な事に躓いてるんじゃねえよ!とお叱りを受けるような内容だとは思いますが、オフィシャルのインストールと起動方法があそこまで簡素に書かれているので、すんなり動くものだと思っていました、辛い、辛いです……。