【问题标题】:Rails: Spring permission error Ubuntu 14.04Rails:Spring 权限错误 Ubuntu 14.04
【发布时间】:2015-03-26 07:13:57
【问题描述】:

我正在尝试设置一个 Ubuntu 14.04 机器作为 rails 4.2 的开发环境。

当我尝试运行 rails c 时,我收到以下错误:

fileutils.rb:252:in `mkdir': Permission denied @ dir_s_mkdir - /run/user/1000/spring (Errno::EACCES)

这是因为/run/user/1000 归用户tyler 所有,而我试图以用户deployer 的身份执行命令。我以tyler 然后su - deployer 登录系统到达那里。

如果我以deployer 身份登录系统,我可以毫无问题地执行rails c,它会创建一个由部署者拥有的单独的/run/user/1001 目录。

  • Ubuntu 14.04.1 LTS
  • Rails-4.2.0
  • ruby-2.2

【问题讨论】:

  • 您是否使用 Capistrano 并使用 rvm 运行?
  • 我遇到了同样的问题。我在一个新创建的帐户中使用 rbenv,并使用 rails-composer 构建了一个新的骨架应用程序。

标签: ruby-on-rails ubuntu permissions ubuntu-14.04


【解决方案1】:

我也有同样的问题,但上面的RDP's answer 帮我解决了。

只是为了补充他的答案:

运行以下命令修复问题后

unset XDG_RUNTIME_DIR

如果您在生产环境中,请运行以下命令进入 rails 控制台

rails c --environment=production

如果您在开发环境中,请运行以下命令进入 rails 控制台

rails c

或者

rails c --environment=development

就是这样。

我希望这会有所帮助

【讨论】:

    【解决方案2】:

    这种情况出现在新用户使用 rails 时。所以需要给部署者权限

    sudo chown deployer -R /run/user/1000
    

    【讨论】:

      【解决方案3】:

      如果使用 VirtualBox / Vagrant,请运行以下命令:

      sudo chown user:vagrant -R /run/user/1000
      

      用户是您的主机用户名。

      【讨论】:

        【解决方案4】:

        似乎 XDG_RUNTIME_DIR 环境变量被设置为某种原因。你可以运行:

        $ unset XDG_RUNTIME_DIR
        $ rails c
        

        【讨论】:

          【解决方案5】:

          “deployer”用户似乎无权在“tyler”用户的主目录中创建目录。这可以通过将部署用户添加到组 tyler 来解决

          usermod -a -G tyler deployer
          

          您可能希望以 root 身份运行此命令。

          【讨论】:

            猜你喜欢
            • 2015-05-26
            • 1970-01-01
            • 2012-01-23
            • 2013-05-25
            • 2016-06-07
            • 2015-12-21
            • 2016-10-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多