1
18
2008
OSXサーバで最新版の FrontRow を使う方法
Mac OS X Server の FrontRow を最新版にアップデートする方法
Apple TV がアップグレードしてインターネット経由で直接 iTunesStore からコンテンツを購入して視聴することが可能になりましたね.最も日本の iTunesStore では購入可能なコンテンツが貧弱なので、Apple TV が日本でブレークするかどうかは微妙ですね.
Apple TV を持っている人は少ないでしょうが、Mac mini を メディアサーバ代わりに使っている方は多いのではないでしょうか.私も Mac mini (Intel) をメディアサーバとして使っているのですが、只のメディアサーバとして使うのは勿体ないので、メディアサーバ兼ファイルサーバとして使っています.
単なるファイル共有であればクライアント用のOS で十分なのですが、折角Intel Mac という高性能なハードウェアがあるのですから、どうせなら各種サービスも提供してしまえということで Mac OS X Server 10.5 を使うことにしました.Mac OS X Server 10.5 自体は機能てんこ盛りのとっても便利なサーバOSなのですが、ちょっとだけ困った事があります.それはApple 自体が Mac OS X Server の位置づけがまだ明確に定まっていないのか、クライアントOSともサーバ専用OSともつかない、どっちつかずの状態です.事実、カーネルベースは同じDarwinカーネルで、サーバ版はクライアントOSの上にそのまま サーバ独自のアプリーケーションを被せただけという作りになっています.
本来、Mac OS X Serverはメディアサーバとして使うことを前提には作られてはいませんが、ベースとなるOS は Mac OS X のクライアント版ですので、基本的に Mac OS X 用のアプリケーションは殆どそのまま動きます.OS X Server 10.5 でも FrontRow は最初からインストールされていますが、何故か最新版のiTunes7.6 に対応させるアップデータ “FrontRowUpdate2.1.2.pkg” は OS X Serverでは適用されません.
“FrontRowUpdate2.1.2.pkg”の中身を調べてみたら、 OS X Server ではアップデートできないように設定してありました.OS X Server 10.5 の製品版には標準で FrontRow が入っているのに、何故 FrontRow をアップデートできないようにしているのか全くもって不可解です.そこで今回は “FrontRowUpdate2.1.2.pkg” に少し小細工をして、OS X Server 10.5 でも最新版の FrontRow V2.1.2 にアップデートできるようにする方法を紹介します.
【手順】
まず、FrontRow のアップデートパッケージを Apple のサポートページからダウンロードします.
ダウンロードしたパッケージを選択し、右クリックで “Show Package Contents(コンテンツの中身を表示)” を選択して、パッケージの中身を開きます.
“Contents” というフォルダが現れますので、その中身を開くとその中に “FrontRowUpdate2.1.2.dist” というインストール用のスクリプトがありますので、テキストエディタで開いて下さい.
この中に、OS X Server を除外する部分がありますので、この部分をコメントアウトすれば、OS X Server でもこの FrontRow のアップデートパッケージを適用させることが可能になります.
function volumeCheck()
{
// must have an OS
if(!system.files.fileExistsAtPath(my.target.mountpoint + "/System/Library/CoreServices/SystemVersion.plist")) {
my.result.message = system.localizedStringWithFormat('ERROR_OS');
my.result.type = 'Fatal';
return(false);
}
// must have 10.5 or higher
if(-1 == system.compareVersions(my.target.systemVersion.ProductVersion, '10.5.0')) {
my.result.message = system.localizedStringWithFormat('ERROR_OS');
my.result.type = 'Fatal';
return(false);
}
// must not be server
// if(system.files.fileExistsAtPath(my.target.mountpoint + //"/System/Library/CoreServices/ServerVersion.plist")) {
// my.result.message = system.localizedStringWithFormat('ERROR_SERVER');
// my.result.type = 'Fatal';
// return(false);
// }
// must not have Tier3
if(system.files.fileExistsAtPath(my.target.mountpoint + "/var/db/.AppleTier3Language")) {