运行“sudo gem list --local
”和“gem list --local
”会给我不同的结果。我的宝石路径设置为我的主文件夹,仅包含来自“gem list --local
”的宝石。
将宝石安装在我的计算机上的不同目录中可能不太好,所以我应该以不同的方式设置宝石路径,并且在安装时应该总是使用sudo
吗?
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是空的。
答案 0 :(得分:136)
与所有其他帖子相反,我建议在安装宝石时不要使用sudo
。
相反,我建议你安装 RVM ,开始幸福生活,携带宝石家园和不同版本的Ruby都生活在一个屋檐下。
对于没有经验的人,来自the documentation:
RVM是一个命令行工具,它允许我们轻松安装,管理和使用多个ruby环境和宝石集。
安装sudo
的宝石比gem install
更差的原因是因为它将所有用户的宝石安装为root
。如果你是唯一一个使用这台机器的人,这可能会没问题,但如果你不是,那就可能造成奇怪。
如果您决定要放弃所有宝石并重新开始,那么以非root用户身份执行此操作会更容易,更安全。
如果您决定使用RVM
,那么使用sudo
会导致各种奇怪,因为您通过RVM
安装的每个Ruby版本都有自己的GEM_HOME。
此外,如果您可以使您的开发环境尽可能接近您的生产环境,那就太好了,而且在生产环境中,您最有可能以非root用户身份安装gem。
答案 1 :(得分:112)
您还可以在本地环境中安装宝石(不含sudo
)
gem install --user-install <gemname>
我建议您不要弄乱系统级配置,即使它是单用户计算机也是如此。
您可以通过gem environment
查看gempath来查看宝石的去向。就我而言,它是“〜/ .gem / ruby / 1.8”。
如果您需要添加到路径中的本地安装的二进制文件,您可以在bashrc中添加一些内容,如:
if which ruby >/dev/null && which gem >/dev/null; then
PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi
答案 2 :(得分:32)
更好的是,将--user-install
放在〜/ .gemrc文件中,这样您就不必每次都输入
gem: --user-install
答案 3 :(得分:11)
如果你
将以下内容添加到.bash_profile
:
export GEM_HOME=/Users/‹your_user›/.gem
export PATH="$GEM_HOME/bin:$PATH"
在终端或source ~/.bash_profile
中打开一个新标签,您就可以了!
答案 4 :(得分:8)
相关(对于捆绑用户),如果您想要一个更轻松的替代RVM,将所有内容放在用户特定的知名目录中,我建议使用:
bundle install --path $HOME/.gem
如果你想将宝石安装到
的同一个地方gem install --user-install GEMNAME
将在您的homedir中安装它们.gem/ruby/RUBYVERSION
。 (请参阅有关--user-install
的此问题的其他评论。)
这将使gem list
可以看到宝石,可以通过gem uninstall
等卸载,而无需sudo
访问权限。可以通过添加
$HOME/.gem/ruby/RUBYVERSION/bin
到$PATH
。 gem
本身会在您执行gem install --user-install
时设置它时告诉您。
答案 5 :(得分:6)
count
将安装您的宝石全球,即它将可供所有用户的上下文使用。
答案 6 :(得分:2)
您可以使用以下命令将Gems安装到Rails应用程序中的特定文件夹(示例供应商/)中
bundle install --path vendor
答案 7 :(得分:1)
在Mac上安装Ruby gem是造成混乱和沮丧的常见原因。不幸的是,大多数解决方案是不完整,过时的,并且提供了不好的建议。我很高兴这里接受的答案说不要使用sudo
,这是您永远都不需要做的,尤其是如果您不了解它的作用时。当我几年前使用RVM时,我会在2020年推荐chruby
。
此处的其他一些答案提供了安装gem的替代选项,但是它们没有提及这些解决方案的局限性。所缺少的是各种选项的解释和比较,以及为什么您可能会选择其中一个选项。我试图涵盖最常见的情况 在我的definitive guide to installing Ruby gems on a Mac中。