cpan恐怖症の僕がPerlの環境構築してからTetoをいれるまで

貴重なマシンパワーの一部をニコ動の作業用BGMに割いてるみなさんおはようございます

もともとFlashというかAdobeが嫌いなので、しかしニコ厨としてはなんとかしてStremaing環境を構築したくて id:motemen さんのTetoをいれたかった
うちのMBAにはFlashいれてない。自宅で鯖化した旧MBがニコ動再生機と化していた

ニコニコ動画の音声だけを流し聴きするストリームサーバを書きました - NaN days - subtech]
音声が入れば最低でも作業用BGMきけるよ!ってこと頑張ってみた

PerlといえばCPAN。名前を聞くだけで魅力的だとわかるモジュールが目白押し。WWW::Mechanize::AutoPagerとか超羨ましい
しかしPerl、というかCPANには嫌な思い出があって

  • 依存が複雑
  • 依存が多すぎ
  • 初心者なのでこれ入ってて当然だよね、がわからない
  • そもそもLogが読めない
  • そもそも暗黙知大杉
  • Plagger 動かせなかった思い出
  • remedie 動かせなかった思い出

まあ cpanminus という 使いやすいモジュールができたらしいのでそっちで頑張ってみようと思った
ちなみに Plaggerremedieもcpanminusもmiyagawaさん製

perlbrew

homebrew + perlbrew + cpanm + local::lib + etc.な開発環境を作る - antipop]

$ cd ~/
$ curl -LO http://xrl.us/perlbrew
$ cd ~/perl5
$ perl perlbrew install
$ ~/perl5/perlbrew/bin/perlbrew init
$ vim ~/.zshrc # source ~/perl5/perlbrew/etc/bashrcを追加
$ source ~/perl5/perlbrew/etc/bashrc
$ perlbrew install perl-5.10.1 # 自分の環境だと失敗したので --force オプションをつけました
$ perlbrew swicth perl-5.10.1

cpanminus

perlbrew + cpanminus + local::lib で環境構築 - Webtech Walker]

$ mkdir ~/bin #pathを通しておく
$ cd ~/bin
$ wget --no-check-certificate http://xrl.us/cpanm
$ chmod +x cpanm

ここまでは特に問題ない

Teto

ffmpegが必要
最近homebrew にうつったので homebrew でいれる。MacPortsでも入れられるけど確かオプションが大量にあったような 要 port variants ffmpeg

sudo brew install ffmpeg


Tetoのソースのダウンロード

$ git clone git://github.com/motemen/Teto.git
$ cd Teto
$ perl Makefile.pm


とすると大量にwarningが出る
Module::Install::Any::Mooseがあれば足りないモジュールを指摘されるのでまずは突っ込む
$ cpanm Module::Install::Any::Moose

再度 perl Makefile.pm し、足りないモジュールをとにかくcpnam hogehoge していく
モジュールが糞多いけど、たぶん他のモジュールを使う際もよく使われてるライブラリが多い(と思われる)ので我慢しよう
終わったら make & sudo make install

Config::Pit について

pit といってソースにコードを書かなくて済むように~/.pit 以下にパスワードを預けるモジュールがあるのだけど
自分の環境でワンライナー飛ばしたんだけど、ちゃんと動かなかった

$ perl -MConfig::Pit -e'Config::Pit::set("nicovideo.jp",  data=>{ username => "miz404@gmail.com",  password =>"somethingpassword"})'

~/.pit/default.yaml をのぞくとなぜか miz404gmailになってたので直接編集して対応。
ここで二時間ぐらいハマっていた。encodingの設定が甘いんだろうか

Teto実行

まだ環境構築終わってません

サンプル通り./teto.pl --port 9090 http://www.nicovideo.jp/mylist/3271200 とすると依存がおかしいとの警告が出る
これはperl Makefile.pm に書かれてなくてもとにかくまだ足りないモジュールがあるらしいので、たいていは cpanm hogehoge していけば解決する
多分そのうち実行できるので、ログを確認する
[error] ~ ダウンロードできない云々は多分~/.pit/default.yaml がおかしいので見直す

無事にうごけば http://localhost:9090/ でインターフェースが確認できる
iTunesを起動して Cmd+U http://localhost:9090/stream でストリームが流れてくる


お疲れさまでした

教訓

  • やっぱCPANこわい
  • やっぱモダンなモジュールがどれとかわからない
  • 成功経験も大事
  • Makefile.pmに書いてある依存が全てではない


やっぱニコニコで作業用BGMだけでも聞けると快適