- 更新日: 2013年5月8日
- Ruby
rvm で ruby 1.8.7 インストール時にエラーになったので gcc 4.9 を homebrew で入れた
rvm で ruby 1.8.7 をインストールしようとしたら軽くはまったので備忘録。環境は、Macbook Air で Mac OS X Lion 10.7.5。
1 2 3 4 |
$ rvm install 1.8.7 The provided compiler '/usr/bin/gcc' is LLVM based, it is not yet fully supported by ruby and gems, please read `rvm requirements`. |
rvm で ruby 1.8.7 のインストールを試みるが、llvm based な gcc だと ruby と gems に完全にはサポートされない、とエラーになります。gcc を確認してみる。
gcc を確認
1 2 3 4 5 6 7 8 9 10 11 |
$ which gcc /usr/bin/gcc $ gcc --v Using built-in specs. Target: i686-apple-darwin11 Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~67/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~67/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1 Thread model: posix gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) |
/usr/bin/gcc は記憶によると Mac に Xcode 入れた時についでに入れたやつです。なので、gcc を自分で入れることにする。
gcc を homebrew でインストール
Mac では Homebrew を使っているので、まずは brew search コマンドで gcc を探す。
1 2 3 4 |
$ brew search gcc apple-gcc42 gcc |
続いてインストール。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ brew install gcc ==> Installing gcc dependency: mpfr ==> Downloading http://www.mpfr.org/mpfr-3.1.1/mpfr-3.1.1.tar.bz2 ######################################################################## 100.0% ==> Downloading patches curl: (22) The requested URL returned error: 404 Error: Failure while executing: /usr/bin/curl -f#LA Homebrew\ 0.9.3\ (Ruby\ 1.8.7-358;\ Mac\ OS\ X\ 10.7.5) http://www.mpfr.org/mpfr-current/allpatches -o 000-homebrew.diff $ brew install gcc ==> Installing gcc dependency: mpfr ==> Downloading http://www.mpfr.org/mpfr-3.1.1/mpfr-3.1.1.tar.bz2 Already downloaded: /Library/Caches/Homebrew/mpfr-3.1.1-p2.tar.bz2 ==> Downloading patches curl: (22) The requested URL returned error: 404 Error: Failure while executing: /usr/bin/curl -f#LA Homebrew\ 0.9.3\ (Ruby\ 1.8.7-358;\ Mac\ OS\ X\ 10.7.5) http://www.mpfr.org/mpfr-current/allpatches -o 000-homebrew.diff |
curl でリクエストされた URL が404を返すので、 Homebrew 自体をアップデート。
1 2 3 |
$ brew update |
gcc インストール。
1 2 3 4 5 6 7 8 9 10 |
$ brew install gcc Error: No available formula for gcc GCC is now maintained in homebrew-versions, with major version number in formula name as suffix. Please tap using: brew tap homebrew/versions and then install GCC based on its version, e.g., 'brew install gcc47'. |
どうやら GCC は homebrew-versions というリポジトリで管理されているので、brew tap でリポジトリ追加後インストールしてくれと。brew tap で現在利用できるリポジトリを確認後、homebrew/versions リポジトリを追加する。
1 2 3 4 5 6 7 |
$ brew tap homebrew/dupes josegonzalez/php $ brew tap homebrew/versions ... |
gcc を検索。
1 2 3 4 |
$ brew search gcc apple-gcc42 gcc43 gcc44 gcc45 gcc46 gcc47 gcc48 gcc49 llvm-gcc28 |
一番新しそうな gcc 4.9 をインストールします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
$ brew install gcc49 Warning: Your Xcode (4.5.2) is outdated Please install Xcode 4.6.2. ==> Installing gcc49 dependency: gmp ==> Downloading ftp://ftp.gmplib.org/pub/gmp-5.1.1/gmp-5.1.1.tar.bz2 ######################################################################## 100.0% ######################################################################## 100.0%==> ./configure --prefix=/usr/local/Cellar/gmp/5.1.1 --enable-cxx ==> make ==> make check ==> make install /usr/local/Cellar/gmp/5.1.1: 12 files, 2.5M, built in 3.5 minutes ==> Installing gcc49 dependency: mpfr ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/mpfr-3.1.2.lion.bottle.tar.gz ######################################################################## 100.0% ==> Pouring mpfr-3.1.2.lion.bottle.tar.gz /usr/local/Cellar/mpfr/3.1.2: 23 files, 3.3M ==> Installing gcc49 dependency: libmpc ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/libmpc-1.0.1.lion.bottle.tar.gz ######################################################################## 100.0% ==> Pouring libmpc-1.0.1.lion.bottle.tar.gz /usr/local/Cellar/libmpc/1.0.1: 9 files, 292K ==> Installing gcc49 dependency: pkg-config ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/pkg-config-0.28.lion.bottle.tar.gz ######################################################################## 100.0% ==> Pouring pkg-config-0.28.lion.bottle.tar.gz /usr/local/Cellar/pkg-config/0.28: 10 files, 636K ==> Installing gcc49 dependency: isl ==> Downloading http://www.kotnet.org/~skimo/isl/isl-0.11.2.tar.bz2 ######################################################################## 100.0% ==> ./configure --prefix=/usr/local/Cellar/isl/0.11.2 ==> make install /usr/local/Cellar/isl/0.11.2: 52 files, 3.0M, built in 55 seconds ==> Installing gcc49 dependency: cloog ==> Downloading http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-0.18.0.tar.gz ######################################################################## 100.0% ==> ./configure --prefix=/usr/local/Cellar/cloog/0.18.0 --with-isl-prefix=/usr/local/opt/isl ==> make install /usr/local/Cellar/cloog/0.18.0: 31 files, 528K, built in 47 seconds ==> Installing gcc49 ==> Downloading ftp://gcc.gnu.org/pub/gcc/snapshots/4.9-20130428/gcc-4.9-20130428.tar.bz2 ######################################################################## 100.0% ######################################################################## 100.0%==> ../configure --build=x86_64-apple-darwin11.4.2 --prefix=/usr/local/Cellar/gcc49/4.9-20130428/gcc --datarootdir=/usr/local/Cellar/gcc49/4.9-20130428/share --bindir=/usr/local/Cellar/gcc49/4.9-20130428 ==> make bootstrap ... |
40分以上かかってやっと gcc が入りました。
インストールした gcc4.9 へのシンボリックリンク設定
/usr/local/bin に gcc4.9 関連の bin(へのシンボリックリンク)が作成されているのを確認。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ ls -la /usr/local/bin | grep 4.9 lrwxr-xr-x 1 takafumir admin 40 5 8 07:29 c++-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/c++-4.9 lrwxr-xr-x 1 takafumir admin 40 5 8 07:29 cpp-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/cpp-4.9 lrwxr-xr-x 1 takafumir admin 40 5 8 07:29 g++-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/g++-4.9 lrwxr-xr-x 1 takafumir admin 40 5 8 07:29 gcc-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/gcc-4.9 lrwxr-xr-x 1 takafumir admin 43 5 8 07:29 gcc-ar-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/gcc-ar-4.9 lrwxr-xr-x 1 takafumir admin 43 5 8 07:29 gcc-nm-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/gcc-nm-4.9 lrwxr-xr-x 1 takafumir admin 47 5 8 07:29 gcc-ranlib-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/gcc-ranlib-4.9 lrwxr-xr-x 1 takafumir admin 41 5 8 07:29 gcov-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/gcov-4.9 lrwxr-xr-x 1 takafumir admin 66 5 8 07:29 x86_64-apple-darwin11.4.2-c++-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/x86_64-apple-darwin11.4.2-c++-4.9 lrwxr-xr-x 1 takafumir admin 66 5 8 07:29 x86_64-apple-darwin11.4.2-g++-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/x86_64-apple-darwin11.4.2-g++-4.9 lrwxr-xr-x 1 takafumir admin 66 5 8 07:29 x86_64-apple-darwin11.4.2-gcc-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/x86_64-apple-darwin11.4.2-gcc-4.9 lrwxr-xr-x 1 takafumir admin 68 5 8 07:29 x86_64-apple-darwin11.4.2-gcc-4.9.0 -> ../Cellar/gcc49/4.9-20130428/bin/x86_64-apple-darwin11.4.2-gcc-4.9.0 lrwxr-xr-x 1 takafumir admin 69 5 8 07:29 x86_64-apple-darwin11.4.2-gcc-ar-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/x86_64-apple-darwin11.4.2-gcc-ar-4.9 lrwxr-xr-x 1 takafumir admin 69 5 8 07:29 x86_64-apple-darwin11.4.2-gcc-nm-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/x86_64-apple-darwin11.4.2-gcc-nm-4.9 lrwxr-xr-x 1 takafumir admin 73 5 8 07:29 x86_64-apple-darwin11.4.2-gcc-ranlib-4.9 -> ../Cellar/gcc49/4.9-20130428/bin/x86_64-apple-darwin11.4.2-gcc-ranlib-4.9 |
/usr/bin の gcc は llvm の gcc を向いたままになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ ls -la /usr/bin | grep llvm lrwxr-xr-x 1 root wheel 12 12 10 15:25 g++ -> llvm-g++-4.2 lrwxr-xr-x 1 root wheel 12 12 10 15:25 gcc -> llvm-gcc-4.2 lrwxr-xr-x 1 root wheel 28 12 10 15:25 gcov-4.2 -> ../llvm-gcc-4.2/bin/gcov-4.2 lrwxr-xr-x 1 root wheel 52 12 10 15:25 i686-apple-darwin11-llvm-g++-4.2 -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-g++-4.2 lrwxr-xr-x 1 root wheel 52 12 10 15:25 i686-apple-darwin11-llvm-gcc-4.2 -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-gcc-4.2 lrwxr-xr-x 1 root wheel 32 12 10 15:25 llvm-cpp-4.2 -> ../llvm-gcc-4.2/bin/llvm-cpp-4.2 lrwxr-xr-x 1 root wheel 32 12 10 15:25 llvm-g++ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2 lrwxr-xr-x 1 root wheel 32 12 10 15:25 llvm-g++-4.2 -> ../llvm-gcc-4.2/bin/llvm-g++-4.2 lrwxr-xr-x 1 root wheel 32 12 10 15:25 llvm-gcc -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2 lrwxr-xr-x 1 root wheel 32 12 10 15:25 llvm-gcc-4.2 -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2 |
homebrew で入れた gcc4.9 が gcc コマンドで起動されるようにシンボリックリンクを設定します。
1 2 3 4 |
$ sudo ln -s /usr/local/bin/gcc-4.9 /usr/local/bin/gcc $ sudo ln -s /usr/local/bin/g++-4.9 /usr/local/bin/g++ |
ちなみに私は、 ~/.zshrc に以下のように書いているので、 /usr/local/bin が /usr/bin よりも優先されます。
1 2 3 4 |
$ vi ~/.zshrc PATH=/usr/local/bin:/usr/local/sbin:$PATH |
gcc のパスとバージョンを確認。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ which gcc /usr/local/bin/gcc $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc49/4.9-20130428/gcc/libexec/gcc/x86_64-apple-darwin11.4.2/4.9.0/lto-wrapper Target: x86_64-apple-darwin11.4.2 Configured with: ../configure --build=x86_64-apple-darwin11.4.2 --prefix=/usr/local/Cellar/gcc49/4.9-20130428/gcc --datarootdir=/usr/local/Cellar/gcc49/4.9-20130428/share --bindir=/usr/local/Cellar/gcc49/4.9-20130428/bin --enable-languages=c --program-suffix=-4.9 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-cloog=/usr/local/opt/cloog --with-isl=/usr/local/opt/isl --with-system-zlib --enable-stage1-checking --enable-plugin --enable-lto --disable-werror --disable-nls --disable-multilib Thread model: posix gcc version 4.9.0 20130428 (experimental) (GCC) |
改めて rvm で ruby1.8.7 をインストール
改めて、ruby 1.8.7 を rvm でインストールして確認、入りました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ rvm install 1.8.7 ... $ rvm list rvm rubies ruby-1.8.7-p370 [ i686 ] =* ruby-1.9.3-p194 [ x86_64 ] # => - current # =* - current && default # * - default |
念のために、ruby1.8.7のインストール作業終了後に、gcc4.9へのシンボリックリンクは削除しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ sudo rm /usr/local/bin/gcc $ sudo rm /usr/local/bin/g++ $ which gcc /usr/bin/gcc $ gcc --version i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc -v Using built-in specs. Target: i686-apple-darwin11 Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~67/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~67/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1 Thread model: posix gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) |
元々入っていた、Apple の llvm based の gcc に戻しました。
- – 参考リンク –
- Kanlog: MacにHomebrewでgcc最新版(4.7)をいれるまで
- Ruby の関連記事
- Gemの作り方(Ruby Gem)
- ローカル開発中のgemをGemfileに書いてインストール
- 熊本地震の余震が夜に多いのは本当か?Rubyプログラムで検証してみた
- El Capitanでgemのnative extensionビルド失敗に対応
- Rubyで親クラスから子クラスの定数を参照
- MacabをRubyで使う
- rbenv/ruby-buildでRuby最新バージョンをインストール
- Rubyでクラスインスタンス変数にインスタンスメソッドからアクセス
- 距離1kmあたりの緯度・経度の度数を計算(日本・北緯35度)
- Google Maps Geocoding APIで住所から緯度・経度を取得するRubyコード
Leave Your Message!