5

升级到 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```
4

4 回答 4

13

问题解决了,下面是解决方案

打开终端并运行这些代码

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

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

于 2019-10-07T02:10:07.743 回答
6

让我首先敦促人们不要使用sudo. 自 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. 现在安装任何你想要的 gemgem install sass
于 2019-10-10T06:19:01.470 回答
4

由于 macOS Catalina 已从基本安装中删除 ruby​​,因此您不再能够执行通过 gem 安装的 sass 可执行文件。

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

在 Mac OS X 上安装(自制)

如果你使用Mac OS X的 Homebrew 包管理器,你可以通过运行安装 Dart Sass

brew install sass/sass/sass

但是,在执行此操作之前,最好先卸载通过 gem 安装的 sass 实例

gem uninstall sass

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

brew link --overwrite sass
于 2019-10-10T23:20:29.173 回答
0

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

  • macOS 卡塔利娜 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 }}
于 2021-09-17T09:56:02.390 回答