ruby: invalid option -: (-h will show valid options) (RuntimeError)

kinopyo avatar

This is a funny one.

In How to fix Ruby 2.7 warning: Using the last argument as keyword parameters is deprecated, I shared how to suppress the new warnings for Ruby 2.7, and one of the methods is to set export RUBYOPT='-W:no-deprecated' in your zsh/bash profile.

Turns out, that RUBYOPT='-W:no-deprecated' is only available for Ruby 2.7, so if you're also running rubies that are < 2.7 with rbenv or rvm, you will run into this error.

$ cd older-ruby-projects
$ cat .ruby-version
$ ruby -v
Traceback (most recent call last):
ruby: invalid option -:  (-h will show valid options) (RuntimeError)

The solution is, as you might have guessed, simply removing the export RUBYOPT=... setting from the zshrc. ๐Ÿคจ And if you're still bothered by Ruby 2.7 last argument warnings, probably commiting the Warning[:deprecated] = false to your codebase is also a valid option for now.

This wasn't an easy Google search for me, sharing it in case you've also bumped into it.