【问题标题】:Sass is not working & Can't install ruby-sass on macOS CatalinaSass 不工作,无法在 macOS Catalina 上安装 ruby​​-sass
【发布时间】:2020-02-04 08:16:03
【问题描述】:

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

当我运行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```

【问题讨论】:

    标签: ruby macos sass rubygems macos-catalina


    【解决方案1】:

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

    • macOS Catalina 10.15.7
    • ruby 2.6.3p62(2019-04-16 修订版 67580)[universal.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 }}
    

    【讨论】:

      【解决方案2】:

      由于 macOS Catalina 已从基本安装中删除 ruby​​,您将无法再执行通过 gem 安装的 sass 可执行文件。

      但是,您可以按照sass website 上的说明安装 Dart Sass:

      在 Mac OS X (Homebrew) 上安装

      如果你在 Mac OS X 上使用the Homebrew package manager,你可以通过运行来安装 Dart Sass

      brew install sass/sass/sass
      

      不过,在这样做之前,最好先卸载通过 gem 安装的 sass 实例

      gem uninstall sass
      

      如果您在链接通过 brew 安装的 sass 时遇到任何问题,您可能需要手动链接它(如果是这种情况,brew 通常会告诉您)

      brew link --overwrite sass
      

      【讨论】:

      • 对于像我这样的偶尔使用 Sass 的用户:Dart Sass 是 Sass 的主要实现 [...]。它编译为纯 JavaScript(参见 sass-lang.com/dart-sass
      【解决方案3】:

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

      现在解决此问题的正确方法是在您的 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

      【讨论】:

      • 这假定用户正在运行 ZSH 作为他们的默认 shell。
      • Catalina 没有为 ZSH 放弃 bash 吗?
      • zsh (Z shell) 是 所有新创建的用户帐户的默认 shell,从 macOS Catalina 开始。 引用自:support.apple.com/en-us/HT208050 (强调我的)
      • 我发现了这个信息:Ruby Sass 是 Sass 的原始实现,但它已于 2019 年 3 月 26 日结束生命周期。 它不再受支持,并且 Ruby Sass 用户应该迁移到另一个实现。(来自sass-lang.com/ruby-sass,强调我的)。听起来人们将来应该在没有 Ruby 的情况下让 Sass 运行,对吧?
      【解决方案4】:

      问题解决了,解决办法在这里

      打开终端并运行这些代码

      • 第一步:brew update
      • 第二步:xcode-select --install
      • 第三步:sudo gem install -n /usr/local/bin sass

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

      【讨论】:

      • 除上述之外,我还安装了最新版本的XCode并重新启动。我不确定需要哪些步骤,但是Sass 现在终于可以重新开始工作了。谢谢德洛华!
      • 它也解决了我的问题。谢谢
      • 对于决定使用此方法的任何人,我强烈建议不要这样做。使用 sudo 安装 gems 是一个的想法
      猜你喜欢
      • 2020-07-04
      • 1970-01-01
      • 2020-12-10
      • 2021-08-24
      • 2017-09-20
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      相关资源
      最近更新 更多