さくらレンタルサーバの OS は FreeBSD 9.1。色々コマンドを独自に導入しようとするも、バージョンが古く依存関連のライブラリが対応していなかったりして、うまくいかないことが多い。で、今回、プリコンパイルっぽいファイルがホストされているのを見つけたので、それで動くかどうか試してみる。
FreeBSD.org pkg mirror
https://pkg.freebsd.org/
で、アーキテクチャが amd64 なので、 FreeBSD:9:amd64 (no longer updated) を下っていき、こちらのリストにたどり着く。
PhantomJS があったので試しにダウンロードしてみる。
1 2 3 4 5 6 7 8 9 |
cd $HOME/tmp wget https://pkg.freebsd.org/FreeBSD:9:amd64/latest/All/phantomjs-2.0.0_6.txz mkdir phantomjs-2.1.1_11 cp phantomjs-2.1.1_11.txz phantomjs-2.1.1_11/item.txz cd phantomjs-2.1.1_11 tar Jxvf item.txz rm item.txz % cp usr/local/bin/phantomjs [目的地] |
で、PHP から呼び出してみたが、うんともすんとも言わない。ファイルサイズを見ても39MBと配布されているLinux用バイナリ(68MB)と比べると小さい。
p5-WWW-Mechanize-PhantomJS-0.11.txz の方は展開してみるとサードパーティのファイルがズラっと出てきた。うーん、これは一体なんだろう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
... (略) x usr/local/lib/perl5/site_perl/WWW/Mechanize/PhantomJS/ghostdriver/third_party/ webdriver-atoms/submit.js x usr/local/lib/perl5/site_perl/WWW/Mechanize/PhantomJS/ghostdriver/third_party/ webdriver-atoms/swipe.js x usr/local/lib/perl5/site_perl/WWW/Mechanize/PhantomJS/ghostdriver/third_party/ webdriver-atoms/tap.js x usr/local/lib/perl5/site_perl/WWW/Mechanize/PhantomJS/ghostdriver/third_party/ webdriver-atoms/type.js x usr/local/lib/perl5/site_perl/WWW/Mechanize/PhantomJS/ghostdriver/webdriver_at oms.js x usr/local/lib/perl5/site_perl/WWW/Mechanize/PhantomJS/ghostdriver/webelementlo cator.js x usr/local/lib/perl5/site_perl/WWW/Mechanize/Plugin/Selector.pm x usr/local/lib/perl5/site_perl/man/man3/WWW::Mechanize::PhantomJS.3.gz x usr/local/lib/perl5/site_perl/man/man3/WWW::Mechanize::PhantomJS::DSL.3.gz x usr/local/lib/perl5/site_perl/man/man3/WWW::Mechanize::PhantomJS::Examples.3.g z x usr/local/lib/perl5/site_perl/man/man3/WWW::Mechanize::Plugin::Selector.3.gz x usr/local/lib/perl5/site_perl/mach/5.24/auto/WWW/Mechanize/PhantomJS/.packlist |
というわけで簡単にはいかないようだ。とにかく、古いOSの共用レンタルサーバではできることに限りがある。あと残った手といえば、ローカルで FreeBSD 9.1 環境を構築して、そこでビルドして、サーバーに持ってくるという方法がある。権限の制約が無いので、コンパイル自体はできるだろうけど、動く保証はどこにもない。
しかし、なぜ一つのアプリケーションを動かすというだけで、こんなにも難しいのだろう。FreeBSD。”難しい”の質が、難解なパズルを解くといった頭脳の瞬発力を問うものではなく、時間をかけたトライアンドエラーに対する忍耐力を問う部類のものなので、浪費感が半端ない。
このような問題はコミュニティフォーラムに投稿されていたりするが、OSをアップグレードしろ、といったそっけない答えが帰ってくるのが現状だ。人の時間を浪費させることに対して、それを当然だとする考え、ひいてはそれが根底にあるプロジェクトは、やがて淘汰されるだろう。