运行“sudo gem list --local
”和“gem list --local
”给予了不同的结果。我的gem路径设置为我的主文件夹,只包含“gem list --local
”中的gem。
将gem安装在计算机上的不同目录中可能不太好,所以我是否应该设置不同的gem路径,并且在安装时是否应该始终使用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为空。
8条答案
按热度按时间bjp0bcyl1#
您可以使用以下命令在本地环境(没有
sudo
)中安装gem我建议这样做,这样即使是单用户计算机也不会弄乱系统级配置。
你可以用
gem environment
来查看宝石的路径,在我的例子中是“~/.gem/ruby/1.8”。如果您需要将本地安装的一些二进制文件添加到您的路径中,您可以在bashrc中添加一些内容,例如:
(from http://guides.rubygems.org/faqs/#user-install)
ui7jx7zq2#
与所有其他帖子相反,我建议在安装gems时不要使用
sudo
。相反,我建议您安装**RVM**,并开始与便携式宝石家园和不同版本的Ruby所有生活在一个屋檐下的幸福生活。
对于新手,从the documentation:
RVM是一个命令行工具,它允许我们轻松地安装、管理和使用多个ruby环境和gem集。
使用
sudo
安装gem比只使用gem install
安装gem更糟糕的原因是,它会将 * 所有用户 * 的gem安装为root
。如果您是唯一使用机器的人,这可能没问题,但如果您不是,这可能会导致奇怪。如果你决定要吹走你所有的宝石,并重新开始它更容易,更安全,这样做作为一个非根用户。
如果您决定使用
RVM
,那么使用sudo
将导致各种各样的问题,因为通过RVM
安装的每个Ruby版本都有自己的GEM_HOME。此外,如果您可以使开发环境尽可能接近生产环境,并且在生产环境中您很可能以非root用户身份安装gem,那就太好了。
fhity93d3#
更好的办法是,将
--user-install
放在~/.gemrc文件中,这样就不必每次都输入它fcy6dtqo4#
以防你
将以下内容添加到您的
.bash_profile
:在Terminal OR
source ~/.bash_profile
中打开一个新选项卡,您就可以开始了!ej83mcc05#
将全局安装您的gem,即它将可用于所有用户的上下文。
7dl7o3gd6#
相关(对于bundler用户),如果你想要一个更轻便的RVM替代方案,它将把所有东西放在一个用户特定的众所周知的目录中,我推荐使用:
如果你想安装gem到同一个地方
我将安装它们,
.gem/ruby/RUBYVERSION
在你的主目录中。(参见关于--user-install
的其他评论。)这将使gem对
gem list
可见,可通过gem uninstall
卸载,等等,而无需sudo
访问。通过gem或bundler安装的可运行脚本可以通过添加以下命令放在路径中$PATH
。如果在执行gem install --user-install
时没有设置,gem
本身会告诉您这一点。0qx6xfy67#
您可以使用以下命令将gem安装到Rails应用中的特定文件夹(例如vendor/):
flvtvl508#
在Mac上安装Ruby gems是一个常见的困惑和挫折。不幸的是,大多数解决方案都是不完整的,过时的,提供了糟糕的建议。我很高兴这里的答案是不要使用
sudo
,你永远不需要这样做,特别是如果你不知道它是做什么的。虽然我几年前使用RVM,我会推荐在2020年使用chruby
。这里的其他一些答案提供了安装gem的替代方案,但是他们没有提到这些解决方案的局限性。缺少的是对各种选项的解释和比较,以及为什么您可能会选择一个而不是另一个。我已经尝试在我的definitive guide to installing Ruby gems on a Mac中涵盖了最常见的场景。