Fixing libv8 and therubyracer on Mac
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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):
For Ruby 3.0.4 in Monterey (macOS 12.3.1), this worked for me:
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.