Reputation: 2344
I'm getting this error when I try to run any brew command.
Holger-Sindbaeks-MacBook-Air:~ holgersindbaek$ brew help
-bash: /usr/local/bin/brew: /usr/bin/ruby: bad interpreter: No such file or directory
I have absolutely no idea on how to fix this and been searching for a long time without answer.
Upvotes: 36
Views: 45698
Reputation: 34175
I got bad interpreter: No such file or directory
error when used xcpretty
and xcpretty-travis-formatter
on upgraded MacOS.
To solve it
gem install xcpretty
gem install xcpretty-travis-formatter
That is why I can recommend you to reinstall failed component gem install <name>
#For example error looks like
/usr/local/bin/xcpretty-travis-formatter: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
#use
gem install xcpretty-travis-formatter
Upvotes: 0
Reputation: 800
You need to change the path for Ruby.Framework
I solved it with commands as mentioned.
brew install cocoapods --build-from-source
brew link --overwrite cocoapods
If you have a lower version below Xcode 11
, you have to remove it before you use the above commands.
Reference: Ruby Framework issue
Upvotes: 6
Reputation: 2630
I solved it with commands as mentioned.
1.) Uninstall your GEM.
gem unistall GEM
2.) Then Install your GEM.
sudo gem install GEM -n /usr/local/bin
Upvotes: 0
Reputation: 663
In my case seems like fastlane
installed incorrectly with brew install fastlane
system didn't write correct path to fastlane. I fixed it with alias fastlane=~/.fastlane/bin/fastlane
Upvotes: 0
Reputation: 49
After upgrading to macOS High Sierra, get it fixed with following commands:
sudo gem install cocoapods
Upvotes: 0
Reputation: 119
I got the same issue when updated to MacOSX High Sierra & using Xcode 9 with that. High Sierra update ruby gem to version 2.3 but xcpreety command of Xcode 9 still using Ruby 2.0 which is unable to find now & gives bad interpreter. Just go to Terminal & run
sudo gem install xcpretty
Restart Xcode & do fresh clean build it works for me. Hope it helps!!!
Upvotes: 0
Reputation: 997
At the risk of oversimplifying things, try running
gem install bundler
I was transitioning my Ruby environment from RBENV to RVM and it worked for me.
Upvotes: 9
Reputation: 35131
I got this error (much the same):
/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory /usr/local/bin/brew: line 26: /usr/local/Library/brew.rb: Undefined error: 0
and fixed by the solution below:
Open brew.rb
:
$ sudo vim /usr/local/Library/brew.rb
Change the first line's 1.8
to Current
:
Before:
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0
After:
#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
Then brew
works for me. Hope it helps if any other one got this issue. :)
If you get the error
Homebrew requires Leopard or higher. For Tiger support, see: https://github.com/mistydemeo/tigerbrew
change the MACOS check from <10.5
to <10
.
Tip by @TimCastelijns:
10.5 doesn't work because in comparison, it's higher than 10.10 (.1 vs .5). I added a check (
and MACOS_VERSION != 10.10
) instead of lowering from 10.5 to 10.
Upvotes: 65
Reputation: 6082
None of the above worked for me, so I kept browsing and found this answer, https://stackoverflow.com/a/24225960/1359088 which did fix brew for me. He says in step 1 to install XCode 6 command line tools, but doesn't say how; use this command:
xcode-select --install
Upvotes: 0
Reputation: 4118
What you are getting means that Homebrew has not been able to locate the Ruby interpretter at the specified location.
Install Apple Developer Kit (comes with Xcode) which should be available to you as an optional install (or you can simply download it from Apple). This will install the Ruby interpreter for you.
In case you already have Xcode installed, this means that one of these things is happening:
To identify if this is the first case, you can run ruby
and see if you get any response.
If you don't, your installation is broken and you need to reinstall it. If you do, you then run which ruby
. This should give you the absolute path to your Ruby executable. If this is anything other than /usr/bin/ruby
then homebrew (and a bunch of other programs) will not be able to find it.
In case you have not ever tampered with your Ruby installation, you can check to see if /usr/bin/ruby
already exists or not: cat /usr/bin/ruby
. If you get No such file or directory
, then you can easily create a symbolic link to your Ruby installation. Assuming the output of which ruby
to by /usr/local/bin/ruby
, you create the symbolic link this way: sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
and all should be well.
If there is a file at that location, you can run file /usr/bin/ruby
to see if it's a real file, a symbolic link, or a corrupted file. If it is a symbolic link, your installation should be working, and since it's not, it probably is either a corrupted symlink or it's a bogus file.
You can remedy that by first deleting it (sudo rm /usr/bin/ruby
) and then creating a new symlink to the correct location (sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
).
If non of the above works, you should consult the homebrew team after a clean install of Xcode and removing any traces of a Ruby installation on your system.
EDIT
Alternatively, as pointed out by the other answers, the issue might be because of a bad ruby version in your Homebrew settings.
A quick fix might be updating your Homebrew:
cd /usr/local
git pull -q origin refs/heads/master:refs/remotes/origin/master
If this does not help, you might want to get your hands dirty and manually fix the problem by:
brew.rb
from /user/local/Library/brew.rb
/1.8/
to /Current/
in the first line, which will cause the hashbang to point to the current Ruby version as the executorIf this does not help, either, you can also modify the MACOS
check and change it from 10.5 to 10 to avoid the infamous "Homebrew requires Leopard or higher" error.
DISCLAIMER
A bunch of thanks to other contributors in the answers below and their commenters. I am not committing plagiarism, simply aggregating the answers into one integrated article to help others.
Upvotes: 47
Reputation: 7975
This happened because I needed to update brew - in the updated version it already uses Current ruby
cd /usr/local
git pull -q origin refs/heads/master:refs/remotes/origin/master
This solved the problem
Upvotes: 7