OS X で ImageMagick を使えるようにする2009/07/14 11:13

しばらく前に OS X Server で Movable Type 4.25 を使えるようにすることになった。その際の備忘録。

MT自体のインストールは zip ファイルを展開して所定のディレクトリ( /Library/WebServer/CGI-Executables/ )の下に置いてパーミッションを設定してやればよい。これだけでとりあえず動作させることはできるが、アップロードした画像のサムネイルを作成させたい場合、不足しているライブラリなどを追加でインストールしてやる必要がある。

汎用性と一般性からたいていは ImageMagick という画像処理用のパッケージを利用することになると思う。

Linux や BSD なら yum や ports で一発インストール可能なバイナリパッケージが用意されているのだが、Apple の場合、「画像処理だったらウチには Core Image がありまっせ」という立場のせいか OS X には同梱されていないし、。MacPorts や Fink で提供されているものを使うことも考えたが、用意されているバージョンがちょっと古かったり、インストールパスが標準だとそれぞれ独自のものになっている。

MacPorts や Fink と一蓮托生で行くのであればそれもいいだろうが、別にごりごりの UNIX 環境を作りたい訳ではないし、後々の管理が面倒くさくなるため、結局はオフィシャルサイトからリンクをたどってソースを入手しソースコンパイルでインストールすることにした。

インストール自体は入手したソースを適当なディレクトリに展開してそこに移り、

./configure
make
make test
sudo make install
するだけである

ただし、事前に必要なライブラリをインストールしておかないとmake test で「あれがない、これがない」と文句を言われる。上でも書いたように、OS X では画像処理は Core Image にお任せなので、なんと libjpeg も libpng も libtiff も入っていない。でそれぞれのソースもオフィシャルサイトからダウンロードしてせっせとインストールする。

ただし libjpeg のソースは OS X がリリースされる以前のもの(1998年)なのでそのままではコンパイルが通ったように見えても実は駄目である。風ブログさんの記述を参考にしてconfig.sub と config.guess を /usr/share/libtool/ 下にあるApple 製の同名のファイルに差し替えてから行った。

その後、ImageMagick本体をインストールする。結構時間がかかるが無事に完了。続いて ImageMagick のソースに同梱されている PerlMagick をインストールしなければならない。MT 自身は perl からこちらの PerlMagick に処理を投げるようになっているので、こっちが入っていないとどうにもならない。

perl Makefile.PL
make
sudo make install
これでめでたくMTから ImageMagick が利用できるようになった。

  • 勘違いしてQuickTimeって書いたところを Core Image に修正しました(2009/07/15)

  • Webalizerぁぁ...2009/07/14 16:14

    とある Web サーバでアクセスログの解析をやりたいのでログ解析パッケージの Webalizer をインストールして欲しいという依頼を受けた。

    このサーバ、何年も前に他所の業者さんが設置したもの。あらためて環境を確認すると Redhat Linux 7.3。ftp.kddlabs.co.jp を探してみたら、このディストリビューションのタイムスタンプ、02/06/14。確かにこの頃ずいぶん Linux でシステムを設置する仕事をやったけれどもう7年前ですか... と感傷に浸る間もなく、該当するパッケージがないか探したら webalizer-2.01_10-1.i386.rpm というのがあったのでダウンロードし、rpm でインストールしようとしたら、/var に空きがなくて rpm が実行できない(;_;)
    確認したら、/var の割り当てが たったの251MB。しかも /var/spool/mail/root がまんま 251MB。このサーバ良く落ちませんでしたねという状態。とりあえずスプールにたまった root をごそっとどかして場所を空けてあらためて rpm を実行したところ

    エラー: 依存性の欠如:
    webserverは webalizer-2.01_10-1 に必要とされています
    だって。でもこのサーバ apache 走ってるじゃん。

    てことはソースからインストールした奴が走ってるのかなと確認したら、/usr/local/apache/の下にいらっしゃいました。それじゃってんで Webalizer のオフィシャルサイトを探して、ソースをダウンロード。

    とりあえず動作させることを優先してコンパイルオプションは

  • --with-language=japanese で日本語出力
  • --enable-dns で逆引きを行う

    だけで ./configure、make、make install
    すんなり入ってくれました。

    続いて /etc/webalizer.conf の内容を実際の環境に合わせて修正
    LogFile には実際のログが保存されているファイルをフルパスで記述
    LogType clf は、httpの挙動だけ知りたいのでそのまま
    OutputDir にはブラウザでアクセスするための URL。
    今回はドキュメントルートの下にそれ用のディレクトリを作成して指定
    Incremental は yes として、過去の結果を残すようにした
    HostName は実際のサイトの名称を記述
    あとの項目はデフォルトのまま。

    解析結果を表示する URL が誰でもアクセスOKなのはなんなので、このディレクトリにベーシック認証をかけた後、毎朝解析結果を更新するようにWebalizerをキックするスクリプトを書いてcrontabに登録、でとりあえず一件終了。あとの細かい設定に関するオーダーを待つばかりに漕ぎ着けた。