You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac上Chef Workstation的knife命令报错,OpenSSL版本冲突求助

问题:Mac上Chef Workstation安装后OpenSSL版本冲突导致UI和knife命令故障

现象1:Chef Workstation UI弹出JavaScript错误

A JavaScript error occurred in the main process
Uncaught Exception: Error: Command failed: /opt/chef-workstation/bin/ohai os platform
platform_family platform_version kernel/machine <internal:/opt/chef-workstation/embedded/lib/ruby/3.1.0/rubygems/core_ext/ kernel_require.rb>:85:in 'require': dlopen(/Users/ralphmira/.chef/gem/ruby/ 3.1.0/gems/openssl-3.2.0/lib/openssl.bundle, 0x0009): tried: '/Users/ ralphmira/.chef/gem/ruby/3.1.0/gems/openssl-3.2.0/lib/openssl.bundle' (code signature in <403F00BB-D10A-3EB2-B1CC-3C91802BC874> '/Users/ ralphmira/.chef/gem/ruby/3.1.0/gems/openssl-3.2.0/lib/openssl.bundle' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), /System/Volumes/Preboot/Cryptexes/OS/Users/ ralphmira/.chef/gem/ruby/3.1.0/gems/openssl-3.2.0/lib/openssl.bundle' (no such file), '/Users/ralphmira/.chef/gem/ruby/3.1.0/gems/openssl-3.2.0/lib/ openssl.bundle' (code signature in <403F00BB-D10A-3EB2- B1CC-3C91802BC874> '/Users/ralphmira/.chef/gem/ruby/3.1.0/gems/ openssl.bundle' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs) - /Users/ ralphmira/.chef/gem/ruby/3.1.0/gems/openssl-3.2.0/lib/openssl.bundle
(LoadError) from <internal:/opt/chef-workstation/embedded/lib/ruby/3.1.0/rubygems/ core_ext/kernel_require.rb>:85:in 'require' from /Users/ralphmira/.chef/gem/ruby/3.1.0/gems/openssl-3.2.0/lib/
openssl.rb: 13:in *<top (required)> from <internal:/opt/chef-workstation/embedded/lib/ruby/3.1.0/rubygems/
core_ext/kernel_require.rb>:85 in 'require' from <internal:/opt/chef-workstation/embedded/lib/ruby/3.1.0/rubygems/ core_ext/kernel_require.rb>:85:in 'require'
from /opt/chef-workstation/bin/ohai:9:in <main>'
at checkExecSyncError (node:child_process:905:11) at execFileSync (node:child_process:941:15)
at func (node:electron/js2c/node_init:2:2214) at queryOhai (/Applications/Chef Workstation App.app/Contents/Resources/
app.asar/src/helpers/chef_workstation.js:203:14) at Object.getPlatformInfo (/Applications/Chef Workstation App.app/ Contents/Resources/app.asar/src/helpers/chef_workstation.js:184:10) at new OmnitruckUpdateChecker (/Applications/Chef Workstation App.app/ Contents/Resources/app.asar/src/omnitruck-update-checker/omnitruck-
update-checker.js:14:41) at new Main (/Applications/Chef Workstation App.app/Contents/Resources/
app.asar/src/main.js:24:39) at Object.<anonymous> (Applications/Chef Workstation App.app/Contents/
Resources/app.asar/src/app.js:4:1)
at Module._compile (node:internal/modules/cjs/loader:1391:14)

现象2:knife命令执行失败

➜  ~ knife -v
/opt/chef-workstation/embedded/lib/ruby/3.1.0/rubygems/specification.rb:2278:in `check_version_conflict': can't activate openssl-3.2.0, already activated openssl-3.0.1 (Gem::LoadError)
    from /opt/chef-workstation/embedded/lib/ruby/3.1.0/rubygems/specification.rb:1415:in `activate'
    from /opt/chef-workstation/embedded/lib/ruby/3.1.0/rubygems/core_ext/kernel_gem.rb:68:in `block in gem'
    from /opt/chef-workstation/embedded/lib/ruby/3.1.0/rubygems/core_ext/kernel_gem.rb:68:in `synchronize'
    from /opt/chef-workstation/embedded/lib/ruby/3.1.0/rubygems/core_ext/kernel_gem.rb:68:in `gem'
    from /usr/local/bin/knife:311:in `<main>'

已尝试的无效操作

  • 重新安装Chef Workstation
  • 通过brew卸载Chef Workstation、Ruby、OpenSSL并清理
  • 尝试将OpenSSL从3.4.0降级到3.2.0,但brew无法找到对应版本

可能诱因

两周前曾安装Jekyll用于GitHub Pages文档制作,当前Ruby 3.4.1已丢失,Jekyll也无法使用


解决方案

1. 清理用户目录下的Chef gem缓存

Chef Workstation自带独立的Ruby环境,用户目录下的.chef/gem会干扰自带环境的依赖,直接删除该目录:

rm -rf ~/.chef/gem

2. 隔离Chef Workstation与系统Ruby环境

Chef Workstation的命令(如knife、ohai)应该优先使用自带的Ruby环境,检查你的Shell配置文件(~/.zshrc或~/.bash_profile),确保Chef的路径在系统Ruby之前:

# 在Shell配置文件中添加或修改:
export PATH="/opt/chef-workstation/bin:$PATH"

添加后执行source ~/.zshrc(或对应Shell的配置文件)使变更生效。

3. 修复系统Ruby与Jekyll环境(可选)

如果你需要恢复Jekyll,使用Ruby版本管理器(如rbenv或rvm)隔离不同Ruby版本,避免直接修改系统Ruby:

  • 安装rbenv:
    brew install rbenv
    rbenv init
    
  • 安装Ruby 3.4.1:
    rbenv install 3.4.1
    rbenv global 3.4.1
    
  • 重新安装Jekyll:
    gem install jekyll bundler
    

4. 重新验证Chef Workstation功能

  • 重启Chef Workstation UI,检查是否还弹出JS错误
  • 执行knife -v确认命令正常工作

内容的提问来源于stack exchange,提问作者Ralph Lawrence Mira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:35:14