如何删除 Permission denied @ rb_sysopen - Gem 安装错误?

Sto*_*sey 19 ruby installation rubygems ruby-on-rails

我正在尝试在 Ruby on Rails 中安装创建一个新应用程序,但我无法通过此错误:

$ gem install pg
Run Code Online (Sandbox Code Playgroud)

错误:执行 gem 时 ... (Errno::EACCES) 权限被拒绝 @ rb_sysopen - /Users/stormyramsey/.rbenv/versions/2.3.2/lib/ruby/gems/2.3.0/gems/pg-0.21.0 /.gemtest

Bry*_*den 32

它的权限问题。你可以用这个修复它:

sudo chown -R $(whoami) /Library/Ruby/Gems/*
Run Code Online (Sandbox Code Playgroud)

或者可能在你的情况下

sudo chown -R $(whoami) /Users/stormyramsey/.rbenv/versions/2.3.2/lib/ruby/gems/*
Run Code Online (Sandbox Code Playgroud)

这是做什么的:

这告诉系统更改文件以将所有权更改为当前用户。当某些东西被安装时,一定是有些东西搞砸了。通常这是因为有多个帐户或用户在不应该总是必须使用 sudo 进行安装时。


Dev*_*B2F 11

无需更改权限,只需导出GEM_HOME:

export GEM_HOME="$HOME/.gem"
Run Code Online (Sandbox Code Playgroud)


Kat*_*ryn 7

.rbenv 路径中的某处可能存在权限问题。您可以尝试为您的用户打开写权限:

$ chmod -R +w ~/.rbenv
Run Code Online (Sandbox Code Playgroud)

这将递归地 ( -R) 将文件模式( ) 更改为用户 .rbenv 路径下所有文件和目录的chmod写入权限 ( +w)。没有将文件设置为写入的特殊原因。