MacOS下运行Quarto Preview时Pandoc/LPEG代码签名错误求助
问题
MacOS Sonoma 14.2.1下运行quarto preview预览.qmd文件时,触发lpeg模块加载错误:
无法加载/usr/local/lib/lua/5.4/lpeg.so,文件无cdhash、未签名,至少需临时签名。
给lpeg.so临时签名后出现新报错:
映射进程与文件Team ID不匹配,系统日志显示pandoc(Team ID: FYF2F5GFX4)与无Team ID的lpeg.so验证失败。
当前环境版本:
- Pandoc 3.1.12.3(Lua 5.4)
- Quarto 1.4.551
- Xcode 15.3(15E204a)
已尝试操作
- 通过Homebrew更新重装pandoc和lpeg
- 卸载后改用.pkg安装pandoc、luarocks安装lpeg
- 对lpeg.so执行临时签名操作
解决办法
方法1:使用pandoc内置的lpeg库
Pandoc自带适配的lpeg版本,无需依赖系统或luarocks安装的版本。先设置环境变量让pandoc优先加载内置库:
export LUA_PATH='' export LUA_CPATH=''
设置完成后重新运行quarto preview测试。
方法2:用带Team ID的证书签名lpeg.so
- 打开Keychain Access,创建一个代码签名证书(类别选择Code Signing)
- 记录证书的通用名称(例如"My Code Signing Cert")
- 对lpeg.so执行签名,指定刚创建的证书:
codesign -s "My Code Signing Cert" /usr/local/lib/lua/5.4/lpeg.so
- 签名完成后验证签名信息:
codesign -dv --verbose=4 /usr/local/lib/lua/5.4/lpeg.so
确认输出中包含证书对应的Team ID后,再尝试运行quarto preview。
方法3:降级Xcode到15.2版本
有用户反馈Xcode 15.3的代码签名机制存在兼容性问题,降级到15.2版本后,之前的临时签名方式可正常生效。
内容的提问来源于stack exchange,提问作者road_rash
相关产品推荐
相关产品推荐

