この間 Snow Leopard をインストールしたときはアップグレードインストールだった。だって店員さんが「クリーンインストールはできません。」て言うんだもん・・。
しかし、コメントを頂いたり、ウェブで検索してみると CD(あ。DVD か;-)を突っ込んで再起動し、 c を押しっぱなしにするとクリーンインストールができることを知ったので、過去の遺産を全て払拭すべく実施したのでありました。
DVD からブートした後は、インストール画面に表示されているツールバーのメニューから「ディクスユーティリティー」を起動してパーティションを削除する必要があります。
僕は外づけ HDD も持っていてタイムマシーンも動作しているのだけど過去の遺産は引っ張ってきたくないので、自分でバックアップしたものをインストール後に必要なものだけ抜き出す。と言う戦法に出ています。
気がついた点としては(当然なんだけど) ~/Library/ はバックアップするの重要ですねぇ。けど、このディレクトリ、ゴミが多いのもまた事実で、 ~/Library/Caches/com.apple.Safari/ なんてのはサクっと消してしまったほうが良いですね。後、フォントは /Library/Fonts/ にインストールしたほうが断然良い。
ってな感じで、復旧も終わりクリーンな状態となり、Xcode やら iPhoneSDK などをインストールして開発環境を整えます。それにしてもクリーンインストールして解ったのだけど、
/usr/bin/perl5.10.0
/usr/bin/perl5.8.9
/usr/bin/gcc-4.0
/usr/bin/gcc-4.2
などなど、随分とやってくれますなぁ。Apple も。って感じがします。そもそも、Xcode 入れた段階で /Developer/SDKs/ には MacOSX10.5.sdk/ と MacOSX10.6.sdk/ の両方がある。ってのにも驚いていますが・・。
それにしてもクリーンインストールした結果、それなりに make できないものが出てきて困っています。例えば sendmail-8.14.3 は Darwin 10.0.0 に対応してないし、make は通らないし、emacs は 22.3、23.1 共に make が通らないようになった。アップグレードインストールした時は無事に make できていたので何かがおかしくなったんでしょうなぁ。と言う感じです。自力で make するのは色々なソフトウェアが Darwin 10.0.0 に対応してからのほうが良いような気がします。
が、ただ単に「Darwin 10.0.0 に対応」とは行っても例えば FreeBSD の ports 的に言うと ports/devel/boehm-gc なんてのは 6.8 だと Darwin に対応しているのは i386 と PPC のみ。Darwon 10.0.0 は default で make すると x86_64 バイナリを出力するのでソースコードも Darwin の x86_64 に対応してくれないとパッチ書きまくりになってしまうであります。まぁ、gc の場合は 7.2alpha2 でちゃんと Darwin の x86_64 に対応しているので事なきを得たのですけどねぇ。
さてと。epkg ネタ行きましょう;-)。
僕は MacOSX ではバイナリパッケージとして epkg(http://www.ie.u-ryukyu.ac.jp/epkg/darwin4u/) を利用しています。管理も日本の方がやっているので ML に入れば日本語でのやり取りが可能だし、FreeBSD の ports みたいな感じなので、自分が欲しい epkg は自分で作成して仲間に入れてもらうこともできます;-)。
僕が過去に作った epkg のソース版 sepkg は以下の URL にあります。そして自分で作ったものはマージしてもらえたりもしているので嬉しいことです;-)。
http://icmpv6.org/Prog/Epkg/
epkg は Snow Leopard 版が出ましたが、今の所はまだ、バイナリパッケージが少ないようです。 FreeBSD 的に言うと 「ports から make する。」って動作が sepkg から make することになるんですが。現在は以下のような感じです。
http://www.ie.u-ryukyu.ac.jp/epkg/darwin6u/SEPKG/
で、じゃんじゃん sepkg 作ってくれる人募集中だそうです;-)。利用して「あれない。これ欲しい。」って言うより自分で作っちゃえっ。ってのが僕の感じなのであります。
今回はクリーンインストール環境からなのか、そこはかとなくはまった点を書いておきます。
まず、i386 と x86_64 のユニバーサルアプリの作り方ですが、/Developer/SDKs/MacOSX10.6.sdk
が必要です。 MacOSX は基本的には /usr/local/ は利用しないので自分でインストールしたライブラリが /usr/local/lib/ にインストールされた場合は以下の作業が必要になります。
|
僕もそれなりに epkg 利用してきましたが、SDKs の下に symlink する必要があるのを初めて知りました(^^;;。
後は簡単に sepkg からの make 方法を書いてみたいと思います。
|
これだけです。簡単;-)。 make したときに i386 と x86_64 のバイナリを生成します。make plist したときに i386 と x86_64 を足したユニバーサルバイナリにしてくれます。 make install すると生成したユニバーサルバイナリがインストールされます。
実際にインストールされたかは file コマンドを打てば良いでしょう。
|
非常に簡単で、本当に FreeBSD の ports みたいでしょ;-)。インストールされている情報は epkg list とか打てば確認できます。
後、sepkg を作成するときのヒントを少々書いておきましょう。まぁ、ほとんど Makefile を編集すれば良いだけですけどね。
|
大体、ここいら辺りを直せば OK かな。Makefile のもうちょっと下の方(以下略の下のほう;-) の .CONFIG: .PATCH の所で -isysroot で SDK 参照してそれをアーキテクチャ単位で for で回している。と言う感じです。
ややこしいオプションとかは余り考慮したくないのだけど、僕の場合は FreeBSD の ports を参考にしてオプションとかパッチの情報を仕入れています。
と、言うことで、この記事見て、僕も私も是非 epkg 作ってみたいわー。と言う人いましたら宜しくお願いします;-)。ちなみに僕は「自分が必要になったもの」の epkg を作ることにしています;-)。
最近、自宅ではすっかり MacOSX を UNIX として利用する機会が増えています。当然 GUI でメールを読んだり Safari 使ったり iPhoto で写真の管理もしていますけどねー。