Sass 不工作,无法在 macOS Catalina 上安装 ruby-sass

Sass is not working & Can't install ruby-sass on macOS Catalina

Ruby sass 在升级到 macOS Catalina beta 后无法正常工作。

当我 运行 sudo gem install sass 时,出现错误:

ERROR:  Error installing sass:
    ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.11.1/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /Library/Ruby/Site/2.6.0 -r ./siteconf20191007-37566-177grvx.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/include/ruby.h

You might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.

extconf failed, exit code 1

Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/ffi-1.11.1 for inspection.
Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/ffi-1.11.1/gem_make.out```

问题已解决,这里是解决方案

打开终端 & 运行 这些代码

  • 第 1 步:brew update
  • 第 2 步:xcode-select --install
  • 第 3 步:sudo gem install -n /usr/local/bin sass

现在检查您的 sass 版本:sass -v

首先让我敦促人们不要使用 sudo 安装 gems。自 Catalina 以来,core/system 文件的用户权限发生了变化,这非常有意义。这样,任何程序都无法更改核心文件,而且它们是安全的。

现在解决此问题的正确方法是在您的 home 文件夹中安装一个额外的 Ruby 构建,可以对其进行更改和调整。

  1. brew update && brew install rbenv ruby-build
  2. xcode-select --install
  3. vim ~/.zshenv
  4. 将以下内容添加到打开的文件中export PATH="$HOME/.rbenv/bin:$PATH"
  5. vim ~/.zshrc
  6. 将以下内容添加到打开的文件中:
source $HOME/.zshenv
eval "$(rbenv init - zsh)"
  1. source ~/.zshrc
  2. rbenv install 2.6.4 或您觉得合适的任何版本
  3. rbenv global 2.6.4
  4. ruby -v 检查当前 运行 ruby 版本
  5. ruby -e "puts (1..100).reduce(:+)" 输出 5050
  6. 现在安装任何你想要的 gem gem install sass

由于 macOS Catalina 已从基础安装中删除 ruby,您将无法再执行通过 gem.

安装的 sass 可执行文件

但是,您可以按照 sass website:

上的说明安装 Dart Sass

Install on Mac OS X (Homebrew)

If you use the Homebrew package manager for Mac OS X, you can install Dart Sass by running

brew install sass/sass/sass

不过,在执行此操作之前,最好先卸载通过 gem

安装的 sass 实例
gem uninstall sass

如果您在 linking 通过 brew 安装的 sass 中遇到任何问题,您可能需要手动 link 它(brew 通常会告诉您这个如果它是这样)

brew link --overwrite sass

在我的例子中,有几个 Ruby 文件夹和文件没有进入目录和读取文件的权限。

  • macOS 卡特琳娜 10.15.7
  • ruby 2.6.3p62(2019-04-16 修订版 67580)[通用。x86_64-darwin19]
{{ disable SIP Security }} 

$ sudo find /Library/Ruby/ -type d -exec chmod -v o+x {} +
$ sudo chmod -Rv go+r /Library/Ruby/

{{ enable SIP Security }}