6月 262009
 

僕は MacOSX では epkg と言うパッケージシステムを利用しています。国産だし、 FreeBSD の ports みたいな感じなので結構良いです。GUI 版と CUI 版があるのだけど、僕はもっぱら CUI 版のものを利用しています。

前回、MacBook のメモリと HDD を増強した際に OS を再インストールしたのだけど、そのタイミングで epkg も全部入れ直し。と言う感じ。コマンドラインから以下のようにするだけで簡単に色々なものがインストールできます。とは言っても、最近はインストールするもの、少ないのですけど(^^;;。

# epkg update
# epkg upgrade
# epkg install nkf

 
基本的に epkg コマンドをオプション無しで実行した場合、詳細が表示されるのでそれを見て色々やれば大丈夫。って感じです。

さてと。ここまでは epkg の説明なんだけど、ここから先が本題です;-)。

epkg のダウンロード先は琉球大学にあるのですが、バイナリパッケージがいまいち更新されていないことが見受けられるので、これは自分で更新するしかあんめい。とかなるわけです;-)。利用するばかりってのもなんですしねぇ。

今のだと MacOSX Leopard(darwin5u) の netpbm のバイナリパッケージは PPC 版のみでユニバーサルバイナリにはなっていなかったりします。と、言うことで sepkg を取ってきて、自分の MacOSX 上でコンパイルすんべな。とかなるのですが、せっかくなので最新のバージョンを利用したものを作成しておきました。以下の URL に置いてあるです。FreeBSD の最新の ports とバージョンを合わせたので netpbm-10.26.63 になっています。でもって i386 用になっています。

http://icmpv6.org/Prog/Epkg/netpbm.src.epkg

/usr/epkg/graphics/ の下で tar で展開した後に cd netpbm して make と make install を叩けばインストールされます。削除 は epkg del netpbm とすれば epkg の機能として削除されます。

さて、この sepkg ですが FreeBSD で言う所の「ports を作る。」作業とまるで一緒です。epkg のルールに従って Makefile を書いていく。って感じです。ただ、ユニパーサルバイナリを作るときは Xcode が必要で CFLAGS に /Developer/SDKs/MacOSX10.5u.sdk などを指定する必要があります。

この辺りは MacOSX 固有なので中々面白いなぁ。などと思うのですが、次期 OS である Snow Leopard では PPC はサポートされなくなるので PPC/i386 のユニパーサルバイナリは必要無くなるかなぁ。とは思っています。なので今回の netpbm.src.epkg は PPC に対応していません。まぁ、正確に言うと「作れなかった。」と言うことになるのですけどねぇ(^^;;。

と、言うような感じで、Mac でコンパイルするためには epkg の ソース版を眺めるのは中々有用ですねぇ。と言う感じなのであります。

実は昨日の夜 Phone3.0 SDK をインストールしました。僕もいよいよ金を探しに行こうかなぁ。などと思い始めています;-)。

加筆。
なんか、上の文章はちょっと変ですね。「ユニバーサルバイナリには対応していない。」と言うのは正しいですが「i386 版のみで PPC には対応していません。」と言うのは間違っている記述です。正確には

「自分の環境で make したバイナリが作成される。」

となります。僕の MacBook は Core2Duo なので i386 版のバイナリができて、 iBookG4 で make した人は PPC 版のバイナリができるはずです。

と、言うことは epkg は sepkg を持ってきて、自分の環境で作る分には自分の OS にあったバイナリができる。と、言う感じでしょうか。epkg が Snow Leopard 対応になってユニバーサルバイナリ対応を捨てたとき、PPC の人が epkg を使いたい場合は sepkg から自分で make すれば良い。と言うことですねー;-)。

 コメントを書いてください。

HTML タグが利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(必須項目)

(必須項目)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください