You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04虚拟机使用Ruby2.5.9+Rails5.0.7.2配置PostgreSQL时报Errno::EPERM错误

错误产生原因

你当前执行rails new的工作路径为/mnt/c,属于WSL环境下自动挂载的Windows NTFS文件系统分区,NTFS本身不兼容Linux的权限控制机制,而Rails创建项目的过程中默认会调用chmod命令修改项目bin目录下可执行文件的权限,该操作在NTFS挂载分区上会被系统禁止,因此抛出Errno::EPERM报错。

解决方法
  • 方案一(最推荐):将Rails项目创建到WSL的Linux原生文件系统路径下,比如你的用户家目录/home/kundan,执行如下命令即可:
    cd ~
    rails new testapp -d postgresql
    
    该方案除了能解决权限报错外,还能大幅提升Rails项目的文件读写性能,避免后续开发过程中出现其他兼容问题。
  • 方案二:如果必须将项目存放在Windows挂载分区,可以在创建项目时添加参数跳过chmod操作:
    rails new testapp -d postgresql --skip-chmod
    
  • 方案三:修改WSL挂载配置,让NTFS分区支持Linux权限操作:
    1. 编辑WSL内的/etc/wsl.conf文件,添加以下配置:
      [automount]
      options = "metadata,umask=22,fmask=11"
      mountFsTab = false
      
    2. 保存文件后关闭WSL,在Windows终端执行wsl --shutdown重启WSL,后续在挂载分区执行chmod类操作就不会报错。

内容的提问来源于stack exchange,提问作者Kundan Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:18:03