robodisco
robodisco

Reputation: 4290

Ruby Gems returns "command not found"

Ubuntu 9.10

Just installed newgem

gem install newgem

and when i try

newgem new_project

I get

adam@adam-ubuntu:~$ newgem newproject
newgem: command not found

Ive checked my path via echo $PATH

adam@adam-ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/adam/.gem

and my gem enviroment

adam@adam-ubuntu:~$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.6
  - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /home/adam/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

Im not hot with paths etc but all the gem directories listed above are on the path so how come it cant find the command?

Upvotes: 24

Views: 57582

Answers (5)

Shrm
Shrm

Reputation: 453

I had the same issue when I installed that via Conda on a server. In this case, you cannot find it in the mentioned paths, it should be within the ".conda" folder in the home user folder. for example:

/home/YOURUSER/.conda/envs/YOURENVIRONMENT/bin

in this case, replace this path (after the replacement action of capital letters with your real folder names):

export PATH=$PATH:/home/YOURUSER/.conda/envs/YOURENVIRONMENT/bin

and accordingly, you can put it in ".bashrc" file to be executed automatically after any session initiation (add that line at the end of the bashrc file for example). You can find this file in the home directory of your user.

Upvotes: 0

Seishin
Seishin

Reputation: 389

it happened to macOS Ventura 13.6.1,

and it works, when i add

export PATH="/usr/local/lib/ruby/gems/3.3.0/bin:$PATH"

in .zshrc file

  • 3.3.0 is your gem version

Upvotes: 0

Niels Bom
Niels Bom

Reputation: 9417

(Just stealing @John Franklin's comment)

$ gem environment

Will tell you the EXECUTABLE DIRECTORY. Then put whatever that value is in your PATH like so (in your .bashrc or other shell config file).

export PATH="$PATH:/path/to/bin"

Reload your shell and you should then be able to use the installed gem.

Upvotes: 16

vish
vish

Reputation: 2436

If you use RVM (most do), then it will take care of this for you. In fact putting it in your path directly may conflict. You have to set a ruby to use though. Run one of these on the command line.

rvm use 1.9.3

or

rvm use --default 1.9.3

Upvotes: 3

rubiii
rubiii

Reputation: 6983

Your $PATH variable needs to include the exact path to your Ruby's bin directory. Adding a directory to the PATH does not include it's subfolders. Try adding the bin directory via:

export PATH=$PATH:/home/adam/.gem/ruby/1.8/bin

or if you installed the gem using sudo:

export PATH=$PATH:/usr/lib/ruby/gems/1.8/bin

You might want to add this to your .bashrc file, so that you don't have to set this manually every time your open up a new bash.

Upvotes: 36

Related Questions