恒例:カエルを使った生理学実習

医学部やコメディカルの教育分野では、生理学は必須で、その実習ではカエルを使った実習が定番なのだ。今年もその季節になった(季節といっても、カエルの都合ではなく、カリキュラムの都合だから、大学によって様々だ)。
毎年、カエル(ウシガエル、食用ガエル)が現れると大騒ぎになる。
女子学生はキャーキャー言って騒ぐが、これは楽しく騒いでいるのであって、手で顔を覆い隠すが、指の間からしっかり見ているのだ。
これに対して、実習室から廊下に逃げ出すのは、男子学生なのだ。今年も同じだ。逃げ出す男子学生は、カエルを見ることすらできないのだ。なんということだ。もはや、小学生のころカエルと戯れた経験がないのが普通なんだ。
太平洋を、板に乗った かまぼこ が泳いでいたり、ひらき や刺し身になった魚が泳いでいるのが若者の常識なのだ。
カエルをさばくのも女子学生のほうがうまいのだ。魚の目が怖くて魚をさばくことができないなんていう女子がいるけど、本心はちがうのだ。ブリッ子なのだ。
皮を剥いだカエルは、スーパーで売っている鳥手羽と同じようなので、こうなると、逃げ出した男子学生は始めて実習に参加できるようになるのだ。
この2年、カエルを逃がして実習室に放置していた事件が続いた。実習の班毎にカエルを1匹供給するのだが、カエルの2本の足のうち1本しか使わないので、カエルを逃がしちゃった班は、よその班の半分をもらって標本を作れるので問題ないのだ。その挙句、夜中にカエルが隠れていたところから出てきて守衛がひっくりかえったり、違う実習中にでてきたりして大騒ぎになるのだ。
ガキどもを監督しきれないのだ。

アプリを開けない

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#

とすればいい。