【问题标题】:I get permission denied error while trying to run bundle install尝试运行捆绑安装时出现权限被拒绝错误
【发布时间】:2016-01-17 17:09:56
【问题描述】:

我最近从 Linux 切换到 Mac,在尝试在我之前的一个项目上运行 bundle 时,我收到以下错误:

System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:959:in `read': Permission denied - /Library/Ruby/Gems/2.0.0/specifications/puma-2.14.0.gemspec (Errno::EACCES)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:959:in `load'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:644:in `block (2 levels) in each_spec'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:643:in `each'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:643:in `block in each_spec'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:642:in `each'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:642:in `each_spec'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:658:in `each_normal'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:669:in `_all'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:822:in `each'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:253:in `find_all'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:253:in `matching_specs'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:277:in `to_specs'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:307:in `to_spec'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:47:in `gem'
    from /usr/bin/bundle:22:in `<main>'

我尝试重新安装bundlerrbenvruby,但我一直收到同样的错误。我用sudo 运行命令,它可以工作,我怎样才能设置权限而不必使用sudo

【问题讨论】:

  • 你确定用sudo运行时出现同样的错误吗?这不是其他堆栈跟踪吗?
  • 我现在用sudo 重试并且它有效。没有sudo,你如何使它工作

标签: ruby macos bundler


【解决方案1】:

我现在用 sudo 重试,它可以工作。没有 sudo 你怎么能让它工作

要让捆绑器在没有 sudo 的情况下工作,您应该将所有 gem 依赖项安装在本地用户目录中(这是推荐的方式)

bundle install --path vendor/bundle

现在,当您运行程序时,bundle 会在新位置找到您的所有库

bundle exec ruby app.rb

如果您使用 git,请确保将 vendor 添加到您的 .gitignore 以避免将所有 gem 库都包含在“新文件”列表中。

【讨论】:

  • 我也有同样的问题,但是当我尝试执行“bundle install --path vendor/bundle”命令时,我得到了这个错误“-bash: bundle: command not found”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
  • 2019-02-08
  • 2012-06-09
相关资源
最近更新 更多