3

公式の git mirrorから ruby​​ ソースを入手し、ruby_1_9_2ブランチをチェックアウトしました。

git クローン http://github.com/ruby/ruby.git
git チェックアウト ruby​​_1_9_2

ということで、とりあえず1.9.2-headをコンパイルしたいと思います。しかし、後でわかるように、1.8 でも機能するソリューションを期待しています。

これをコンパイルする標準的な方法は次のとおりです。

autoconf
。/構成、設定
作る
インストールする

それは機能しますが、x86_64 のみのビルドが生成されます。

$ ルビー -v
ruby 1.9.2dev (2010-06-14 リビジョン 28321) [x86_64-darwin10.3.0]

私は 10.6 を使用しているので、明らかに PPC は気にしませんが、32 ビットで実行する必要があるものがあるため、i386 と x86_64 の両方が必要です。

だから、私が知りたいこと:

  1. i386 と x86_64 の両方のアーキテクチャでファット バイナリを構築するための魔法のチャントです。
  2. RVM ruby​​ バージョンでも同じことをしたいと思っています。

おそらく不要なシステム情報:

$ system_profiler -detailLevel ミニ SPSoftwareDataType | ack '^ {6}' | 頭-3
      システムバージョン: Mac OS X 10.6.4 (10F569)
      カーネル バージョン: ダーウィン 10.4.0
      64 ビット カーネルと拡張機能: いいえ

$ uname -a
ダーウィン意味のない.ローカル10.4.0ダーウィンカーネルバージョン10.4.0:2010年4月23日金曜日18:28:53 PDT; root:xnu-1504.7.4~1/RELEASE_I386 i386
4

2 に答える 2

4

--with-arch次のオプションを使用し./configureます。

$ ./configure --with-arch=x86_64,i386

--with-archRuby をビルドするアーキテクチャのカンマ区切りのリストを取ります。


kch によって追加されました:

ビルドが成功した後の出力:

$ ファイルルビ
ruby: 2 つのアーキテクチャを持つ Mach-O ユニバーサル バイナリ
ruby (アーキテクチャ x86_64 用): Mach-O 64 ビット実行可能 x86_64
ruby (アーキテクチャー i386 用): Mach-O 実行可能 i386

$ arch -i386 ./ruby -v
ruby 1.9.2dev (2010-06-29 リビジョン 28468) [universal.i386-darwin10.4.0]

$ arch -x86_64 ./ruby -v
ruby 1.9.2dev (2010-06-29 リビジョン 28468) [universal.x86_64-darwin10.4.0]

$ ./ルビー -v
ruby 1.9.2dev (2010-06-29 リビジョン 28468) [universal.x86_64-darwin10.4.0]
于 2010-06-29T04:55:48.790 に答える
1

RVMに関しては、ファットバイナリを使用できないと書かれていますが、私のパッチを組み込んだこのコミットの時点ではそうではありません。

最新のrvmをruby-1.9.2-head使用すると、手動ビルドと同じ構成フラグを使用してインストールできます。

$ rvm install ruby​​-1.9.2-head -C --with-arch = x86_64、i386

それがおそらく機能していることの証明:

$ rvm use1.9.2-head
情報:ルビー1.9.2ヘッドの使用

$ファイル`どのルビー`| perl -pe's|^。*/||'
ruby:2つのアーキテクチャを備えたMach-Oユニバーサルバイナリ
ruby(アーキテクチャx86_64用):Mach-O64ビット実行可能ファイルx86_64
ruby(アーキテクチャi386用):Mach-O実行可能ファイルi386
于 2010-06-29T06:05:41.797 に答える