ChatGPT解决这个技术问题 Extra ChatGPT

如果由于权限错误而失败,如何安装 gem 或更新 RubyGems

我正在尝试使用 gem install mygem 安装 gem 或使用 gem update --system 更新 RubyGems,但失败并出现以下错误:

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

有谁知道如何解决这个问题?

这是我的解决方案:stackoverflow.com/questions/34071868/…
sudo chown -R $USER /Library/Ruby/Gems/
我使用的是 zsh shell,这是 ~/.zshrc 中的路径问题。我在文件末尾使用了这一行,它对我有用:export PATH="$HOME/.rbenv/shims:$PATH"

M
Michael

尝试添加 --user-install 而不是使用 sudo

gem install mygem --user-install

我不知道为什么之前没有发布您的答案。 --user-install 选项显然有 been around for a while. 我只是希望你早点写这个。 =)
这需要到顶部!使用 sudo 或 su 安装是一个坏主意,因为您在模块上强制执行权限系统,并且可能全局安装的包可能会与其他安装的包或其他项目的依赖项发生冲突。使用 rbenv 需要您安装另一个软件并增加了一层复杂性。
这有效,但警告:“警告:您的 PATH 中没有 /Users/<用户名>/.gem/ruby/2.0.0/bin,gem 可执行文件将无法运行。”以下链接提供了有关如何更新路径的有用说明(无需使用 vi)hathaway.cc/post/69201163472/…
这是简单而合乎逻辑的。如果您的 bashrc 中没有,请添加 ruby 路径if which ruby >/dev/null && which gem >/dev/null; then PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" fi <br>来源:guides.rubygems.org/faqs/#user-install
这会与 Apple 的(安装了 ruby 的)系统搞砸吗?
t
the Tin Man

您没有对 /Library/Ruby/Gems/1.8 目录的写入权限。

就是这个意思,你没有权限在那里写。

那是Apple安装的Ruby版本,供他们自己使用。如果您知道自己在做什么,可以对其进行细微的修改,因为您不确定权限问题,但我想说继续沿着这条轨道前进并不是一个好主意。

相反,我强烈建议您考虑使用 rbenvRVM 来管理一个单独的 Ruby,安装到您主目录的沙箱中,您可以修改/折叠/主轴/更改,而不必担心搞砸系统红宝石。

在这两者之间,我使用 rbenv,尽管我过去经常使用 RVM。 rbenv 采用更“不干涉”的方法来管理您的 Ruby 安装。 RVM 有很多功能并且非常强大,但是因此更具侵入性。无论哪种情况,在开始安装您选择的任何一种之前,请阅读它们的安装文档几次。


不过,您不需要使用单独的 Ruby 库。正如迈克尔上面建议的那样,只需将“sudo”放在您的前面。
更改 Apple 安装 Ruby 的所有权并不是一个好主意,因为系统会安装/升级,磁盘工具可以自动恢复/修复目录的所有权和权限。这将使用户感到沮丧,并可能使期望拥有这些目录的写入权限/所有权的操作系统和代码感到沮丧。 Apple 安装使用其 Ruby 的应用程序,并可能预期某个版本或行为,因此这些应用程序可能会中断。当使用 RVM 或 rbenv 更容易、更安全并且不用担心时,为什么还要费心呢。
对于像我这样实际上并没有进行任何 ruby 开发并且不想花半个小时来弄清楚所有这些水晶东西是什么的人来说。 brew install ruby 将以一种不会破坏苹果安装的干净方式解决您的依赖问题。如果您在初始安装时已经sudo更新了并且担心您所做的事情,您应该可以通过以下方式撤消它:cd /System/Library/Frameworks/Ruby.framework/Versions;sudo rm Current; sudo ln -s 1.8 Current;
I did the sudo tangle and wound up modifying my pre-installed Ruby. I did your steps to try to fix the problem, but now when I do irb or ruby -v, I get command not found. What's going on and is there a fix”,这只是增加了人们不应该使用 sudochown 的重要性。叹....
已解决:在执行 brew install ruby 后,在 El Captain 上只需关闭终端并重新打开它。
C
CupawnTae

你真的应该使用 Ruby 版本管理器。

在执行 gem update 命令时,正确使用一个可以防止并解决您的权限问题。

我推荐 rbenv。

但是,即使您使用 Ruby 版本管理器,您仍然可能会收到相同的错误消息。

如果您这样做,并且您使用的是 rbenv,只需验证 ~/.rbenv/shims 目录是否位于系统 Ruby 的路径之前。

$ echo $PATH 将向您显示加载路径的顺序。

如果您发现您的 shims 目录位于系统 Ruby bin 目录之后,则编辑您的 ~/.bashrc 文件并将其作为您的最后一个导出 PATH 命令:export PATH=$HOME/.rbenv/shims:$PATH

$ ruby -v 显示您正在使用的 Ruby 版本

这说明我目前使用的是系统版的Ruby(一般都不好)

$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

$ rbenv global 1.9.3-p448 将我切换到更新的预安装版本(请参阅下面的参考资料)。

这表明我使用的是较新版本的 Ruby(这可能不会导致 Gem::FilePermissionError)

$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]

您通常不需要在 gem 命令前加上 sudo。如果您觉得有必要这样做,则可能是配置错误。

有关 rbenv 的详细信息,请参阅以下内容:

https://github.com/sstephenson/rbenv

http://robots.thoughtbot.com/post/47273164981/using-rbenv-to-manage-rubies-and-gems


如果您使用 rbenv,则不必自己弄乱通行证,如果您遵循 Homebrew installation instructions,您所要做的就是将 eval "$(rbenv init -)" 添加到您的 shell 配置中,并且 rbenv 应该采取照顾为您设置 PATH
谢谢。我忘记了“rbenv global”,所以我仍在使用系统 ruby,并且 gem install 失败了。
t
the Tin Man

你为什么不这样做:

sudo gem update --system

以 root 身份安装 gems 不是一个好主意。 stackoverflow.com/questions/2119064/…
brew upgrade Error: Permission denied... 有问题。这解决了它。谢谢!
永远不要使用 SUDO,如果你必须这样做,那么你在设置中做错了。请使用 rbenv 或 rvm。
为什么每个人对权限问题的回答总是在命令前抛出 sudo?这个最佳实践如何?
hyh:qzc.xcodeproj ylgwhyh$ gem install cocoapods ERROR: While execution gem ... (Gem::FilePermissionError) 您没有 /Library/Ruby/Gems/2.0.0 目录的写入权限。
M
Michael

这将以干净的方式解决 MacOS Mojave 和 Catalina 上的问题:

brew install ruby

然后将 GEM_HOME 设置为您的用户目录。在终端上:

Bash: echo '# 将 Ruby Gems 安装到 ~/gems' >> ~/.bashrc echo 'export GEM_HOME=$HOME/gems' >> ~/.bashrc echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.bashrc 源码 ~/.bashrc

或者如果在 Zsh 上: echo '# Install Ruby Gems to ~/gems' >> ~/.zshrc echo 'export GEM_HOME=$HOME/gems' >> ~/.zshrc echo 'export PATH=$HOME/gems/bin: $PATH' >> ~/.zshrc 源码 ~/.zshrc


在我运行 xcode-select --install 之前,这对我不起作用。这是编译扩展所必需的。
我运行了这个,我希望能够重置这些所做的更改,你知道如何恢复它吗? @Fmessina
这应该可以:编辑您的 ~/.bashrc~/.zshrc 文件,删除添加的 3 行,然后再次运行 source ~/.bashrc 命令
请注意,执行此操作后,您应该按照许多安装指南的指示使用“gem install ...”而不是“sudo gem install ...”
H
Hendrik

对我来说,问题是由于使用 rbenv 而忘记在全局范围内设置正确的版本。

所以我不得不用 rbenv global xxx 设置它

在我的情况下,我安装了 2.0.0-p247,所以我必须发出命令:

rbenv global 2.0.0-p247
rbenv rehash

然后一切正常。


对于那些已经在使用 rbenv 并在将 OSX 升级到较新版本后安装 gems 时开始收到权限错误的人:您应该首先设置 rbenv 版本 rbenv global 2.1.1,然后按照 rbenv rehash。现在重新运行您的 gem install 命令。
^This + 重启终端。
未来的探索者:rbenv rehash 已被弃用 github.com/rbenv/rbenv-gem-rehash
完美地为我工作!这是我错过的rbenv rehash
值得注意的是,如果没有设置全局 ruby,则缺少权限的是系统 ruby,而 rbenv 将一直使用系统 ruby。这将通过 rbenv versions 进行验证。
M
Michael

你需要更正你的路径。

要确定此修复程序是否有效,请运行以下命令:

which gem

这应该输出一个您无权访问的目录:

/usr/bin/gem

要解决此问题,请执行以下步骤:

确定您需要复制到配置文件的路径:rbenv init - 输出的第一行是您需要复制到配置文件的行:export PATH="/Users/justin/.rbenv/shims:${PATH} " #需要复制的路径 source "/usr/local/Cellar/rbenv/0.4.0/libexec/../completions/rbenv.zsh" rbenv rehash 2>/dev/null rbenv() { typeset command command= "$1" if [ "$#" -gt 0 ];然后在 rehash|shell 中转换 fi case "$command") eval `rbenv "sh-$command" "$@"`;; *) 命令 rbenv "$command" "$@";; esac } 将路径复制到您的配置文件并保存。重新加载您的个人资料(我的来源 ~/.zshenv)。运行 rbenv rehash。

现在,当您运行 which gem 时,您应该获得一个您有权访问的本地路径:

/Users/justin/.rbenv/shims/gem

这就是我遇到的问题。您应该能够在 ~/.bash_profile 中包含 eval "$(rbenv init -)" 以进行所有必要的更改。
最佳答案。我的配置文件名为 .bash_profile,您可以像这样打开文件: touch ~/.bash_profile;打开 ~/.bash_profile 并添加您在第 1 点提到的行。
t
thebiggestlebowski

这对我有用。另外,如果您之前以 root 身份安装了 gems,它会通过将所有权更改回您来解决该问题(更好的安全性)。

sudo chown -R `whoami` /Library/Ruby/Gems

大不!永远不要更改对 /Library 文件夹的权限,系统可能会在以后的更新中中断。 (抱歉回复晚了)
@Raptor我正在修改子文件夹的权限,而不是“/ Library”。就我而言,我错误地将 gem 安装为 root,所以我想撤消它。理论上没有我能想到的负面后果,也没有我观察到的任何负面后果。我很好奇 - 为什么你认为这是一个坏主意?
路径是系统的。 macOS 的进一步更新可能会中断。
gem 默认安装到这个位置。它无法使用,因为它被错误地安装为 root (sudo) 而不是我的普通用户。我所做的结果与我最初安装为 $USER 的结果相同。我看不出有什么害处。这里的大多数其他答案都提出了相同的结果/解决方案,但实现它的方法不同。我仍然没有看到问题。你是说 gems 不应该安装在 /Library 下吗?
t
the Tin Man
sudo gem update --system
sudo gem install (gemfile)

在 macOS Mojave 中,sudo 没有权限。哈哈
t
the Tin Man

有两种途径:使用 rbenv 或 RVM。下面有两种食谱。在此之前,您可能希望关闭 gems 的本地文档安装。

echo "gem: --no-ri --no-rdoc" >> ~/.gemrc

然后:

install rbenv

install ruby-build

跑:

rbenv install 2.1.2 (or whatever version you prefer)
rbenv global 2.1.2
gem update --system

这会在您的本地目录中安装最新版本的 gem 系统。这意味着您不会干扰系统配置。如果你问这个问题,你不应该搞乱系统安全,你会花更长的时间来了解你可能会遇到什么问题,而不仅仅是有一个简单的方法来避免你开始遇到的问题。当您对操作系统和编程有了更多了解后,再学习 InfoSec。

作为替代使用 'RVM' 代替:要 install rvm 运行:

rvm install 2.1.2
rvm use 2.1.2
gem update --system

这具有相同的结果,您最终会得到一个不会干扰系统版本的本地 Ruby 和 Gem 系统。不需要 Homebrew,也不需要覆盖系统库等。


M
Michael

在使用下面我的原始答案之前尝试 nathanwhy's answer。他对 --user-install 的建议应该可以达到同样的目的,而不必弄乱您的 .bash_profile 或确定您的 ruby 版本。

如果您不关心特定的 ruby 版本,可以跳过 heavy-lift ruby environment manager options,只需将这些行添加到 ~/.bash_profile

export GEM_HOME="$HOME/.gem/ruby/2.0.0"
export GEM_PATH="$HOME/.gem/ruby/2.0.0"

该路径是从 gem env 的原始输出中窃取的:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.14
  - RUBY VERSION: 2.0.0
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
  - RUBY EXECUTABLE: /System/Library/.../2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-14
  - GEM PATHS:
     - /Library/Ruby/Gems/2.0.0
     - /Users/mylogin/.gem/ruby/2.0.0 # <-- This guy, right here.
     - /System/Library/.../usr/lib/ruby/gems/2.0.0
  ...

无需sudo,您可以使用 Apple 提供的已安装的 ruby。


+1:这对我很有用。不是每个人都是他们正在使用的机器的系统管理员,因此不是每个人都可以访问“sudo”、“chown”或类似工具。类似地,人们应该注意“gem install --user-install”,它将 gem 安装到用户主目录中的目录,而不是所有用户共享的目录。
M
Michael

我找到了 this how-to for sudoless gem

brew install rbenv ruby-build sudo gem update --system 添加导出到 .bashrc: export RBENV_ROOT="$(brew --prefix rbenv)" export GEM_HOME="$(brew --prefix)/opt/gems" export GEM_PATH= "$(brew --prefix)/opt/gems" 最后把它添加到你的 ~/.gemrc: gem: -n/usr/local/bin gem update --system


我用了brew install rebenv ruby-build,然后我的目录后面有一个system?知道是什么原因造成的,以及如何摆脱system
t
the Tin Man

我需要做一个 rbenv rehash,以便它指向我当地的 Gem 库。

看起来您的 gem 管理器指向系统库,因此,与其弄乱权限,不如为您的管理器执行相当于“rehash”的操作以使事物指向本地。


未来的探索者:rbenv rehash 已被弃用 github.com/rbenv/rbenv-gem-rehash
H
Herbi Shtini

我已经格式化了我的 Mac,许多建议的解决方案对我不起作用。对我有用的是这些命令按正确的顺序:

安装 Homebrew:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装 Ruby:brew install ruby 安装指南针:sudo gem install compass


您永远不需要使用 sudo 来安装 gem。使用 sudo 会将其安装到系统拥有的 Ruby 中,而不是安装到您拥有的 Ruby 中。使用沙盒 Ruby 在编程时更易于管理和使用,因为您可以创建多个不同的实例并尝试不同的事情,然后在完成后销毁它们。
B
Breedly

更老更聪明

不要照我说的做,只要知道在使用 sudo 时要小心。您可能想使用 rbenv 之类的东西来隔离您正在做的任何工作。

离开

learn about chown

我不知道您是否喜欢命令行,但这将使使用任何将软件包安装到系统的工具在任何项目上工作变得轻而易举。

chown 据我所知,代表变更所有权。

我来寻找这个答案的原因是因为 gem install 今天向我抛出了这个错误:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /var/lib/gems/1.9.1 directory.

这是使用 chown 的绝佳机会。您会看到 Ruby 为我们提供了它需要访问的目录,而且它似乎是一个它会经常使用的目录。

在这种情况下,解决问题只需要知道三件事,但 chown 的功能要强大得多,并且比我现在要演示的更灵活。请参阅底部的来源以获取更多信息。

两件事

用户名目录

如果您在 shell 中查找用户名很容易。只看提示。我的看起来像:

breadly@breadly-desktop:~\Desktop

当前用户只是 @ 之前的名称。我们从错误消息中知道目录,但您有两个选择。您可以使用 ../gems/1.9.1 将您的权限限制为当前版本,或者使用 ../gems 授予自己对所有版本的 gems 的写入权限。

实际更改所有权的命令如下所示。

chown -R $(whoami) /absolute/path/to/directory

-R 被称为标志,-R 标志通常告诉命令以递归方式执行某些操作,或者换句话说,对目录中包含的所有内容以及包含在目录中的所有内容执行命令在里面,依此类推,直到没有别的东西。


另外,如果你想知道你的用户属于哪个组,你可以参考这个。 stackoverflow.com/questions/350141/…
但是,如果必须将其安装到 /usr/local/bin 目录,您可能需要小心更改所有权。
更改 /usr、/Library 或 /var 路径等中任何内容的所有权是一个坏主意。由于不再可访问文件和驱动程序,系统可能会停止,如果安装程序检测到路径不再由 root:wheel 拥有,未来的更新可能会中断。修复损坏可能非常困难,通常最好通过重新安装操作系统来完成。天真/没有经验的用户对操作系统的了解不足,无法了解哪些文件/目录可能是安全的,应注意不要在家中尝试。
大声笑这是一个令人尴尬的答案。 :) 我猜现在更老更聪明了。
v
vaskort

sudo chown -R $USER /Library/Ruby/Gems/


e
evya

为我工作:

sudo gem uninstall cocoapods

sudo gem install cocoapods

对我来说太棒了!谢谢。节省安装 rbenv 或 RVM 的工作量
投反对票,因为正如其他评论中所指出的那样,以 root 身份安装 gems 是一种危险的做法。安装程序可以对您的系统执行任何操作。
@SomeGuy:“安装程序实际上可以做任何事情”......用户自己更有可能使用命令并破坏系统。我想不出安装程序何时搞砸了我的系统,但我清楚地记得我做过的时间。 sudo 是新手喜欢的命令,因为它可以很容易地做错事,并且在使用它时需要数年时间才能学会适当的偏执。
最佳答案!!!!运行这两个命令后,请重新启动终端,仅此而已!!!非常感谢!!!
z
zhao

通过 brew install rbenv 安装 rbenv;

然后将 eval "$(rbenv init -)" 放在 ~/.bash_profile(或 MacOS 的 ~/.zshrc)的末尾;

打开一个新终端并运行 gem install *** 即可!


不适合我❯ brew install rbenv -q Warning: rbenv 1.1.1 is already installed and up-to-date To reinstall 1.1.1, run `brew reinstall rbenv` ~/.gem/ruby/2.3.0/gems/colorls-1.1.1 ❯ eval "$(rbenv init -)" ~/.gem/ruby/2.3.0/gems/colorls-1.1.1 ❯ gem update Updating installed gems Updating CFPropertyList ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
t
the Tin Man

检查您的 Ruby 版本是否正确。如果没有,请更改它。

这对我有用:

$ rbenv global 1.9.3-p547
$ gem update --system

这是更好的解决方案:update > chown。谢谢! .我还必须运行 brew install ruby
M
Michael

正如 bobbdelsol 所指出的,rehash 对我有用:

==> which ruby
/usr/bin/ruby

==> rbenv install 1.9.3-p551
Downloading ruby-1.9.3-p551.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p551.tar.bz2
Installing ruby-1.9.3-p551...
Installed ruby-1.9.3-p551 to /Users/username/.rbenv/versions/1.9.3-p551


==> which ruby
/Users/username/.rbenv/shims/ruby

==> which gem
/Users/username/.rbenv/shims/gem

==> gem install compass
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> rbenv rehash


==> ruby -v
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-darwin15.4.0]


==> gem install compass
Fetching: sass-3.4.22.gem (100%)
Fetching: multi_json-1.11.3.gem (100%)
Fetching: compass-core-1.0.3.gem (100%)
Fetching: compass-import-once-1.0.5.gem (100%)
Fetching: chunky_png-1.3.5.gem (100%)
Fetching: rb-fsevent-0.9.7.gem (100%)
Fetching: ffi-1.9.10.gem (100%)
Building native extensions.  This could take a while...
Fetching: rb-inotify-0.9.7.gem (100%)
Fetching: compass-1.0.3.gem (100%)
    Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks!
Successfully installed sass-3.4.22
Successfully installed multi_json-1.11.3
Successfully installed compass-core-1.0.3
Successfully installed compass-import-once-1.0.5
Successfully installed chunky_png-1.3.5
Successfully installed rb-fsevent-0.9.7
Successfully installed ffi-1.9.10
Successfully installed rb-inotify-0.9.7
Successfully installed compass-1.0.3
9 gems installed
Installing ri documentation for sass-3.4.22...
Installing ri documentation for multi_json-1.11.3...
Installing ri documentation for compass-core-1.0.3...
Installing ri documentation for compass-import-once-1.0.5...
Installing ri documentation for chunky_png-1.3.5...
Installing ri documentation for rb-fsevent-0.9.7...
Installing ri documentation for ffi-1.9.10...
Installing ri documentation for rb-inotify-0.9.7...
Installing ri documentation for compass-1.0.3...
Installing RDoc documentation for sass-3.4.22...
Installing RDoc documentation for multi_json-1.11.3...
Installing RDoc documentation for compass-core-1.0.3...
Installing RDoc documentation for compass-import-once-1.0.5...
Installing RDoc documentation for chunky_png-1.3.5...
Installing RDoc documentation for rb-fsevent-0.9.7...
Installing RDoc documentation for ffi-1.9.10...
Installing RDoc documentation for rb-inotify-0.9.7...
Installing RDoc documentation for compass-1.0.3...

太近了。然而“错误:执行 gem 时 ... (Gem::FilePermissionError) 您没有 /Library/Ruby/Gems/2.0.0 目录的写入权限。”
M
Michael

2021 年解决方案(使用 rvm):

如果您在终端中键入 which ruby 并显示 /usr/bin/ruby,您可以尝试此解决方案。

安装 rvm curl -L https://get.rvm.io | bash -s stable install ruby using rvm rvm install "ruby-3.0.0" 使用您安装的 ruby 版本 rvm 再次使用 ruby-3.0.0 类型 which ruby,将显示 /Users/mac_user_name/.rvm/rubies/ruby- 3.0.0/bin/红宝石。这是使用 ruby 的新途径。


2022 年在 MacOS Big Sur 为我工作
M
Marcelo Gumiero

在 MacOS Mojave 上测试成功:

卸载所有旧的 ruby 版本(假设你有 2.00 和 2.3.0): $ rvm uninstall 2.0.0 $ rvm uninstall 2.3.0 安装全新的 ruby 版本: $ brew install ruby 为你的版本设置一个默认别名: $ rvm alias create default ruby 重新启动您的系统,因为这是您的计算机加载最近安装的新 ruby 版本的最安全方式。

完成上述过程后,您可以成功运行任何 gem 命令。


K
Koray Güclü

您可以更改 GEM_HOME。您的主目录下还有一个 gem 文件夹来检查它的使用

$ gem env

结果如下。不相关的部分省略。

...
  - GEM PATHS:
     - /Users/xxx/.gem/ruby/2.6.0
     - /Library/Ruby/Gems/2.6.0
     - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0
...
 

您可以使用您的 /Users/xxx/.gem/ruby/2.6.0 文件夹。

vim ~/.bash_profile

添加以下行

export GEM_HOME=~/.gem/ruby/2.6.0/

之后你可以使用

source ~/.bash_profile 

这与 2015 年的 my answer 相同。
a
allthesignals

我的问题是我之前从 zshell 切换到 bash 并且没有登录:

/bin/bash --login

虽然我安装了 rvm,但它无法切换到我新安装的 rvm ruby 版本,并且仍在尝试使用 Mac 安装的默认 ruby 二进制文件。因此我的困惑(用户错误!!!)和持续的权限问题......


m
myklgee

cd /图书馆/Ruby/Gems/2.0.0

打开 。

右键获取信息

单击锁定

放置密码

让一切都可以读写。


请花时间格式化您的答案以提高可读性。你投入研究和解释的努力是有回报的。
H
Hardip Kalola

安装 gem 或更新 RubyGems 失败并出现权限错误然后键入此命令

sudo gem install cocoapods

这已在其他答案中介绍。请在创建之前阅读其他答案,以确保您的答案提供新的东西。
A
Alex_Burla

您可以使用: gem install cocoapods --pre --user


R
Rama Astadipati

让用户 $whoami 在这些文件夹中创建一些东西

sudo chown -R user /Library/Ruby/Gems/2.0.0

不,该文件夹归系统所有是有充分理由的,系统将其用于自己的目的。运行指向它的脚本是可以的,但如果你想弄乱它,请创建并使用沙盒 Ruby。
F
Felipe Francisco

我用过这个并且工作过。

$ sudo chown myuser /var/lib/gems


请参阅其他答案中有关使用 sudo 的评论。
M
Mohammad Arif

错误的原因是您没有在终端上以 root 用户身份登录。

如果您已经在终端类型的 Mac 上启用了 root 使用权限

$ su

如果您没有 root 用户,则需要使用以下步骤启用它

从 Apple 菜单中选择系统偏好设置...。从视图菜单中选择用户和组。单击锁并以管理员帐户身份验证。单击登录选项...。单击右下角的“编辑...”或“加入...”按钮。单击“打开目录实用程序...”按钮。单击“目录实用程序”窗口中的锁。输入管理员帐户名和密码,然后单击确定。从编辑菜单中选择启用根用户。在密码和验证字段中输入您希望使用的根密码,然后单击确定。

http://support.apple.com/kb/ht1528 上的更多内容

至少在卡住几个小时后它对我有用。


为什么要投反对票?各位大佬能写下这样做的理由吗?
以 root 身份安装 gems 是个坏主意。 stackoverflow.com/questions/2119064/…