拳法とは全く関係ないが,ここ数日ただでさえ忙しいのに,パソコンMACの新OSXであるEl Capitanで非道い目に遭ったのでメモしておく.
教訓:忙しいときにOSの更新など絶対にすべきでない.
教訓2:世の中わかっていてもついやってしまうことが多い.
教訓3:冒険は現実逃避の格好の手段である.
教訓4:人は困難を克服することそれ自体が好きな動物である.
前口上が長くなったが,要するにEl Capitanの新しいセキュリティrootlessがお節介過ぎる仕様に変更されたおかげでTexが使えなくなったのだ.で,今やってる仕事はTex使ってる.いやはや...
以下,3つの話題をほぼ時系列順に述べる(1)rootlessを無効化する方法,(2)パーミッションをおかしくすることで起こる二つの最悪な現象について−1.最悪ディスクのフォーマットが壊れる,2.Terminalが停止する,(3)appleのバックアップ装置タイムマシーンからの復旧の仕方 についてである.
El Capitanでは rootlessなるセキュリティ機構が搭載されている模様.
これはUNIXシステムにおいては万能のアカウントであるrootにすら制限をかけることで,システムのコアを守ろうという思想らしい.
このおかげで,osxではusrその他のコアなディレクトリが隠され,root権限でも属性の変更すら禁止されている.勿論,ここに何も書き込めなくなったのでUNIX系のソフトウェアはインストールすら出来ないものがある.しかも,悪いことに,El Capitanインストール時にusrディレクトリにあったフォルダは問答無用で削除されているようだ(usr/texbin/ から /Previous System/usr/texbin/ に強制移転されると言う話もあるが,私の環境ではただ削除されたようだ...定かではない).
Texに関しては,早々に情報が集積されているようだー流石!先にここを一読すべきであった.
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeX%20Live%2FMac#r55ca802
しかし,システムを完全に掌握するのは最後はユーザーである,というのがUNIX系のOSの根本理念であると思うので,この変更はまったく納得できない.そこで,rootはusrにもアクセスできるように変更した.
OSXを再起動し,起動時にcommandとRキーを同時に押して(アップルマークが出るまで押し続ける)でリカバリモードに入り,ユーティリティからターミナルを呼び出して
csrutil disbale とコマンド入力,その後再起動
でrootlessを無効化できる.
ちなみに csrutil enable で再び有効化,csrutil statusで現状態を確認可能.
次に,OSXを普通に起動して,まず不可視ファイルをFunterなどで可視化し,usrフォルダを右クリックして情報を表示する.アクセス権を< everyone 読み込みのみ>を<読み書き>に変更.
このほか,util/localも読み書き可して大丈夫.基本的にフォルダのアクセス権を読み書き可能に変更する程度は大丈夫っぽい.もしなんかあっても元に戻せば良さそうだ.
絶対やってはいけないのは,変更を下の階層まで及ぼすこと.これをやると,Terminalの動作がおかしくなる.
The pointer being freed was not allocatedと表示され,
プロセスが完了しました
と出て,Terminalが停止してしまう.
エラーメッセージからは想像つかないが多分パーミッションが原因と思われる.
どうも/usr/binの下階層あたりのパーミッションをいじると危険らしい.これはバグではないかしら.
他者のアカウントでも状況は同じ,初期設定ファイル・plist削除でも直らない.
ちなみに,usrの下階層のパーミッションは一様ではないので手動で直すのはほとんど現実的ではない.
El Captainのディスクユーティリティにはパーミッションの修正という項目がないが,自動で修正するという噂があったので修復を試みるも失敗.
思いあまって,command+Rでリカバリモードに入り,再度El Capitanのインストールを試みると....
途中で失敗.&ディスクのフォーマットが壊れてしまいアクセス不能に.さらに,さらに,リカバリモードのディスクユーティリティではフォーマットもパーティションの切り直しも,「アンマウントできません」とのことで不可.考えてみれば,リカバリモードは内蔵ディスクの一部の領域を使ってるので,不具合が出たときに自分の格納されているディスクをいじれないという可能性は大いにあるわけだ...この辺から泥沼に突入.
仕方がないので,別マシンからEl CapitanのインストーラーUSBを作成.
まず8GB以上の容量のあるUSBメモリをフォーマットしてマシンに挿し込み,ダウンロードしてきたインストーラーファイル Install OS X El Capitan.app をアプリケーションフォルダに格納し,ターミナルから
$ sudo /Applications/Install OS X El Capitan.app/Contents/Resources/createinstallmedia –volume /Volumes/<ターゲットのUSBメディアの名前> –applicationpath /Applications/Install OS X El Capitan.app –nointeraction
とコマンド打ち込んでインストール様USBメモリを作成.
(注意したいのはInstall OS X El Capitan.app がアプリケーションフォルダ以外にあると -applicationpathを適切に変更しても失敗する.
どうもターミナルからはアプリケーションフォルダ以外にある.appファイルはそのままフォルダと認識されるようだ.)
待つこと暫し(結構時間かかる),やっと出来たUSBを起動できなくなったマシンに挿して,optionキー押しながらmacを起動.
起動ディスクが表示されるのでUSBを選択して,インストールを開始.念のため,まずユーティリティからディスクユーティティを起動し,インストール対象ディスクをフォーマット.その後インストーラーの指示に従い,無事OSのインストールが開始.
無事インストールできたようで再起動した.
最後の設定が始まり,その過程で「Time Machine バックアップから復元」を選択して,なんとか2日前にとったバックアップの状態に戻せそうだ.
いやはや,非道い目に遭った.
(El Capitan自体は,さくさく動いてなかなか良い感じだが...)
