Express5800/110Gd その9

polipoで特に大きな問題もなく、ニコニコ動画なども再生されるまでの時間や一度見た動画の表示が早くなった気がする。が、ニコニコ動画は同じデータを何度も繰り返してみる性質が強いので、ここはやはり専用ツールhttp://nicolist.net/nicocache_nl/FreeBSDのサービスとして動かせないか試してみた。

まずは、FreeBSDJAVAが動かないと話にならないので、portsでjre16のインストールを始めた。途中で以下のファイルをダウンロードして/usr/ports/distfilesに置けと要求してくるので、言われたようにする。

  • bsd-jdk16-patches-4.tar.bz2
  • diablo-caffe-freebsd6-i386-1.5.0_07-b01.tar.bz2
  • jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
  • jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
  • jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
  • tzupdater-1.3.3-2007k.zip

なおportsが要求してくるファイルは指定されているURLで更新されてしまっていたので、portsを更新する必要があった。色々と調べたところ、最新portsへの更新方法は

portsnap fetch
portsnap extract

であるようだ*1。これで更新すると、ダウンロードして準備したファイルを要求してくるようになった。
でまぁ続けると、勝手にいろいろなプログラムをインストールし始めるなぁと眺めて、結構な時間を待たされた。そうこうしていると、途中でgio-2.0が無いとエラーが発生するためインストールが中断してしまう。なかなか先に進まないなぁ。FreeBSDの依存関係のチェックもあまり完全ではないな。
これも色々と調べて、portsのdevel/glib20*2に含まれていることがわかったので、glib20をインストール。続けて、jre16のインストールを再開した。これでjre16が最後まで完了した。

http://d.hatena.ne.jp/ikasamaH/20071218に記載されている方法で、NicoCache_nlを起動してみた。ちなみに、設定ファイルの変更は接続元を限定しただけだ。

# 接続元の限定
#	lanC	プライベートIP(192.168.xxx.xxx) ←普通これ
allowFrom=lanC

ThinkPadのproxyを下記のpacで変更して確認すると、とりあえず動いた。*3

function FindProxyForURL(url, host) {
    if (shExpMatch(host, "msg*.nicovideo.jp*"))
        return "PROXY 110Gdのマシン名:8123";
    if *4 &&
        url.substring(0, 5) == "http:") {
        return "PROXY 110Gdのマシン名:8080";
    }
    return "PROXY 110Gdのマシン名:8123";
}

その証拠はこれだ。対象動画はランダムに選んだ物と、マイリストから選んだ物です。

/var/NicoCache% ls cache
nltmp_sm1158998_????????OP?ED? ????.flv
nltmp_sm1965170_我々の自作機部屋�.flv
nltmp_sm2823987_真・女神転生�マニアクス 坂東宮(マサカドゥス入手イベント).flv
nltmp_sm353388_メガドラ ゲームミュージックメドレー(おっさん選曲).flv
sm1347456_初音ミク 「天使の絵の具」.flv
sm1446137_アイドルマスターPC-6601が歌うタイニーゼビウス」.flv

問題も残っているが、javaが動いてキャッシュとしても別マシーンからアクセスできることが確認できた。ただ、毎回java -jar NicoCache_nl.jarとコマンドを打ちたくないので、サービス化を図る。

続く。

*1:2回目以降はportsnap fetch && portsnap updateらしい

*2:glibだったら、開発者は入れていて当然だから気付かないな

*3:polipoのportが8123で、NicoCache_nlのportが8080です。

*4:shExpMatch(host, "*nicovideo.jp*") || shExpMatch(host, "*smilevideo.jp*"