Solaris

在 ruby mkmf 中使用 gcc 而不是 SUNWspro cc 用於 Solaris 10 上的 yajl

  • July 9, 2011

如何讓 mkmf 在 Solaris 10 上使用 gcc 而不是 /opt/SUNWspro/bin/cc?

我正在嘗試使用 gem install chef 安裝廚師。它失敗了:

Building native extensions.  This could take a while...
ERROR:  Error installing chef:
   ERROR: Failed to build gem native extension.

   /opt/csw/bin/ruby18 extconf.rb
creating Makefile

make
/opt/SUNWspro/bin/cc -I. -I/opt/csw/lib/ruby/1.8/i386-solaris2.9 -I/opt/csw/lib/ruby/1.8 /i386-solaris2.9 -I. -I/opt/csw/include -D_FILE_OFFSET_BITS=64  -KPIC -xO3 -m32 -xarch=386  -KPIC  -Wall -funroll-loops  -c yajl.c
make: /opt/SUNWspro/bin/cc: Command not found
make: *** [yajl.o] Error 127


Gem files will remain installed in /opt/csw/lib/ruby/gems/1.8/gems/yajl-ruby-0.8.2 for inspection.
Results logged to /opt/csw/lib/ruby/gems/1.8/gems/yajl-ruby-0.8.2/ext/yajl/gem_make.out

檢查 /opt/csw/lib/ruby/gems/1.8/gems/yajl-ruby-0.8.2/ext/yajl/Makefile 給出:

CC = /opt/SUNWspro/bin/cc

至關重要的是,將 CC 環境變數設置為 gcc 絕對沒有任何作用。

來自StackOverflow的交叉發布

如果您的 CSWruby 軟體包是最新的(看起來是因為二進製文件是 ruby​​18),您可以使用替代機制切換到設置為使用 /opt/csw/gcc4/bin/gcc 而不是 sun 的 rbconfig.rb編譯器。如果它不是最新的,有一段時間包含一個名為 cswrbconfig 的實用程序,它允許在編譯器之間切換。我也忘記了我添加了哪個版本的軟體包,但是如果有記憶的話,該功能已經使用了一年多。

如果您對 CSWruby(或其他 OpenCSW 軟體包)有更多疑問,請在 freenode irc 上的#opencsw 中找到維護者。

(我是 OpenCSW ruby​​ 維護者。)

引用自:https://serverfault.com/questions/287542