Skip to content

Instantly share code, notes, and snippets.

@fernandoaleman
Created May 5, 2016 15:14
Show Gist options
  • Save fernandoaleman/868b64cd60ab2d51ab24e7bf384da1ca to your computer and use it in GitHub Desktop.
Save fernandoaleman/868b64cd60ab2d51ab24e7bf384da1ca to your computer and use it in GitHub Desktop.
Fixing libv8 and therubyracer on Mac
brew tap homebrew/versions
brew install v8-315
gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315
bundle install
@chrishough
Copy link

chrishough commented Jan 11, 2022

@eveevans so you could not get this to work in standard homebrew?

@eveevans
Copy link

@chrishough yes indeed, I'm using ASDF for Ruby (and Node)

@chrishough
Copy link

@eveevans from your command list I originally read that using arch linux, but I am new to asdf

@eveevans
Copy link

@chrishough you will need brew, but the thing about it, is that there are two versions of homebrew for Silicon macs, the one for ARM (by default), and the one for Intel (which needs to be run under Rosetta)

In the time I installed Ruby there were a lot of Brew package unavailable for ARM. So I used the Intel version (X86) in order to install the X86 version of ASDF, using X86 dependencies

(In my case, I was using and old Ruby that needed old dependencies)

@chrishough
Copy link

@eveevans I am having this issue on both an M1 and non-m1 machine, trying to fix the non-m1 first

@redferret
Copy link

I worked on this work around. It worked for me and I've never had any issues.
It's kinda long but a Turing instructor and I worked on this.
One of the answers in the answers also might work too

https://stackoverflow.com/questions/66128681/ruby-build-failed-macos-11-2-using-ruby-build-20210119-mac-big-sur/66251271?noredirect=1#comment124076397_66251271

@barracuda156
Copy link

Has someone been able to build libv8 on a PowerPC Mac?

@BDanyil
Copy link

BDanyil commented Feb 9, 2022

bundle config build.libv8 --with-system-v8
bundle config build.therubyracer --with-v8-dir=$(brew --prefix [email protected])
bundle

Worked on MacBook Pro 2020

@artoodeeto
Copy link

artoodeeto commented Feb 19, 2022

@BDanyil are you running macos monterey 12.2 on intel? i tried following the installing but its not working for monterey. thank you for your response

@artoodeeto
Copy link

is anyone able to run this on macos intel monterey 12.2.1? im getting an error:

Screen Shot 2022-02-19 at 1 40 42 AM

please help. thank you. I really appreciate it.

@channainfo
Copy link

Still works just fine with my env Catalina, Ruby 2.6.6, and Rails 6.0.4.2

@robbyrussell
Copy link

On my Apple M1 with MySQL 5.7 and [email protected] with Ruby 2.6.5.x

   
    bundle config build.mysql2
      --with-mysql-config=/opt/homebrew/Cellar/[email protected]/5.7.36/bin/mysql_config
      --with-ldflags=-L/opt/homebrew/opt/[email protected]/lib 
      --with-cppflags=-I/opt/homebrew/opt/[email protected]/include

   bundle install  # installed mysql2 with native gems just fine  

@escoberik
Copy link

After hours of dealing with this, I finally found a solution that worked for me. Big Sur 11.6 - Intel

env \ CXX=clang++ \ GYPFLAGS=-Dmac_deployment_target=10.9 \ gem install libv8 --version 3.16.14.19

then run bundle install

Hope this helps!

This one worked for me as well! Thank you very much

@sergey-alekseev
Copy link

bundle config build.libv8 --with-system-v8
bundle config build.therubyracer --with-v8-dir=$(brew --prefix [email protected])
bundle

worked for me, thanks

@vinay-kumar-g-c42
Copy link

bundle config build.therubyracer --with-v8-dir=$(brew --prefix [email protected])

worked for me, thanks

@jlm
Copy link

jlm commented May 3, 2022

macOS Monterey doesn't include Python 2 anymore. Python 2 is required by libv8. To install it (from https://www.alfredapp.com/help/kb/python-2-monterey/), execute the following (preferably in a new shell because it changes $PATH):

export PATH="/opt/homebrew/bin:/usr/local/bin:${PATH}"
eval "$(brew shellenv)"
brew install pyenv
pyenv install 2.7.18
ln -s "${HOME}/.pyenv/versions/2.7.18/bin/python2.7" "${HOMEBREW_PREFIX}/bin/python"

For Ruby 3.0.4 in Monterey (macOS 12.3.1), this worked for me:

brew install [email protected]
bundle config build.libv8 --with-system-v8
bundle config build.therubyracer --with-v8-dir=$(brew --prefix [email protected])
bundle install

Unfortunately, it's not so easy in Ruby. 3.1. That includes psych-4 as a "default" (hard-coded in) gem which can't be removed, and psych-4 is incompatible with libv8 (for now at least). I have not found a solution to this, aside from reverting to ruby 3.0.4.

@johnAirRobe
Copy link

For those who any of the above fixes didn't work I installed Python 3.9.1 set it to the global python version (setting it to local version didn't work), and ran bundle again and it installed mini_racer correctly.

What tipped me off was the following message in the console output after it failed:

Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  from distutils.spawn import find_executable
Please use python3.9 or python3.8 or python3.7 or python3.6 or python3.5 or python2.7.
Node.js configure: Found Python 3.10.2...

Here are the commands I ran:

pyenv install 3.9.1
pyenv global 3.9.1
bundle

@gamesover
Copy link

if someone is using mini_racer 0.3.0 or below, please upgrade to gem 'mini_racer', '0.6.2' and comment out libv8

trust me, it will save you hours of dev config time

@srfinkel
Copy link

Much thanks @gamesover This was the perfect fix for Monterey 12.4 on a M1.

if someone is using mini_racer 0.3.0 or below, please upgrade to gem 'mini_racer', '0.6.2' and comment out libv8

trust me, it will save you hours of dev config time

@mrcsporto
Copy link

Still not working on [email protected] the only way out is reverting to ruby 3.0.4

@AteqEjaz
Copy link

AteqEjaz commented Oct 6, 2022

Comment out Following 2 Gems from Gemfile

1: g em 'libv8'
2: gem 'therubyracer'

Add following Gem

gem 'mini_racer'

bundle install

Should work as suggested by @srfinkel

@vinit-mudgundi
Copy link

Still not working on [email protected], any solutions??

@jotolo
Copy link

jotolo commented Jan 29, 2023

Not working on [email protected] yet

@curve-jyothish
Copy link

bundle config build.therubyracer --with-v8-dir=$(brew --prefix [email protected])

Thanks. Worked for me too!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment