macOS Catalina更新后colorls无法运行及终端报错求助
解决macOS Catalina升级后colorls无法运行的问题
嘿,我来帮你一步步搞定这个colorls的问题!升级Catalina后遇到的这些报错,主要是两个原因:系统Ruby的开发头文件缺失,以及.zshrc里的tab补全脚本路径写错了。
步骤1:安装Ruby开发依赖(修复gem编译失败)
Catalina升级后,Xcode Command Line Tools的头文件默认不再安装到系统Ruby能找到的位置,我们需要先确保Command Line Tools正确安装:- 执行以下命令安装或重置Command Line Tools:
xcode-select --install # 如果已经安装过,重置路径确保系统Ruby能找到头文件: sudo xcode-select --switch /Library/Developer/CommandLineTools
- 执行以下命令安装或重置Command Line Tools:
步骤2:用Homebrew安装Ruby(避免系统Ruby权限问题)
系统自带的Ruby经常会有权限和版本兼容问题,推荐用Homebrew安装独立的Ruby版本:- 如果还没装Homebrew,先安装它:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 安装Ruby:
brew install ruby - 把Homebrew Ruby的路径加到你的
.zshrc里,确保它优先于系统Ruby:echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc source ~/.zshrc - 验证Ruby版本是否正确:
输出应该显示Homebrew安装的版本(比如ruby --versionruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-darwin19]),而不是系统的2.6.0版本。
- 如果还没装Homebrew,先安装它:
步骤3:重新安装colorls
现在有了正确的Ruby环境,重新安装colorls:gem install colorls这时候应该不会再出现编译失败的报错了。
步骤4:修复
.zshrc里的tab补全路径
你原来的.zshrc第91行命令有个小错误:gem which colorls返回的是colorls库文件的路径(比如/usr/local/lib/ruby/gems/3.2.0/gems/colorls-1.4.6/lib/colorls.rb),用一次dirname只能得到lib目录,而tab_complete.sh在colorls gem的根目录下,所以需要两层dirname来获取正确路径:- 打开
.zshrc文件:nano ~/.zshrc - 找到第91行,把原来的:
修改为:source $(dirname $(gem which colorls))/tab_complete.shsource $(dirname $(dirname $(gem which colorls)))/tab_complete.sh - 保存退出(按
Ctrl+O,回车,再按Ctrl+X),然后刷新配置:source ~/.zshrc
- 打开
验证是否正常
现在打开新的终端窗口,执行colorls应该能正常显示带颜色的目录列表,也不会再出现报错了。
内容的提问来源于stack exchange,提问作者Varun Sukheja
相关产品推荐
相关产品推荐

