"gem install therubyracer -v '0.10.2'" on osx mavericks not installing
Solution 1
If you decide to use a newer therubyracer
gem version, you will no longer have this problem
Otherwise:
brew tap homebrew/dupes # Thanks Tom
brew install apple-gcc42
export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2
export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2
export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2
brew uninstall v8
gem uninstall libv8
gem install therubyracer -v '0.10.2' # specify version
Solution 2
So I finally got it working after some struggling... thanks to Simon and Alvaro.
I have one thing to add though, using the flag --with-system-v8 did not work for me... So i removed my system v8 with
brew uninstall v8
And the run
gem install libv8
If you have already run gem install libv8
with the system v8 flag be sure to uninstall that gem version (do it by running gem uninstall libv8
). The important thing is that you shouldn't use the one provided by brew, it does not seem to work in Mavericks (it gets installed well and bundler will report that your bundle is complete, but your app will fail when it tries to use v8).
To summarize the answer, doing the following worked for me:
brew install apple-gcc42
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp
brew uninstall v8
gem install libv8
gem install therubyracer
Solution 3
I had the same problem, this works for me:
therubyracer (0.10.2) & libv8 (3.3.10.4)
First of all:
brew install apple-gcc42
- you must link all the binary files of the compilers (
gcc
,cpp
,g++
) to/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/<compiler>
After, you could try this:
brew install v8
gem install libv8 -v '3.3.10.4' -- --with-system-v8
gem install therubyracer -v 'therubyracer'
orbundle install
into the directory of the rails project.
Solution 4
I just had the same problem and one solution is currently to use apple-gcc42 instead of clang to compile both gems :
brew install apple-gcc42
And then you have the choice between doing some symlinks in /usr/bin for {gcc,g++,c++} binaries :
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp
In fact g++ should be enough.
Or...you could export CC/CXX/CPP environment variables with paths corresponding to the binaries created by homebrew. That's surely a cleaner workaround.
A third solution is to download Xcode 4.6.3 and install it in the Applications folder. Then, enter in the terminal:
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
gem install therubyracer
Once the gem has been installed you can switch back to Xcode 5.0 :
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Solution 5
I found a workaround that worked without installing apple-gcc42.
This will work if the error message you're getting looks like this:
clang: error: no such file or directory: '/Users/mscottford/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a'
Then you should be able to do the following:
brew install v8
bundle install
# after failing create link from brew installed v8 to error location
ln -s /usr/local/Cellar/v8/3.21.17/lib/libv8_base.x64.a /Users/mscottford/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a
bundle install
Source: https://github.com/cowboyd/therubyracer/issues/277#issuecomment-27734348
user2711889
Updated on January 14, 2020Comments
-
user2711889 over 4 years
Trying to install therubyracer on mavericks using "gem install therubyracer -v '0.10.2'" but i am getting the following error:
/Users/dennischen/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb checking for main() in -lobjc... yes creating Makefile make compiling rr.cpp clang: warning: argument unused during compilation: '-rdynamic' rr.cpp:48:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ 1 warning generated. compiling v8.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_array.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_callbacks.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_context.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_date.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_debug.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_exception.cpp clang: warning: argument unused during compilation: '-rdynamic' v8_exception.cpp:10:16: warning: unused variable 'stack' [-Wunused-variable] static void* stack[20]; ^ 1 warning generated. compiling v8_external.cpp clang: warning: argument unused during compilation: '-rdynamic' v8_external.cpp:10:9: warning: unused variable 'references' [-Wunused-variable] VALUE references; ^ 1 warning generated. compiling v8_function.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_handle.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_locker.cpp clang: warning: argument unused during compilation: '-rdynamic' v8_locker.cpp:45:5: warning: control reaches end of non-void function [-Wreturn-type] } ^ v8_locker.cpp:85:5: warning: control reaches end of non-void function [-Wreturn-type] } ^ 2 warnings generated. compiling v8_message.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_object.cpp clang: warning: argument unused during compilation: '-rdynamic' v8_object.cpp:77:19: warning: unused variable 'proto' [-Wunused-variable] Handle<Value> proto(rr_rb2v8(prototype)); ^ 1 warning generated. compiling v8_script.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_string.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_template.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_try_catch.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_v8.cpp clang: warning: argument unused during compilation: '-rdynamic' compiling v8_value.cpp clang: warning: argument unused during compilation: '-rdynamic' v8_value.cpp:100:9: warning: unused function 'ToInt32' [-Wunused-function] VALUE ToInt32(VALUE self) { ^ 1 warning generated. compiling v8_weakref.cpp clang: warning: argument unused during compilation: '-rdynamic' linking shared-object v8.bundle clang: error: no such file or directory: '/Users/dennischen/.rvm/gems/ruby-1.9.3-p194@panini/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a' make: *** [v8.bundle] Error 1
can anyone help me figure out how to get this gem to work? I have the command line tools installed.
-
user2711889 over 10 yearsHow do I switch the compiler to apple-gcc42?
-
bonum_cete over 10 years@Simon when I try to symlinc to the compilers I get a message that file exists. Is that the clang file? If I run bundle install it doesn't appear to be using gcc because the error is full of clang references.
-
jshkol over 10 yearsIf you're using MacPorts you don't have to symlink to point to a different GCC version, there's a builtin command for that (see my answer).
-
Jamon Holmgren over 10 yearsThis worked for me. But I symlinked gcc into /usr/local/bin and restarted terminal so I could remove it after I installed libv8.
-
Nilesh over 10 yearsThis approach seems better than modifying symlinks
-
Abe Petrillo over 10 yearsError: No available formula for apple-gcc42
-
TomFuertes over 10 years
brew tap homebrew/dupes
fixes "Error: No available formula for apple-gcc42" -
Ode over 10 yearsHuge +1 for this one. The gem would install on the CLI but RubyMine v6 was refusing to install it... setting this symlink resolved the issue finally. Thanks!
-
Kyle Fox over 10 yearsThis FINALLY fixed the issue for me — thanks! I tried M. Scott Ford's symlink solution below and it appeared to work, but threw an error when I actually tried to do anything (rake, rails, etc).
-
jackocnr over 10 yearsYer updating to therubyracer 0.12.0 fixed this issue for me.
-
Lloeki about 10 yearsI had to add
RUBYOPT=-rrubygems
too, similarly to this question -
Thibaut Barrère about 10 yearsWorked perfectly for me (using
bundle install
too). -
Pascal about 10 yearsexporting CC, CXX and CPP worked for me. Thanks. Installing another, more recent version of therubyracer worked as well, but as i'm i can not update the Gem Version in one of the projects: thanks a bunch:-)
-
Evo_x about 10 yearsWorked for me on mavericks.
-
Dave Foster about 10 yearsThis 1000%, cheers @M.ScottFord. I use rvm and therefore my ln statement was this:
ln -s /usr/local/Cellar/v8/3.21.17/lib/libv8_base.x64.a ~/.rvm/gems/ruby-1.9.3-p327/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a
-
mrm almost 10 yearsSymlinking homebrew binaries with that specific version, into /usr/bin, is a really bad idea. The next
brew update
that comes along and revs those paths will leave you in a broken state. -
Chris Bloom almost 10 yearsThanks! This finally got me past
bundle install
after days of trial and error. Only thing I did differently was to uninstall all of the developer tools that were installed bybrew
untilgcc --version
reported that it was the Apple LLVM version and was configured with Xcode, then I moved the existing/usr/bin/gcc
(et. al.) out before symlinking the apple-gcc42 libs, then instead of installing gcc49 (last time I tried it took over an our to configure) I just copied the original gcc, g++, and cpp libs back. Given that I tried 3 dozen different ways to find the one that worked for me, YMMV -
turboladen almost 10 yearsUnfortunately, none of these solutions is working for me on OSX 10.9, ruby 2.1.0, and therubyracer 0.12.1.
-
miligraf about 9 yearsThanks @th01 this worked for me...I tried everything I could find for 3 hours...in my case, it was the libv8 gem. Downloaded Xcode4.6.3 and ran it with that version and it was installed successfully. Here is a link with a quick tutorial on how to install multiple Xcode versions: blogs.oracle.com/mobile/entry/how_to_install_multiple_xcodes
-
shock_one over 8 yearsWorked on OS X 10.11 as well.
-
Wylliam Judd over 6 yearsI'm getting
apple-gcc42: This formula either does not compile or function as expected on macOS
when I runbrew install apple-gcc42
-
Wylliam Judd over 6 yearsUsing macOS Version 10.12.6
-
Wylliam Judd over 6 yearsI'm having a similar problem, but this solution isn't working. Any ideas? stackoverflow.com/questions/46104063/…
-
Wylliam Judd over 6 years
apple-gcc42: This formula either does not compile or function as expected on macOS
My macOS is 10.12.6 -
Wylliam Judd over 6 yearsWhen I download Xcode 4.6.3 and then run
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
and then rungem install libv8 -v '3.3.10.4'
I get:unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly!
What am I doing incorrectly?