Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 699 Vote(s) - 3.51 Average
  • 1
  • 2
  • 3
  • 4
  • 5
'sudo gem install' or 'gem install' and gem locations

#1
Running '`sudo gem list --local`' and '`gem list --local`' give me differing results. My gem path is set to my home folder and only contains the gems from '`gem list --local`'.

It's probably not good to have gems installed in different directories on my computer, so should I have the gem path set differently, and should I always use `sudo` when installing something?

my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

~/.bash_profile is empty.
Reply

#2
You can install gems in your local environment (without `sudo`) with

gem install --user-install <gemname>

I recommend that so you don't mess with your system-level configuration even if it's a single-user computer.

You can check where the gems go by looking at gempaths with `gem environment`. In my case it's "~/.gem/ruby/1.8".

If you need some binaries from local installs added to your path, you can add something to your bashrc like:

if which ruby >/dev/null && which gem >/dev/null; then
PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi

(from

[To see links please register here]

)

Reply

#3
Installing Ruby gems on a Mac is a common source of confusion and frustration. Unfortunately, most solutions are incomplete, outdated, and provide bad advice. I'm glad the accepted answer here says to NOT use `sudo`, which you should never need to do, especially if you don't understand what it does. While I used RVM years ago, I would recommend `chruby` in 2020.

Some of the other answers here provide alternative options for installing gems, but they don't mention the limitations of those solutions. What's missing is an explanation and comparison of the various options and why you might choose one over the other. I've attempted to cover most common scenarios
in my [definitive guide to installing Ruby gems on a Mac](

[To see links please register here]

).
Reply

#4
In case you

- installed ruby gems with sudo
- want to install gems without sudo
- _don't want to install rvm/rbenv_

add the following to your `.bash_profile` :

export GEM_HOME=/Users/‹your_user›/.gem
export PATH="$GEM_HOME/bin:$PATH"

Open a new tab in Terminal OR `source ~/.bash_profile` and you're good to go!
Reply

#5
Related (for bundler users), if you want a lighter alternative to RVM which will put everything in a user-specific well known directory, I recommend using:

bundle install --path $HOME/.gem

if you want to install gems to the same place that

gem install --user-install GEMNAME

will install them, `.gem/ruby/RUBYVERSION` in your homedir. (See the other comment on this question about `--user-install`.)

This will make the gems visible to `gem list`, uninstallable via `gem uninstall`, etc. without needing `sudo` access. Runnable scripts installed by gem or bundler can be put into your path by adding

$HOME/.gem/ruby/RUBYVERSION/bin

to your `$PATH`. `gem` itself tells you about this if it isn't set when you do `gem install --user-install`.
Reply

#6
Better yet, put `--user-install` in your ~/.gemrc file so you don't have to type it every time

gem: --user-install
Reply

#7
Contrary to all the other posts I suggest NOT using `sudo` when installing gems.

Instead I recommend you install **[RVM][1]** and start a happy life with portable gem homes and different version of Ruby all living under one roof.

For the uninitiated, from [the documentation][2]:

>RVM is a command line tool which allows us to easily install, manage and work with multiple ruby environments and sets of gems.

The reason why installing gems with `sudo` is worse than just `gem install` is because it installs the gems for *ALL USERS* as `root`. This might be fine if you're the only person using the machine, but if you're not it can cause weirdness.

If you decide you want to blow away all your gems and start again it's much easier, and safer, to do so as a non-root user.

If you decide you want to use `RVM` then using `sudo` will cause all kinds of weirdness because each Ruby version you install through `RVM` has its own GEM_HOME.

Also, it's nice if you can make your development environment as close to your production environment as possible, and in production you'll most likely install gems as a non-root user.


[1]:

[To see links please register here]

[2]:

[To see links please register here]

Reply

#8
sudo gem install --no-user-install <gem-name>

will install your gem **globally**, i.e. it will be available to all user's contexts.
Reply

#9
You can install gems into a specific folder (example vendor/) in your Rails app using :

bundle install --path vendor
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through