2011年12月13日火曜日

~/Libraryの場所にはご用心。

僕のmac book proはSSDとHDをそれぞれ内蔵しています。基本的にはHDをホームディレクトリ。SSDをそれ以外・・・と、使い分けているわけですが、~/LibraryをSSDに移動させてアプリの動作をさらに高速化させたいという欲が出てきます。

 

となると、

1. /Users下のホームディレクトリそのものはSSDに配置して→書類や音楽などのフォルダだけをHDに移してシンボリックリンクを張る方法

と、

2. /Users下のホームディレクトリそのものをHDに移動して→~/LibraryだけをSSDに移してシンボリックリンクを張る方法

の、2つがあると思います。

 

結論から言います。(1)です。面倒だとは思いますが、Documents, Music, Movie, Downloads, Picturesなどを、個別にSSDからHDに移動させ、シンボリックリンクを貼ってください。(2)はトラブルを招くので避けることをお勧めします。

Lionから導入された機能に、アプリケーションのサンドボックス化というものがあります。これはiOSのアプリケーションやJavaのアプリケーションのように、アプリケーションを安全な実行環境で囲い込み、意図しない挙動からシステムを守ろうとするものです。このサンドボックスが問題となります。たとえば、PhotoStreamのサンドボックス定義ファイルが/Applications/iPhoto.app/Contents/Library/LoginItems/PhotoStreamingAgent.app/Contents/Resources/PhotoStreamAgent.sb というものになるのですが、ここに

(allow file-write*       (subpath "/private/tmp") 
       (subpath (param "_USER_TEMP"))
       (subpath (string-append (param "_USER_CACHE") "/mds"))
       (subpath (string-append (param "_USER_CACHE") "/com.apple.IntlDataCache")) 
<<snip>> 
       (home-regex #"/Library/Preferences/com\.apple\.photostream-agent\.plist")
       (home-regex #"/Library/Preferences/com\.apple\.mmcs\.plist(\.[^/]+)?$")
       (home-regex #"/Library/Preferences/MobileMeAccounts\.plist(\.[^/]+)?$")
<<snip>>

こんなS式みたいなのがあります。みたい・・・っていうか、S式そのものですね。どうやら、このhome-regexという関数は、シンボリックリンクを追いかけてくれないようなのです。・・・まぁ、セキュリテイを考慮して実装された機能ですから、さもありなん・・・といったところでしょうか。

そのため、~/Libraryをシンボリックで配置するとサンドボックス機能を司るsandboxdがファイルへのアクセスをブロックしてしまい、アプリケーションが適切に動作しなくなってしまうことがあるのです。

 

0 件のコメント:

コメントを投稿