Ruby3.1.2+Rails7.0.6执行rails tailwindcss:install遇ELF未找到错误
解决tailwindcss-rails执行
rails tailwindcss:build时的ELF二进制错误 环境信息
- Ruby 3.1.2
- Rails 7.0.6
- tailwindcss-rails 2.0.30 (x86_64 Linux)
- 运行环境:WSL(Windows Subsystem for Linux)
错误核心原因
报错中的ELF����: not found和语法错误,说明gem自带的tailwindcss二进制文件损坏,或WSL环境(尤其是WSL1)对预编译Linux二进制兼容性不足,导致系统无法正确识别执行该文件。
解决方案
方案1:重新安装tailwindcss-rails并清理缓存
- 卸载现有gem:
gem uninstall tailwindcss-rails
- 清理gem缓存:
gem cleanup tailwindcss-rails
- 重新添加项目依赖:
bundle add tailwindcss-rails
- 再次执行安装命令:
rails tailwindcss:install
方案2:升级WSL到版本2(当前为WSL1时)
WSL1对Linux二进制支持有限,升级到WSL2可解决多数兼容性问题:
- 查看当前WSL版本:
wsl -l -v
- 升级指定发行版(以Ubuntu为例):
wsl --set-version Ubuntu 2
- 重启WSL后,重新执行
rails tailwindcss:install
方案3:手动替换tailwindcss二进制文件
若重新安装无效,手动替换为官方发布的二进制:
- 下载最新x86_64 Linux版本tailwindcss:
curl -sLO https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-linux-x64
- 添加执行权限:
chmod +x tailwindcss-linux-x64
- 替换gem中的二进制文件(路径按实际情况调整):
cp tailwindcss-linux-x64 /home/zgl/.rvm/gems/ruby-3.1.2/gems/tailwindcss-rails-2.0.30-x86_64-linux/exe/x86_64-linux/tailwindcss
- 再次执行构建命令:
rails tailwindcss:build
方案4:改用npm版tailwindcss替代gem
若上述方案均无效,可放弃tailwindcss-rails gem,直接使用npm版本:
- 移除gem依赖:
bundle remove tailwindcss-rails
- 安装npm依赖:
npm install -D tailwindcss postcss autoprefixer
- 初始化tailwind配置:
npx tailwindcss init -p
- 在
app/assets/stylesheets/application.tailwind.css中添加tailwind指令:
@tailwind base; @tailwind components; @tailwind utilities;
- 配置
package.json中的构建脚本,通过bin/dev启动时同步运行CSS构建
内容的提问来源于stack exchange,提问作者guilin zhang
相关产品推荐
相关产品推荐

