【问题标题】:Permission denied @ dir_s_mkdir - /run/user/gui/spring (Errno::EACCES)权限被拒绝 @ dir_s_mkdir - /run/user/gui/spring (Errno::EACCES)
【发布时间】:2015-12-18 22:48:30
【问题描述】:

我在打开时遇到这个问题 -> rails 控制台

[chitra@localhost todo_app]$ rails c
/home/chitra/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/fileutils.rb:252:in `mkdir': Permission denied @ dir_s_mkdir - /run/user/gui/spring (Errno::EACCES)
    from /home/chitra/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/fileutils.rb:252:in `fu_mkdir'
    from /home/chitra/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/fileutils.rb:226:in `block (2 levels) in mkdir_p'
    from /home/chitra/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/fileutils.rb:224:in `reverse_each'
    from /home/chitra/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/fileutils.rb:224:in `block in mkdir_p'
    from /home/chitra/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/fileutils.rb:210:in `each'
    from /home/chitra/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/fileutils.rb:210:in `mkdir_p'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/env.rb:37:in `tmp_path'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/env.rb:54:in `pidfile_path'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/env.rb:69:in `server_running?'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/client/run.rb:25:in `call'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/client/command.rb:7:in `call'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/client/rails.rb:24:in `call'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/client/command.rb:7:in `call'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/client.rb:28:in `run'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/bin/spring:49:in `<top (required)>'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/binstub.rb:11:in `load'
    from /home/chitra/.rvm/gems/ruby-2.2.0@todo/gems/spring-1.4.0/lib/spring/binstub.rb:11:in `<top (required)>'
    from /opt/projects/todo_app/bin/spring:13:in `require'
    from /opt/projects/todo_app/bin/spring:13:in `<top (required)>'
    from bin/rails:3:in `load'
    from bin/rails:3:in `<main>'

我使用的是 ruby​​ 版本 2.2.0p0 和 rails 4.2。 任何帮助将不胜感激。

【问题讨论】:

  • sudo chown -R chitra /run/user/gui/spring
  • 取消设置后,问题得到修复unset XDG_RUNTIME_DIR

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-3.2


【解决方案1】:

这是引发错误的代码:

# File 'lib/spring/env.rb', line 35

def tmp_path
  path = Pathname.new(File.join(ENV['XDG_RUNTIME_DIR'] || Dir.tmpdir, "spring"))
  FileUtils.mkdir_p(path) unless path.exist?
  path
end

看起来您将XDG_RUNTIME_DIR 设置为/run/user/gui/,但服务器没有对该目录的写入权限。因此,您可以授予对该目录的访问权限,也可以通过键入 unset XDG_RUNTIME_DIR 来取消设置 XDG_RUNTIME_DIR

【讨论】:

  • 或将其设置为您的:export XDG_RUNTIME_DIR=${id -u}.
猜你喜欢
  • 2015-07-20
  • 2016-03-14
  • 2016-05-07
  • 2018-12-13
  • 2016-01-19
  • 2015-12-06
  • 2021-11-13
  • 2011-12-28
  • 2014-01-24
相关资源
最近更新 更多