2012-10-24 42 views
2

我在FreeBSD上使用Ruby,並且由於它們需要GNU make而不是FreeBSD的make,所以我很難編譯本機擴展。任何想法如何強制gmake成爲沒有別名/ PATH-fu的bundler的默認編譯器?Ruby bundler make binary

+0

任何原因,特別是爲什麼要避免別名/ PATH-fu? –

+0

別名不起作用,因爲system()(extconf.rb)不尊重別名。我可以通過設置一個PATH來實現,它將gmake二進制文件複製爲make,並優先於FreeBSD make,但對我來說這似乎有點愚蠢。 捆綁器配置選項會非常好。 – user1770403

回答

1

您是否嘗試設置指向gmake的MAKE環境變量?

+0

是的,我做了 - 它沒有工作。 – user1770403

+0

這就是*確切*的方式來做到這一點。設置MAKE環境變量。如果您的環境不尊重程序的使用基礎,Bundler做一些配置選項將毫無用處。 (make(gnu&bsd品種)的設計都考慮到了它的用途)。 這表示您的系統有問題。如果它不尊重設置環境var MAKE,那麼它也不尊重系統變量。這就是FreeBSD,Linux和大多數其他Unices設置,更改或修改的方式。我會strace或打開調試。看看發生了什麼。那不正常的行爲。 – ddd

+0

是的,我在想同樣的事情。實際上,在配置步驟中,它正確顯示MAKE路徑,但不在extconf.rb中。我需要一個快速解決方案,所以我使用了RVM設置PATH環境變量的方式並執行 ln -sf/usr/local/bin/gmake〜/ .rvm/bin/make – user1770403