App Storeのアップデートがエラーばっかりだったら

OS XのApp Storeから「アップデートがあるよ」と告げられて、じゃあアップデートするかと「アップデート」を押してもエラーが出るばかり。ということがたまにある。

たとえば、こうなってるのに

f:id:mrmt:20181118231136j:plain

アップデートを押すと、こうなる。

f:id:mrmt:20181118231145j:plain

ならば「購入済みページ」に行ってみると、同じく「エラーが発生しました」と既に赤く文字が出ているし、その右の「アップデート」を押しても、果たして同じことを言われます。 

f:id:mrmt:20181118231129j:plain

だから「購入済み」ページからダウンロードし直してんだってのに!

そんなときは。ターミナルを開いてこれを実行し、

defaults write com.apple.appstore ShowDebugMenu -bool true

App Storeを終了させて、また立ち上げる。するとApp StoreのメニューバーにDebugメニューが出現しているので、Reset Applicationメニューを選択する。

f:id:mrmt:20181118231152j:plain

またApp Storeを終了させて、立ち上げる。

おお、ダウンロードできるようになった!

f:id:mrmt:20181118231139j:plain

 


この方法は Xcode 4.5.1 fails to download on OS X 10.8.2 | Apple Support Communitiesに記載されている。

どうやってこのページにたどり着いたかというと、カギはsyslog. OS XはUNIXの一種だから、中で起きていることはほぼ全てログを見れば手がかりがある。何か困った現象があり、それが再現できるなら、ターミナルを開いて tail -f /var/log/system.log しておき、いったんターミナルの表示内容をクリアなどしてから、困ったことを再現してみる。

そのとき、system.log に何かがばらばらっと出たら、それはその困ったことに関連したことかもしれない。手がかりかもしれない。実際、iTermで tail -f /var/log/system.log しておいてからApp Storeで「アップデート」を押してエラーを起こしてやると、こんなログが出た。

f:id:mrmt:20181118231133j:plain

真摯な開発者であれば、出ていることの全てを追っていって理解しようとするだろうが、僕はとりあえず問題解決すればいい。

(そこまで真摯だったらオープン・ソースなOSのほうを使うし、OS Xなんて売り物UNIXを使ってるのは、時間・金・性能・互換性・使い勝手などのバランスが良いってだけ)

いちおう Found asset mzps1464996493953336868.pkg on disk for item 497799835 - Size 0 という、何かソフトウェア・パッケージのファイルっぽいものがサイズ0っぽいくさい? ところを嗅いで locate mzps1464996493953336868.pkg してみたが、見つからない。

(OS Xはデフォルトではlocateデータベースが生成されないが、そこは事前にアレしてある)

ので、次に PKDistributionController というのをぐぐってみたら、出てきましたよと。

f:id:mrmt:20181118231149j:plain

そんなわけで、OS Xで何か5分以上困ったら、/var/log/system.log を見てやってほしい。UNIXのはしくれなんだから。