Solaris
在 ruby mkmf 中使用 gcc 而不是 SUNWspro cc 用於 Solaris 10 上的 yajl
如何讓 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 軟體包是最新的(看起來是因為二進製文件是 ruby18),您可以使用替代機制切換到設置為使用 /opt/csw/gcc4/bin/gcc 而不是 sun 的 rbconfig.rb編譯器。如果它不是最新的,有一段時間包含一個名為 cswrbconfig 的實用程序,它允許在編譯器之間切換。我也忘記了我添加了哪個版本的軟體包,但是如果有記憶的話,該功能已經使用了一年多。
如果您對 CSWruby(或其他 OpenCSW 軟體包)有更多疑問,請在 freenode irc 上的#opencsw 中找到維護者。
(我是 OpenCSW ruby 維護者。)