アプリを開けない

CarbonCopyCloner (CCC)を無料の時(つまり開発時)から愛用しているのだ。このバックアップアプリはイメージファイルとして保存するのではなく、そのままバックアップ(クローン)するので、ファインダーレベルで、昔のファイルを取り出すことができる。
仕事で使っているMacも、管理しているMacサーバも、TimeMachine と併用してバックアップしている。つまり異なった方法でのバックアップHDDが2台あるのだ。
有料になって、最新バージョンを購入したとき(去年の10月だ)、端末のMacでアンインストールに失敗したのか、新しいのがインストールできない状況のまま放置しちゃったのだ。
最初のアンインストールを間違えたようなので、アンインストール方法のページにしたがって、フアイルを捨てたんだけど、新規インストールできないのね。よくわからないので放置していたのだ。
1年も立っちゃって、改めて、先週末に、開発元にHelp me メールを、Webページ経由で出したら、きちんと返信されてきた。開発元が英語圏なので、返事は英語と自動翻訳した日本語だ。Web サイトが日本語表示だったので、日本語で問い合わせたから、向こうも自動翻訳で英語にして解釈して返信してきたのだろう。自動翻訳の日本語は何をいっているかよくわからん。

私はあなたが持っているもののトラブルわからないんだけど、それはあなたがCCCをアンインストールしようとしたように聞こえる、と今あなたがCCCを開くことができません。次のことをお試しください:

最初の返信メールは、トラブルの状況の確認だった。多分、自動翻訳では不十分だったんだろうね。「起動すると、開けません。」というがトラブルだ。
20151006CCC_Boot
やっぱし、画面でみるのが早いのだろう。画面のコピーを添えろと指示されたので、この画面のハードコピーと英語と日本語の説明を付けた。
つぎのメールは、Mac本体のsystem.log を送付しろということなので、添付した。system.log の場所も示していたので親切だ、というか、普通はわからないから当たり前か。この日本語も自動翻訳でよくわからん。

おそらく、我々は、なぜOS Xの意志ではないオープンCCCを記録システムから決定することができます。あなたはここにSYSTEM.LOGファイルを添付することはできますか?あなたは/アプリケーション/ユーティリティ/コンソールアプリケーションでそれを見つけることができます。ファイルを明らかにするために、ファイルメニューの「Finderで表示」を選択した後、サイドバーにある「system.logに」をクリックします。

英語のほうは;

Perhaps we can determine from the system log why OS X will not open CCC. Can you attach the system.log file here? You can find it in the /Applications/Utilities/Console application. Click on “system.log” in the sidebar, then choose “Show in Finder” from the File menu to reveal the file.

なので、英語のほうがわかりやすい。
3回目のメールで「It looks like the application is getting quarantined by GateKeeper:」といってきて、「xattr -c -r “/Applications/Carbon Copy Cloner.app”」をターミナルで実施すればいいと指示してきた。 この日本語の指示は;

アプリケーションがゲートキーパーによって隔離きているように見えます
アプリケーションの「検疫」の属性を削除するには、ターミナルアプリケーションに次のように貼り付け、それを開くために、再試行してください:

だ。ま、Gatekeeper が何であるか知っているのならなんとなくわかるよ。
その通り実施して、新しいCCCを開くことができて、問題がなくなった。
ダウンロードしたアプリケーションはMacOSXが怪しいかどうかチェックする。そのアプリがGatekeeper で、普通のアプリではないからアプリケーションやユーティリティにはない。怪しいと隔離するわけだ。この隔離にあってしまったということだ。アンインストールに失敗したわけではなかった。隔離するとそのファイル(フォルダ)の拡張属性に隔離のタグがついてしまう。この拡張属性とは、ターミナルでファイル名を見ると権限属性のあとに@がついているやつだ。この@が拡張属性ついたファイル・ディレクトリで、MacOSだけが理解できるメタ情報なので、これをつけたまま、サーバにアップロードしたりWinに移すと読めなくなってしまう可能性がある。Macで作成したファイルをWin で見ると._hoge とかいうファイルが見える。これはこの拡張属性 が取り除かれた結果だ。
何故、隔離されちゃったのかは今となってはわからない。一度、隔離のフラグが立っちゃうと、これを捨てて新しいものをダウンロードしてもフラグが立ったままのようだ。「App Store から購入したものじゃないから開けないよ」というときはコントロールキーを押して開くと、開くことを選択できる。このとき開くのをやめると隔離されちゃうのかな?ちがうだろ。
ダウンロードしたアプリを開こうとしたとき、「壊れているから開けません」なんていうプロンプトがでてきたら、隔離されちゃったことを意味する場合がある。隔離を解除するかどうかは自己責任ですな。
この拡張属性を削除するコマンドがxattr なのだ。ターミナルで man xattr とすればコマンドの意味と使い方がわかる。

The xattr command can be used to display, modify or remove the extended attributes of one or more files, including directories and symbolic links.

というわけだ。extended attributes=拡張属性だ。オプションの -c は;

the -c option (“clear”), causes all attributes
(including their associated values), to be removed.

で、 全て削除だよということで、-r は;

If a file argument is a directory, act as if the entire contents of
the directory recursively were also specified (so that every file in
the directory tree is acted upon).

ということで、単一ファイルでなくdirectoryの場合は -r を付けなさいということだ。-R とかと同じ意味だ。CCC.app はアイコンになっていて、見かけ一つのファイルだけど実はdirectory(フォルダ)だからね。
まともと思われるアプリが開けなかったら、自己責任でやってみる価値がある。
開けないときCCC.appに @ が付いていたかどうか確認して見ればよかったが、

Mac:Applications hoge$ ls -al

を実施すると @ のついたアプリがいっぱいある。だからCCC  にも@がついていたのだろう。xattr を実施したあとだから、今はついていない。@が付いているほとんど全部が購入後にインストールしたアプリだ。でも隔離したというフラグが立っているわけではない。App Store から購入したアプリ(OSのインストーラなど)には付いていない。

こいうことはトラブルになって、始めて知ることになる。

例えば ImageJ をダウンロードし、解凍してできた ImageJ というフォルダをApplications 内に置き、su になって

sh-3.2# pwd
/applications
sh-3.2# xattr -c -r ImageJ
sh-3.2#

とすればいい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です