Rails:Spring 权限错误 Ubuntu 14.04

Posted

技术标签:

【中文标题】Rails:Spring 权限错误 Ubuntu 14.04【英文标题】:Rails: Spring permission error 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 构建了一个新的骨架应用程序。 【参考方案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 身份运行此命令。

【讨论】:

以上是关于Rails:Spring 权限错误 Ubuntu 14.04的主要内容,如果未能解决你的问题,请参考以下文章

nginx 错误:(13:权限被拒绝)同时连接到上游)

Rails - IMGkit - Errno::EACCES 权限被拒绝错误

安装旧版本的 Rails 时遇到“您没有写入权限”错误

您如何修复 AWS 弹性 beanstalk rails 资产预编译的文件权限错误?

Ubuntu上的Rails3.2+Passenger3+Apache2+RVM

在ubuntu上安装rails