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
目录。
【问题讨论】:
您是否使用 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的主要内容,如果未能解决你的问题,请参考以下文章
Rails - IMGkit - Errno::EACCES 权限被拒绝错误
您如何修复 AWS 弹性 beanstalk rails 资产预编译的文件权限错误?