如何在Mac OS X上无需使用sudo安装gems

22 浏览
0 Comments

如何在Mac OS X上无需使用sudo安装gems

我已经阅读了很多帖子,但到目前为止都没有解决问题的方法。在OSX(El Capitan Beta)上,我如何为自己的用户安装一个gem?帖子建议使用-user-install参数,但我根本无法调用gem命令,因为它会抛出权限错误。\n我按照\"在OSX 10.10 Yosemite上以用户身份安装gem\"的步骤进行,但仍然无法调用gem命令。\n我安装了Homebrew,按照上述指南安装了rbenv,使用rbenv安装了一个Ruby版本,并检查它是否正确加载,但是指南中的最后一步是调用gem install,而我仍然无法执行这个命令。\n在安装了rbenv后调用gem命令会出现以下错误:\n

/Users/Me/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/stub_specification.rb:71:in `initialize': 
Permission denied @ rb_sysopen - /Users/Ne/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/speci

\nrbenv环境变量:\n

RBENV_VERSION=2.1.5
RBENV_ROOT=/Users/Me/.rbenv
RBENV_HOOK_PATH=:/Users/Me/.rbenv/rbenv.d:
  /usr/local/etc/rbenv.d:
  /etc/rbenv.d:
  /usr/lib/rbenv/hooks
PATH=/Users/Me/.rbenv/versions/2.1.5/bin:
  /usr/local/Cellar/rbenv/0.4.0/libexec:
  /Users/Me/.rbenv/plugins/rbenv-env/bin:
  /Users/Me/.rbenv/shims:
  /usr/local/heroku/bin:
  /usr/local/sbin:
  /usr/local/bin:
  /usr/local/share/npm/bin:
  /Applications/Atom.app/Contents/Resources/app/apm/bin:
  /Users/Me/.bin:
  /Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin:
  /usr/local/bin:/usr/bin:
  /bin:
  /usr/sbin:/sbin:
  /opt/X11/bin:
  /usr/local/MacGPG2/bin
RBENV_DIR=/Users/Me/.rbenv/plugins

\n\"brew and gem both throws \'Permission denied\' error whenever I run it\"看起来相关,但除了使用其他方法之外,没有解决方案,我可能不得不尝试其他方法。

0
0 Comments

一、问题的出现原因:

在Mac OS X上安装gems时需要使用sudo命令,这是因为默认情况下,Mac OS X会将gems安装到系统级别的目录中,而这需要管理员权限。然而,使用sudo命令来安装gems可能会导致一些问题,比如权限问题,以及可能会影响到其他项目的gems。

二、解决方法:

为了避免使用sudo命令安装gems,可以使用bundler工具来管理gems,并进行本地安装。

具体的解决方法如下:

1. 确保已经安装了bundler,如果没有安装,可以通过以下命令安装:

gem install bundler

2. 在项目根目录下创建一个Gemfile文件,该文件用于指定项目所需的gems和版本。可以使用以下命令创建Gemfile:

bundle init

3. 打开Gemfile文件,将所需的gems和版本添加到文件中。例如:

gem 'rails', '6.0.3'

4. 运行以下命令来安装gems到本地:

bundle install --path vendor/bundle

5. 这将在项目根目录下创建一个vendor/bundle文件夹,并将gems安装到该文件夹中。

6. 在项目的.gitignore文件中添加以下内容,以忽略vendor/bundle文件夹:

vendor/bundle/

通过以上步骤,就可以在Mac OS X上无需使用sudo命令来安装gems了。通过使用bundler进行本地安装,可以确保gems只会影响到当前项目,并且不会影响到其他项目的gems。

0
0 Comments

在Mac OS X上安装gems时出现权限问题的原因是需要使用sudo命令。为了解决这个问题,可以尝试以下方法:

1. 使用Homebrew进行安装:Homebrew是在OSX上广受开发者欢迎的选择,不需要使用sudo命令。可以执行brew install ruby命令进行安装。

2. 使用沙箱环境:可以尝试使用RVM和rbenv等沙箱环境,也可以避免使用sudo命令进行gems安装。

如果以上方法仍然无法解决权限问题,可以尝试以下步骤:

1. 检查是否已经安装了Homebrew、RVM或rbenv等工具。

2. 确保在终端中使用正确的命令进行安装。

3. 检查系统中是否有其他程序或进程正在使用gems,可能会导致权限错误。

通过以上方法,应该能够解决在Mac OS X上安装gems时出现的权限问题。

0
0 Comments

问题的原因是没有正确初始化rbenv,导致shims无法使用。解决方法是按照文档的步骤进行设置,确保执行了以下操作:

1. 将~/.rbenv/bin添加到$PATH中,以便使用rbenv命令行工具。

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

2. 将rbenv init添加到shell中,以启用shims和自动补全。

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

3. 重新启动shell,使路径更改生效。

$ type rbenv

#=> "rbenv is a function"

如果仍然遇到问题,可以尝试删除.rbenv目录并重新安装ruby来解决。

在这个的问题中,有一个类似的问题,并提到了删除.rbenv目录并重新安装ruby的解决方法。此外,还强调了在$PATH中同时包含.rbenv/shims和.rbenv/bin的重要性。

此外,还提到了在安装rbenv时遵循官方文档的指示,并根据特定环境的需要进行设置。不要盲目地将shims添加到$PATH中,因为可能会错过rbenv init所做的其他操作。

以上是解决在Mac OS X上无法使用gem命令而需要sudo的问题的方法。

0