Rails:为啥捆绑安装被 sassc 2.4.0 冻结
Posted
技术标签:
【中文标题】Rails:为啥捆绑安装被 sassc 2.4.0 冻结【英文标题】:Rails: Why is bundle install frozen up by sassc 2.4.0Rails:为什么捆绑安装被 sassc 2.4.0 冻结 【发布时间】:2020-10-24 10:50:27 【问题描述】:我正在尝试使用 Capistrano 部署我的 rails 应用程序,但是,部署过程 (cap production deploy
) 一直处于等待状态:
$HOME/.rbenv/bin/rbenv exec bundle install --path /home/deploy/appname/shared/bundle --jobs 4 --without development test --deployment -- quiet
当我 ssh 进入服务器并在没有 --quiet
标志的最新版本中运行相同的命令时,我看到大多数 gem 已安装,但是当它到达时
Installing sassc 2.4.0 with native extensions
它冻结了。如果我使用 cloud watch 监控 CPU(我使用的是运行 Ubuntu 20.04 的 EC2 实例),我看到它也会出现峰值。我已经尝试删除所有依赖 sassc 的依赖项,但这已证明是一个非常令人头疼的问题,而且似乎没有必要。一些依赖 gem 包括我的 CMS(舒适的墨西哥沙发)、webpacker 和一些节点依赖项。
我也尝试使用 sassc 安装
apt-get install sassc
无济于事(它安装,但捆绑安装仍然冻结)。
有没有人知道为什么这个 gem 安装有这么多麻烦?任何解决方法/修复?顺便说一句,依赖项在我的 macOS Catalina 机器上本地安装并运行良好。
奖金: 这是我运行部署脚本时的 CPU 使用率:
学分:
贷方余额:
也许使用免费的 EC2 计划根本无法安装 sassc?
谢谢。
【问题讨论】:
我在 EC2 中捆绑时遇到了同样的问题,它在安装带有本机扩展的 sassc 2.4.0 时停止。 面临同样的问题。沿着线程github.com/sass/sassc-ruby/issues/189 【参考方案1】:使用旧版本的 sass 可以解决问题。我建议在 Gemfile 中将 6 更改为 5.1.0。该文件将位于您的 rails 文件夹中(您在创建新 rails 时使用的名称)
我认为 Rails 6 由于某种原因与 Sass 6.0.0 的依赖项不兼容。
【讨论】:
【参考方案2】:sassc 版本 2.4.0 和 rails 6 有问题吗?我将 Gemfile 中的版本更改为 2.1.0,现在它安装速度很快,不会卡在 docker build 上。
【讨论】:
这似乎是问题的核心。使用旧版本的 sassc 可以解决这个问题。以上是关于Rails:为啥捆绑安装被 sassc 2.4.0 冻结的主要内容,如果未能解决你的问题,请参考以下文章
assets:precompile 导致 LoadError: cannot load such file -- sassc