Safari 4と3を共存させたい

Safari 4の正式版が出た。

Safari 3から4にバージョンアップしない理由はあんまりないけれども、一応3を残しておきたい。

システムに異常が発生する可能性があるので、以下自己責任で。なお、Mac OS X 10.5(Leopard)以外は未検証。


基本的には前にやったのとほとんど同じ。ただし、Safari 3のスタンドアロン版を作ることにする。そのためには、Safari 4によって上書きされるフレームワークのバックアップを取っておく必要がある。

上書きファイルの確認

まず、Safari 4をインストールすることでどのファイルが更新されるのかを確認する。

パッケージファイルをダブルクリックしてインストーラを起動したあと、ファイルメニューから「ファイルを表示」を選択すれば、どんなファイルがインストールされるのかがわかる。

上書きされるフレームワークは以下のような感じ。

  • JavaScriptCore.framework
  • JavaScriptGlue.framework
  • PubSub.framework
  • SyndicationUI.framework
  • Symbolication.framework
  • Safari.framework
  • WebKit.framework
  • WebCore.framework

Safari 3.appの作成

続いて、/Applications/Safari.appを適当な場所にコピーして、名前をSafari 3.appにしておく。

Safari 3.appのパッケージ内を表示させて、Contents/Frameworksにフォルダを作り、前述のフレームワークをコピーしてくる。フレームワークは/System/Library/Frameworksと/System/Library/PrivateFrameworksに格納されている。WebCoreWebKitの中に入っているので、そこから持ってくる。

続いて、Contents/MacOS/SafariSafari 3にリネーム。

Contents/MacOS/Safariを新たに作って、中に↓のようなシェルスクリプトを書く。

#!/bin/sh
APPROOT=${0}/../..
export DYLD_LIBRARY_PATH="$APPROOT/lib"
export DYLD_FRAMEWORK_PATH="$APPROOT/frameworks"
exec "$APPROOT/MacOS/Safari 3" "$@"

Contents/MacOS/Safariにはchmodとかで実行権限をつけておく。

これでスタンドアロン版が完成。一応できあがったものを別のディスクとかに待避しておく。

Safari 4インストール

インストールは普通にやるだけ。要再起動。

完成