Leopardを再インストールした

MacBook(Kro)のLeopardを再インストールした。
理由は、Bootcampでイメージを作れなかったり、GIMPが起動しなくなったりと、
Tigerからの上書きインストールが原因ではないか?
と感じる問題が幾つかあったから。
そして最近、TimeMachineによってバックアップもしたので
良いチャンスだと思って、再インストール(クリーン)を試みた。

いざ、インストール

  • CDを入れ、インストーラを起動し再起動。
  • 環境は日本語を選択
  • いろいろと同意
  • インストール先はMacintosh HDD
  • 消去してからインストール
  • ディスクフォーマットはデフォルト
  • インストールの概要でカスタマイズを選択
  • プリンタドライバ、追加フォント、言語環境をoffに
  • X11はonのまま!!offにしたら死んじゃう(研究的な意味で)
  • インストールDVDのチェックは華麗にスキップ

インストール開始。しばし待つ。
残り時間31分と表示。一瞬で26分になる。
MacOSのインストールは光よりも早い!!

  • インストール完了。再起動。
  • ギザカッコいいオープニングに酔う。
  • 住いは日本、入力環境はことえり、ローマ字
  • 情報を今すぐ転送しない
  • AppleIDを忘れたので、apple.comで調べる。
  • ユーザ登録?AppleIDではだめなの?command+qでスキップ。
  • yaeda_backupというユーザを作成。TimeMachineのデータよりyaedaを復元させるため。
  • ピクチャも適当に選択。
  • 時間を設定。
  • 登録を忘れずに!といわれる。

インストール完了〜〜

Xcode,Macportsのインストール

標準でインストールされている気もしたが、確認もせずXcodeをインストール。
DVDの中のOptional Installs/Xcode Tools/XcodeTools.mpkgを起動
デフォルトでインストール。5Gくらい増えた。カスタマイズすべきか。


http://www.macports.org/よりMacPortsの最新版
MacPorts-1.6.0-10.5-Leopard.dmg
をダウンロードしてきてインストール。一瞬で完了。
ターミナル上で
export PATH=/opt/local/bin:$PATH
と打って、portsにPATHを通す。

VMware Fusionインストール

昔、生協で買ったものをついにインストール。
英語版を買ったはずなのだが、インストーラは日本語。
こういうものなのか?

インストールは一瞬。シリアルナンバーを入れるだけ。

さっそく使ってみる。

BoolCampで入れたXPをFusionから起動。
勝手にVMwareToolsをインストールしはじめる。
偉すぎる。


Mac Win間のファイルの受渡しもドラッグ&ドロップでできた。
素敵過ぎる。


あれ?サスペンドのやり方が分からん><

(追記)
よく考えると、サスペンドできないのは当然。
理由はBootCampパーティションだから。
もしサスペンドできると、BootCampで立ち上げるときイミフな事態に陥る。
サスペンドしたいなら、VMware用のイメージでOSを作成する必要がある。
BootCampでは開けないけど。

BootCampでWindowsXPを入れる

BootCampアシスタントを起動。
FAT32のため、用意されている32GBを使用のボタンを押す。
なんのことなく、パーティション作成完了。
WindowsのインストールCDを入れるようにいわれたので、
大学で購入したXP-professionalを入れてインストール。
(32bit版しか対応していないのが悲しいが、
Vistaも対応しているようなので、暇があったらVistaも入れてみる。)


インストールは通常のWindowsのインストールと同じ。
インストール先は先ほど作成したFAT32の32GBのパーティションを選択。
インストール中放置していたら、


Disk error
Press any key to restart


真っ暗な画面に表示されていた。
失敗?もう一度インストールしなおす。
原因はこれの様子。
おかしいなぁ?フォーマットし忘れたか?
しっかりフォーマットして再チャレンジ!!
見事インストールに成功。


MacBookWindowsを走らせるというのは違和感がある。
とりあえず、右クリックすらできないので、一度MacOSに戻り、CDを摘出。
(optionを押しながら起動することで起動ディスクを選べる。)
改めてLeopardのインストールDVDを入れて、Windowsで再起動。
LeopardのDVDからハードウェア関係のドライバをインストール。

すげぇ!!

iSightも使える。なんだこれ。

TimeMachineでTeraStationにバックアップ

そろそろ、MacBook(Kro)をクリーンインストールしようと思い、バックアップがしたくなった。
折角なので、TimeMachineを使おうと思い立つ。
しかし自分は大容量のHHDなど持っていない。
TimeCapsuleが欲しいけれど、そんなにお金がない。
うーむ、、、、と思い悩んでいるところで、気がついた。
研究室のTeraStationを使ってしまおう!!(こっそり)


研究室のTeraStationは容量が1TBもあるので、100GBくらいなら許してもらえるだろう。
ということで、早速設定開始。

iTimeMachineのインストール

早速、TeraStationをマウントして、TimeMachineを起動。
ん?
バックアップ先のリストにTeraStationが出てこない?
調べてみると、標準ではネットワーク接続のドライブにはバックアップできない様子。
で、それを可能にするiTimeMachineというものをインストール。

スパースバンドル・ディスクイメージの作成

iTimeMachineによってTeraStationを選択可能になったところで、いざバックアップ開始。
しかし、バックアップの準備中に
「バックアップディスクイメージを作成できませんでした」
というエラーを吐いてストップ。


これまた調べてみると、ネットワーク上にバックアップする場合は先にスパースバンドル・ディスクイメージ
なるものを作成し、そこにバックアップしていくらしいのだが、
このディスクイメージの作成に失敗するらしい。


解決方法としては、ディスクユーティリティなどで先にこのスパースバンドル・ディスクイメージを作ってやればよい。
TimeMachineをネットワーク越しに利用する「iTimeMachine」の導入方法備忘録(大人なクロログ)
Time Machineを使ってみよう(2) -- スパースバンドルディスクイメージ(うらしまMac覚え書き)
などを参考に(有り難うございます!感謝)
ローカルでディスクイメージを作成し、TeraStationにコピーしてからTimeMachineによるバックアップを開始。


注意する点は

  • スパースバンドル・ディスクイメージの名前は[マシン名]_[MACアドレス].sparsebundle。失敗したときの出来損ないの名前をコピーしておくと吉。
  • スパースバンドル・ディスクイメージのサイズはたっぷり確保。可変容量らしいが、設定以上の容量にはならないらしい。

最後に

meetingが終わったら書く。
ってか、気が遠くなるほど時間がかかりそう。


約6時間ほどでバックアップ終了。
これを機に、Leopardを再インストールしようと思う。
(現状はTigerからのアップグレード)
しかし、ここで一つ気づいた。
再インストール時にデータ移行するには、ネットワークドライブじゃ認識できないんじゃね??
再インストール後にもう一度iTimeMachineを入れて、復元することになりそうだ。

MacOSでダイナミックライブラリを作成する

Linuxで書いているプログラムをMacBookコンパイルしてみたら
ラブラリを生成できなかった。
どうやら、MacOSではライブラリは.soではなく、.dylibらしい。

.dylibの作成には、オプションを
[-shared]から[-dynamiclib]に
[-soname]から[-install_name]に
変更すればよいらしい。


ということで、貰い物のMakefileに手を加えた。
具体的には

LIB_SO	=lib$(PROGRAM).so
$(LIB_SO) : $(OBJS)
	$(CC) $(LDFLAGS) \
		-g -shared -Wl,-soname,$(LIB_SO) \
		-o $(LIB_SO) \
		$(OBJS) \
		$(LIBRARIES)

となっている部分を

LIB_DYLIB =lib$(PROGRAM).dylib
$(LIB_DYLIB) : $(OBJS)
	$(CC) $(LDFLAGS) \
		-g -dynamiclib -install_name $(LIB_DYLIB) \
		-o $(LIB_DYLIB) \
		$(OBJS) \
		$(LIBRARIES)

としたら、うまくできた。

さらに、同じソースでLinuxMacOSで使えるように、
unameを使って条件分岐を書いてみた。

# OS
OS = ${shell uname}

# switch library
ifeq ($(OS),Linux) # Linux
all:	$(LIB_SO)
endif
ifeq ($(OS),Darwin) # Darwin
all:	$(LIB_DYLIB)
endif


これでOK

あれ?

ダメだ。上ではできないときもある。
なぜだ?
エラー解読中。

とりあえず

星の贈り物(2006年2月の日記)をみながら、
"-undefined suppress -flat_namespace"というのを追加して以下のようにしたら、.dylibができた。

LIB_DYLIB =lib$(PROGRAM).dylib
$(LIB_DYLIB) : $(OBJS)
	$(CC) $(LDFLAGS) \
		-g -dynamiclib -install_name $(LIB_DYLIB) \
		-undefined suppress -flat_namespace -o $(LIB_DYLIB) \
		$(OBJS) \
		$(LIBRARIES)

しかし、いったい何をやっているのか、サッパリ分からん><
Makefileの書き方から、コンパイルオプションまで勉強せなあかんな。

DYLD_LIBRARY_PATH

最後に、.dylibのある場所を
DYLD_LIBRARY_PATH
に追加する。