« lame 3.98b8 20080506版 | トップページ | NeoOfficeのCalcでセル内改行 »

2008年5月10日 (土)

polipoを使ってみた

世間ではwebページをキャッシュして見かけのアクセス速度を向上させるためのproxyのdolipoというソフトがしばらく前から話題になっているのだけど、これはTiger以上でないと動いてくれない。dolipoはpolipoというソフトをベースにしていて、polipoはPantherで動作するバイナリも配布されている。ということで、こちらからPolipo-1.0.4-panther-ppc.dmgをダウンロードする。

ディスクイメージを開くと、パッケージファイルがあるのでこれをクリックしてインストーラを立ち上げる。インストール先は起動ディスク。インストール先のディレクトリを指定する事はできない。で、インストールすると起動ディスクのルートにpolipoとその関連ファイル(configやマニュアル)がインストールされてしまった。うーむ。uninstall_polipo_bundle.shの中身を見ると、アンインストール時には/Library/StartupItemsあたりから何かを削除しているように読めるのだけど、該当しそうなものはインストールされていない。このパッケージのインストールスクリプトが間違っているのかもしれないけど、さっぱりわからん (^^;)

それはさて置き、configをエディタで開いて設定をちょっと変える。
diskCacheRoot = "~/.polipo-cache/"
の行のコメントを外す。うちの起動ディスクは容量が小さいので、起動ディスク以外にキャッシュを置くように指定したい。うちのマシンはホームディレクトリを起動ディスクとは別のディスクに設定してあるので、ホーム下に変更するだけでよい。このままの設定でpolipoを起動すると「そんなディレクトリは無い」と文句を言われて動作しなかったので、ターミナルでmkdir ~/.polipo-cache/としてディレクトリを作っておく。

polipoはパスの通ったところへ移動しておく。私は/usr/local/binへ移動した。念のためインストーラが最初にインストールしてくれた起動ディスクのルートにシンボリックリンクを置いておく。

polipoのマニュアルを読むと、configは本来は/etc/polipo/にあるはずなのだけど、そこに置いても認識しないので元の起動ディスクのルートに置く事にした。起動ディスクはオーナーがシステムで私(管理者だけど)がルートのファイルをいじろうとしてもそのままではできない(一時的にルートディレクトリのオーナーを自分に変更すれば変更したconfigを保存できる)。configをいろいろいじってテストする度にディスクのオーナーを書き換えるのは面倒なので、別のディレクトリにconfigを置いて、ルートにはシンボリックリンクを置いておく。

ターミナルからpolipoを起動する。次にシステム環境設定のネットワークの場所メニューで場所の編集を選び、今の設定を複製してpolipo用の設定を作る。polipo用の設定はプロキシを127.0.0.1:8123に変更するだけ。変更後「今すぐ適用」をクリック。こうやって起動した場合のpolipoはctrl + Cで終了できる。

SafariやCaminoやMailはこれでOK。FirefoxやOperaやThunderbirdはそれぞれの環境設定の中のプロキシの項目を書き換える。polipoを使わなければFirefoxなんかは元のままでも動作するんだけど。

polipoを使うと、メールはちゃんと受信できるのだけど、webがDNSエラーとなって表示できない事がある。ネットワークのPPPoEのところで一旦切断し、もう一度接続すると接続できるようになる事が多いので、polipoかMac OSがネットワークをうまく認識していないのかも。よくわからないけど。←これは最初polipoを使わない設定で起動し、polipoを立ち上げてから設定を切り替えた時の話。最初からpolipoをプロキシとして使う設定にして起動すれば、こういう問題は出ないみたいな感じ。

このままの設定だとターミナルを起動していないとpolipoが走っていないのでちょっと邪魔(と言うほどでもないが)。そこでconfigに次の2行を追加する。

daemonise = true
logFile = "/Applications/Utilities/polipo/polipo.log"

上の方はpolipoをデーモンとして起動するもの。ターミナルからpolipoを起動するとpolipoはデーモンとして常駐し、ターミナルはコマンドプロンプトを表示する。用が無ければそのままターミナルを終了できる。下の方はログファイルの設定。デーモンとして使う設定の時はログファイルを指定しておかないとpolipoがエラーとなって起動できなかった。このままだとMacを起動後polipoを使う時にターミナルからpolipoを立ち上げなくてはならないので、こちらのサイトを参考に/Library/StartupItemsにpolipoを登録してマシンの起動時に自動でpolipoが立ち上がるようにしておいた。こうしておくと、PPPoEが接続する前にpolipoが立ち上がっているので、ログイン後に接続解除/接続の操作をしなくて済むのもありがたい。

ところで、うちのマシンは起動ディスクが8GBしかないのでディスクキャッシュを外部ディスクにあるホームにしたのだけど、/Library/StartupItemsから起動時に自動起動させようとするとpolipoは起動するのだけどディスクキャッシュを使っていない事がわかった。というのも、Mac OS Xでは起動ディスク以外のマウントはログインしないと行われないみたいなので・・・。同じ理由で、外部ディスクにインストールしてあるMacportsで導入されたdbusが/Library/StartupItemsにdbus-daemonを起動するように設定されているのだけど、起動するプログラム自身や参照しているライブラリが外部ディスクにあるため起動できずにこけていた。Macportsはgnumericをインストールするために入れたのだけど、gnumericはちゃんと動いているようなので放置してある。

ともかく、うちのマシンでは/Library/StartupItemsからはちゃんと起動できない事がわかったので、ログイン後に起動する事に変更。polipoを起動して、そのとき一緒に起動してしまったターミナルを終了するためのAppleScriptを書いてアプリケーションとして保存し、これをシステム環境設定のアカウントの起動項目に登録する。AppleScriptの中身はこんなの。芸も何も無い (^^;)

tell application "Terminal"
    activate
    do script with command "polipo"
    delay 5
    quit
end tell

で、速度なのだけど、もともとBフレッツ環境だし、うちはマシンが遅いのでいまいち効果がわからない。何となく速くなっているような気はするのだけど。802.11bでつないでいたiBookが健在だったら、ひょっとしたらpolipoの効果がはっきりわかったかもしれない。

|

« lame 3.98b8 20080506版 | トップページ | NeoOfficeのCalcでセル内改行 »

パソコン・インターネット」カテゴリの記事

Mac OS X」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: polipoを使ってみた:

« lame 3.98b8 20080506版 | トップページ | NeoOfficeのCalcでセル内改行 »