homebrewを更新しようとしたら詰まったのとその解決法

大したことではないがメモしておく

berlysia:> brew update
Warning: Could not tap homebrew/dupes/ant over mxcl/master/ant
Warning: Could not tap homebrew/dupes/cvs over mxcl/master/cvs
Error: undefined method `to_sym' for nil:NilClass
Please report this bug:
    https://github.com/mxcl/homebrew/wiki/troubleshooting
/usr/local/Library/Homebrew/cmd/update.rb:123:in `report'
/usr/local/Library/Homebrew/cmd/update.rb:121:in `each_line'
/usr/local/Library/Homebrew/cmd/update.rb:121:in `report'
/usr/local/Library/Homebrew/cmd/update.rb:35:in `update'
/usr/local/Library/brew.rb:95:in `send'
/usr/local/Library/brew.rb:95

Homebrew, Ruby, and Git - RayHightower.com ここを見つけたので

berlysia:> rbenv versions
  system
* 2.0.0-p247 (set by /Users/berlysia/.rbenv/version)

berlysia:> rbenv local system

berlysia:> rbenv versions
* system (set by /Users/berlysia/.ruby-version)
  2.0.0-p247

berlysia:> brew update
Updated Homebrew from 44988d34 to 44988d34.
==> Updated Formulae
homebrew/dupes/apr	      homebrew/dupes/file-formula   homebrew/dupes/grep		  homebrew/dupes/openssh	homebrew/dupes/tidy
homebrew/dupes/apr-util	      homebrew/dupes/gdb	    homebrew/dupes/httpd	  homebrew/dupes/tcl-tk		homebrew/dupes/zlib
==> Deleted Formulae
homebrew/dupes/ant  homebrew/dupes/cvs

無事更新できましたとさ。

Macbook Pro (Mid 2012)が起動しなくなってから解決するまでにやったこと

マカーならGenius bar行こう、という話。

事の発端

スリープ明けにパスワードを打ち始めたらそのまま固まって、強制終了した後から起動しなかった。出る画面といえば、中央にはてなマークが浮かぶのみ。

ぐぐったらこんなのが出た→Mac の起動時に、点滅する「?」マークまたは地球儀のアイコンが表示される - Apple サポート

試したこと

option押しながら起動→何も出てこなかった

いつものMacintosh HDもBOOTCAMPも出てこなかった。ついでにリカバリー領域も見えなかった。

インターネットリカバリーを利用してDisk Utilityを開き、状況確認をした。

なんと認識されていなかった。chkdskさせてもくれないのか!
この段階ではHDD買ってきて換装すっかーとか奮発してSSDにしちまうかーとか考えていた。

天啓

「ここ数ヶ月でMacBook Air Mid 2012の東芝製SSDが壊れる不具合が頻発している」というのは本当なのか調べてみた。

結果的には時期が同じだっただけで関連は認められなかったが、このreplyでGenius barに持ち込んでみようと決意し、その勢いで予約まで済ませた。


Genius barの予約が完了すると、それらしい完了ページに着地するのだが、そこにコメント欄がある。一応やるだけのことはやったので、何かの役に立つかと思って、症状とやったことを記述しておいた。

いざGenius bar

アップルストア銀座Genius barは、4階にある。
エレベーターはガラス張りで、なんと内にも外にも開延長以外のボタンがない。事前に聞いていたのでそう驚きはしなかったが、それなりの衝撃だった。

出迎えのクルーに予約の時間と名前を伝えると、席を指定されるので、座って待つ。少し混んでいて、予約の10分前に行ったのだが、結局予約の時間を数分過ぎてから担当者が出てきた。iPadで予約情報を見ていて、コメントにも気づいていたようだ。

ジーニアスがやってくれたこと

option押しながら起動(起動ディスクの選択→何も出ない)
⌘S押しながら起動(シングルユーザーモードで起動→そもそもそのモードに入れない)

ここまでは一般ユーザーでもできることだ。ジーニアスに期待していたことはこの先。

HDDを取り出して外部マウンタからアクセス

これがいけたらしい。日頃の行いがよかったんでしょうかね、原因はケーブルではないか、とりあえず交換してみましょうか、という話に。この時点でケーブルの料金と修理代の見積もりが出てきた。もしだめだったらどうなるか、ということは確認を忘れた。

本来ならば修理は1週間ほどかかるらしいが、今回は状況を考慮してすぐに交換を行い、具合が良ければそのまま持ち帰ってokということだった。

ケーブルの交換

この段階で起動できることが確認された。ここで本当はディープなチェックをするのだが、簡易なチェックをしましょうという話に。
出てきたのはMRI(Mac Resource Inspector)。これのUIがオールドマックと同じだったので、チェックの間少しだけ、ジーニアスと昔のMacの話をした。

結果

MRIの結果は異常なし。見積もり通りの額を支払って、あまりにも嬉しかったのでジーニアスと握手をして、撤収。
出費は5k弱。


Time Machineのバックアップがあるつもりだったが、実際確認したら7月時点で止まっていて肝を冷やした。バックアップはこまめに、確実に。
原因がケーブルにあったということで、先走ってHDDを新調していたら大損するところだった。保証が切れていても、早まって自力修理する前にジーニアスの力を借りてみるといいだろう。今回のケーブルは、他で入手するのは難しい品であるらしいし、そういう意味でも。

.exeファイルをダブルクリックでwineから起動するAutomatorアプリケーション

Mikuinstallerを使えば簡単に実現できるけどwineの更新とかめんどくさいじゃないですか。他のライブラリ? も古いものですし
というわけでインストールしたwineにいきなりファイルパスを投げて実行してもらえたらいいなーとか思ったりして。


すでにwineをインストールしてあることを前提に話を進めます。
あと、ターミナルはデフォルトでbashのはずですよね。そこを弄っているような方にこの記事は不要かと思いますが

    • wineのパスを調べる

ターミナルを開き、whichを使ってwineのパスを調べましょう。

$ which wine

するとこんな感じでwineのパスが表示されます。

/opt/local/bin/wine

コピーしておきましょう。先頭のスラッシュを忘れないように。

    • Automatorで作業(ってほどでもない)
      • 「ワークフローのテンプレートを選択」が表示されます。ここでは「アプリケーション」を選択します。
      • 左のツリーから、「アクション」→「ユーティリティ」→「シェルスクリプトを実行」をダブルクリックします。(右の領域にドラッグ&ドロップでも構いません)
      • 「入力の引き渡し方法」で「引数として」を選択します。
      • 「cat」と入力されている部分に、次のように入力します

/opt/local/bin/wine "\1"

/opt/local/bin/wine の部分は先ほど調べたwineのパスです。ご自分の環境にあわせてください。
"\1" の部分は引数としてファイルのパスが入ります。""は付けておいた方が無難じゃないかな。
ちなみに $1 でも動きます。\と$の違いについては私は知りませんので詳しい人に聞いてください。

    • 保存

してください。適当な所に。



あとは適当な.exeファイルをcontrol+クリックして「このアプリケーションで開く」→「その他」で保存したアプリケーションを選べばいいんじゃないでしょうか。
あわよくば関連づけてもいいでしょうし。


大分適当ですがこんな感じです。


ちなみに。
.msiはwineでいきなり実行することはできなかった気がする。「$ wine msiexec /i 〜」だったかしら。.infだともっと複雑だったと思います、必要な人はググってください。
多分同じ方法でアプリケーションが作れると思います。

Wine×Mac OS Xで東方しようぜ?

Intel Macで東方してみましょう。タイトルのとおり、Wineを使います。
環境はiMac(early 2008) 2.66 GHz C2D, ATI Radeon HD 2600 Pro、OSはMac OS X 10.6.3です。


一昔前に話題となったMikuInstallerなんてものがありましたが、今回はこちらを使わず、MacPortsを使ってwineを導入してみましょう。
なお、東方の起動にVsyncPatchを使用します。こちらの説明は割愛します。
使用しなくても起動はすると思いますが、一部の作品ではBGMが読み込まれなかったりFPSが60以外で固定されたりします。
なお今のところ、花映塚萃夢想、緋想天、非想天則のネット対戦はできていません。
できたら教えてください。

最初に確認しておくこと

  • Xcode」がインストールされていること
    • Snow LeopardLeopardならInstall DVDのオプションインストールに「Xcode.mpkg」が同梱されていると思いますので実行してインストール
    • んなもんねーよ! という方はこちら→Mac Dev Center - Apple Developer
      • アカウントをお持ちの方はログインしてください。持っていない方はregisterからアカウントを作成してください。無料ですので英語にめげずがんばりましょう。
      • 真ん中あたりのDevelopment ResourcesからDeveloper Downloadsをクリック
      • 「Developer Downloads & ADC Program Assets」右カラムのDownloadsからDeveloper Toolsをクリック
      • Xcode *.*.* Developer Tools」をクリック(この記事時点では3.2.2が最新、Snow Leopard以前をご利用の方はこちらを参照して適切なXcodeをダウンロードしてください)
      • 結構ファイルサイズが大きいので金鍔でも食べてお待ちください。
      • dmgをマウントして出てきたpkgからXcodeをインストールしてください。
  • X11」がインストールされていること
    • Snow Leopardならデフォルトでインストールされていると思います。
    • インストールされていない方は再びInstall DVDのオプションインストール、あるいはOptional Installsから。
    • 特に設定は不要でございます。

MacPortsのインストール

  • MacPorts」でググって一番上→The MacPorts Project -- Home
  • サイドバーの Getting Started から Install MacPorts をクリック
  • 「“dmg” disk images for Snow Leopard, Leopard and Tiger as a legacy platform,〜」とあります。ご自分のMac OS Xにあわせて選択してください。クリックするとdmgのインストールが始まります。
  • dmgがマウントされるとpkgが実行されます。インストールしてください。
  • インストールが終わったら再起動するか、ログインしなおしてください。やらなくてもいいかも。おかしいな? と思ったら再起動してみてください。

MacPortsの設定

  • MacPortsはターミナルから利用するアプリケーションです。ターミナルを起動してください。/Applications/Utilities/、または/アプリケーション/ユーティリティにあります。
  • まずはMacPortsのアップデートとリストの更新が必要です。一行入力してReturn、次の一行を入力してReturn。

$ sudo port -d selfupdate
$ sudo port -d sync

最初の$と半角スペースはいりませんよ?
password: と表示されますのでアプリケーションをインストールする時と同様にOSのユーザーアカウントのパスワードを入力して、Return。また、すぐに実行すれば2行目ではパスワードを要求されません。


これでMacPortsの設定は整いました。それではWineをインストールしていきましょう。

MacPortsでWineのインストール

  • ターミナルを開きます。
  • 「port search wine」と入力してReturnしてみましょう。パッケージ名にwineを含むものが出てきたと思います。今回はその中から wine-devel をインストールします。
  • 「sudo port -d install wine-devel」と入力し、Return。*1
  • またしばらくかかります。蕎麦でも茹でてお待ちください。

Wineの設定

  • まずはターミナルを開いて「winecfg」と入力してみましょう。

  • こんなんが出ると思います。「オーディオ」タブを選択しましょう。
  • 何かダイアログが出ますのでとりあえず(`・ω・)b OK!しておきましょう。
  • 「音をテスト」を押すとなんかもわもわした音がします。変な音なのは仕様でしょう。音が出なかったことがないので、出なかった方はがんばってください。
  • OK キャンセル 適用と並んでいますので、OKを押して終了してください。

いきなり東方を起動してみる

  • ターミナルを開いて「wine 」と入力します(半角スペース忘れずに)
  • ターミナルのウインドウに、起動したい東方のvpatch.exeをドロップして、Return。(wine@1.2-rc2ではファイルパスに日本語が含まれていても問題ないようです)

簡単なように書いていますが、実行できればそれでかまいません。


最新版wineではDirectXなどの更新なしで動作するはずです。
また、風神録以降のウインドウモードを指定すると直後にDockに引っ込みます(!)が、焦らずクリックすれば問題なくプレイできると思います。
文花帖以前でのウインドウモードにおいては、VsyncPatchの機能でサイズの変更が可能です。
また、文花帖以前の作品はフルスクリーンで起動することができません。前述のサイズ変更で代用してください。
VsyncPatchを利用したフルスクリーン起動が可能でしたが、command+tabによるアプリ間移動ができないようなので、実質他の作業はできない?(同本体、OSX10.7、wine1.3.25にて)


ダブルスポイラーは今のところVsyncPatchが公開されていませんが、直接th125.exeを実行することで起動できます。ただし私の環境ではfpsが66中盤に固定されてしまいます…
なお、DSのセーブデータは ~/.wine/drive_c/users/***/ShanghaiAlice/th125 に配置されます。ここに上書きすれば他で使用していたセーブデータ、リプレイを使うことができます。

「vpatch dllをロードできませんでした」の対処法

この記事時点の最新版では同様の状況で再現できませんでした。
これは、既にwineを導入していて、外付けHDDなどに東方を入れている方が対象となると思います。
MacOSXでは.(ドット)から始まるファイルをシステムが使用します。
ストレージのフォーマットがHFS+でない場合、「example.txt」というファイルに対する特別な情報を「._.example.txt」というファイル名で同じフォルダに作成し、保存しています。
ところで、vpatch.exeは同じフォルダにあるvpatch_th**.dllを「“vpatch”を含む拡張子dllのファイル」として探しています。
すると、「._.vpatch_th**.dll」というファイルに反応してしまうことになります。
よって、この問題を解決するにはそのファイルを削除すればいいわけですが、ドットから始まるファイルは初期設定ではFinderから見ることができないようになっています。
可視、不可視の設定、Finderの再起動についてはこちらが詳しいです。

東方非想天則東方緋想天のデータを読み込ませたい@wine

この項は外付けHDDなどに東方を入れていて、Windowsでも使用したい場合に役立てると思います。
Windowsでは外付けHDD(UNTITLED)をL:\と認識させているので、私の非想天則の設定には次のようにパスを指定してあります。

[th105path]
path=L:\th\th105

ですが、このままwineで非想天則を実行すると緋想天を認識してくれません。
認識させるにはwineの設定が必要です。

  • ターミナルを開き、winecfgと入力してReturnしてください。
  • winecfgのドライブ タブを選択してください。
  • 追加(A)をクリックしてください。
  • ドライブレターを指定して、OK。(私の場合はL:、あなたの使用状況に合わせて)
  • 今追加したドライブレターが選択されていることを確認し、参照(B)をクリックしてください。
  • 外付けHDDなどは/Volumes/以下にマウントされています。該当のフォルダを選択してください。

(私の場合は/Volumes/UNTITLED/でした)


非想天則にZ:/Volumes/UNTITLED/th/th105/と指定しても認識したと思いますが、他に持ち出した時意識しなくてすむことを優先すると、ドライブレターを指定して外付けドライブをマウントしてあげるのが手っ取り早いと思い、このように設定しました。


追記、妖精大戦争のこと
vsyncpatchなしで正常に動作します。文字が透けるのは相変わらずですが、問題なく遊ぶ事が出来るはず。

追記、東方神霊廟のこと
体験版はVsyncPatchなしでもfps60固定で遊ぶことができました。(同本体、OSX10.7、wine1.3.25にて)

*1:-dはなくても構わないですが非常に静かになります