更新后出现的Macos Catalina错误:无法运行colorls

11
更新到 macOS Catalina 后打开终端会出现错误。
ERROR:  Can't find Ruby library file or shared library colorls
usage: dirname path
/Users/varunsukheja/.zshrc:source:91: no such file or directory: /tab_complete.sh

当我查看第91行的.zshrc文件时,我发现以下内容:
source $(dirname $(gem which colorls))/tab_complete.sh

我检查了 gem which colorls,但是出现了以下错误:

ERROR:  Can't find Ruby library file or shared library colorls

但是当我检查 which colorls时,我得到以下路径:

/usr/local/bin/colorls

我尝试使用gem重新安装colorls

Building native extensions. This could take a while...
ERROR:  Error installing colorls:
    ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.6.0/gems/clocale-0.0.4/ext/clocale
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /Library/Ruby/Site/2.6.0 -r ./siteconf20191009-43313-16ndnb.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/clocale-0.0.4 for inspection.
Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/clocale-0.0.4/gem_make.out

请帮忙如何使其正常工作。

5个回答

15
这对我有用: xcode-select --install sudo gem install colorls -n /usr/local/bin

14
这是我解决它的方法:
  1. sudo xcode-select --install
  2. 使用 brew install rbenv 安装 rbenv
  3. ~/.zshrc~/.bash_profile 的末尾添加 eval "$(rbenv init -)"
  4. 安装 ruby 版本 rbenv install 2.6.0
  5. 通过 rbenv 选择 ruby 版本 rbenv global 2.6.0
  6. 打开一个新的终端窗口。
  7. 使用 gem env home 验证正在使用正确的 gem 文件夹(应该报告您的用户文件夹中的某些内容,而不是系统范围内的内容)。

之后我再次使用 sudo gem install colorls 安装了 colorls。

如果出现错误:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/bin directory.

尝试使用命令行安装colorls:

sudo gem install colorls -n /usr/local/bin

安装成功后,您将看到colorls已成功安装,新终端也可以正常工作。


在执行 tab_complete.sh 文件之前,您需要添加 eval "$(rbenv init -)"。最好将 eval 添加到开头而不是结尾。 - Anwar Shaikh
WSL 上,我执行了 gem install colorls 而没有使用 sudo,它完美地工作了。 - robe007

3

对我有帮助的解决方法如下:

  1. 打开Xcode
  2. 点击左上角的Xcode标签
  3. 打开偏好设置
  4. 点击“位置”选项卡
  5. 选择命令行工具

由于某种原因,没有选择任何命令行工具,这导致了我的问题。当我更新到最新版本时,下载了Xcode的beta版本,但是仍然没有选择任何工具。


3
这是我的解决方法:
$ sudo gem update
$ sudo gem install colorls

Catalina现在使用的是Ruby 2.6,而不再是2.3。我的猜测是,随着升级,所有自定义安装的gem都变得"未被跟踪",因为新的Ruby/Gem包系统与旧版本不兼容。因此,gem update不能更新colorls

请确保重新安装XCode命令行工具,更新/升级brew、npm等软件。


0

错误:安装cocoapods时出现gem本地扩展错误

答案:按照以下3个步骤问题将得到解决。

步骤1: 打开XCode,进入以下路径

XCode > 首选项 > 位置 > 命令行工具(选择-Xcode)

步骤2: 打开终端-粘贴以下命令

curl -L https://get.rvm.io | bash -s stable

重新打开终端-粘贴以下命令

注意:这将需要3-5分钟

rvm install ruby-2.6

rvm use ruby-2.6.3

rvm --default use 2.6.3

步骤3:

打开终端-输入以下命令

sudo gem install cocoapods

现在安装cocoapods时不会再出现gem本地扩展错误了

问题已解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接