'sudo gem install'或'gem install'和宝石位置
运行'sudo gem list --local
'和'gem list --local
'给了我不同的结果。我的宝石路径设置为我的主文件夹,并且只包含'gem list --local
'中的宝石。'sudo gem install'或'gem install'和宝石位置
在我的电脑上安装不同的目录可能不太好,所以我应该设置不同的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为空。
与所有其他帖子相反,我建议在安装宝石时不要使用sudo
。
相反,我建议您安装RVM,并开始了幸福的生活便携式宝石家园和不同版本的Ruby一个屋檐下的所有活。
对于外行来说,从the documentation:
RVM是一个命令行工具,它可以让我们轻松地安装,管理和使用多个Ruby环境和套宝石的工作。
之所以与sudo
安装宝石不仅仅是gem install
更糟糕的是,因为它安装的宝石所有用户为root
。如果你是唯一使用机器的人,这可能没什么问题,但如果你不是这样,可能会造成怪异。
如果您决定要吹走所有宝石并重新开始,那么以非root用户的身份更容易,更安全。
如果决定要使用RVM
然后使用sudo
会引起各种古怪的,因为你通过RVM
安装Ruby的每一个版本都有自己GEM_HOME。
此外,如果您可以使开发环境尽可能接近您的生产环境,并且在生产环境中,您很可能将gem作为非root用户安装。
您还可以
gem install --user-install <gemname>
安装在您的本地环境的宝石(不sudo
)我建议让你不惹即使它是一个单用户计算机系统级的配置。
你可以用gem environment
查看gempaths来查看宝石的位置。在我的情况下,它是“〜/ .gem/ruby/1.8”。
如果您需要添加到您的路径本地安装一些二进制文件,你可以添加一些你的.bashrc这样的:
if which ruby >/dev/null && which gem >/dev/null; then
PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi
+1,而不是上面的“另一个配置工具”解决方案,RBENV/RVM。 – jjpe 2014-11-11 14:23:15
我正在创建一个gem,根据手册我必须执行'rake install'并修复sudo isse,我不得不手动修补'/Library/Ruby/Gems/2.0.0/gems/bundler-1.7.3/lib/bundler/gem_helper.rb'在那里添加'--user-install'。无法找到更好的解决方案,因为看起来像'rake install'不接受其他参数。 – Nakilon 2015-03-09 01:48:14
我对第一个命令感到非常激动。我一直在试图安装宝石,一直有问题,因为我没有sudo权限。该命令工作! – 2015-12-15 16:16:52
您可以安装宝石到特定文件夹(例如,在你的Rails应用程序供应商/)使用:
bundle install --path vendor
这个。现在,唯一需要sudo才能安装软件的程序是您的软件包管理器。 – tjbp 2016-07-22 09:49:36
sudo gem install --no-user-install <gem-name>
将全球安装您的宝石,即它将适用于所有用户的情况。
它也可以覆盖供应商安装的gem,该操作系统可能期望将其设置为特定版本。这可能会破坏依赖它的代码。 – 2015-11-06 16:19:54
相关(对于捆绑用户),如果你想RVM打火机替代它会把一切都在用户特定的众所周知的目录,我建议使用:
bundle install --path $HOME/.gem
,如果你想安装宝石
gem install --user-install GEMNAME
将在您的homedir中安装它们,.gem/ruby/RUBYVERSION
。 (见这个问题有关--user-install
其它评论。)
这将使宝石通过gem uninstall
等可见gem list
,卸载的,而无需sudo
访问。由宝石或捆绑安装Runnable的脚本可以通过添加
$HOME/.gem/ruby/RUBYVERSION/bin
您$PATH
被放入你的路径。 gem
本身告诉你,如果它没有设置,当你做。
更重要的是,把--user-install
你的〜/ .gemrc文件,这样你就不必每次都
gem: --user-install
如果你
- 安装红宝石宝石使用sudo 键入它
- 想要安装宝石没有sudo
- 不想安装rvm/rbenv
以下内容添加到您的.bash_profile
:
export GEM_HOME=/Users/‹your_user›/.gem
export PATH="$GEM_HOME/bin:$PATH"
公开赛在终端或source ~/.bash_profile
一个新的标签,你是好去!
对于不使用Ruby,Rails,Rake以及其他任何Ruby Devs使用/想要使用此解决方案的人来说,要比使用rvm容易得多。我真的不在乎有不同的ruby版本,我只是想运行一些shell程序作为宝石分发。谢谢! – 2016-12-14 14:46:13
我认为对于那些必须使用需要root权限的gem的人来说,这是一个有效的问题。 – Kelly 2011-08-17 14:37:27
相关:http://stackoverflow.com/questions/21141584/rails-is-not-using-my-global-ruby-version。我使用rbenv来管理Ruby版本,并遇到了一个问题,因为我使用'sudo gem install rails'而不是'gem install rails'。 – Dennis 2014-01-15 17:04:49
“我认为对于那些必须使用需要root权限的gem的人来说,这是一个有效的问题。”我认为任何需要root权限的gem,无论是安装还是运行,都是非常可疑的。宝石应该能够在沙箱中运行并且以用户的权限运行。 – 2014-07-31 18:47:35