简而言之,我无法在开发计算机上安装@ pact-foundation / pact-node,从我的收集来看,这似乎与在macOS 10.14上存在松散的关系。松散地说,这不会影响我运行同一堆栈的其他非开发计算机。
在nvm中,除了系统Node也是11.6.0之外,我还尝试使用Node 8.14.0、8.15.0、94.0、10.14.2、10.15.0和11.6.0。不管我是在团队的项目目录中还是在其他空的沙箱目录中,每个版本都会产生相同的错误消息。
直到几分钟前,我一直在运行macOS 10.14.1,并且在10.14.2上看到了相同的问题。没有尚未安装的更新。
软件包安装输出如下。
$ npm install @pact-foundation/pact-node
> dtrace-provider@0.8.7 install /Users/andrewgould/www/sandbox/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js
ACTION binding_gyp_ndtp_target_build_ndtp .
TOUCH Release/obj.target/ndtp.stamp
> spawn-sync@1.0.15 postinstall /Users/andrewgould/www/sandbox/node_modules/spawn-sync
> node postinstall
> caporal@0.10.0 postinstall /Users/andrewgould/www/sandbox/node_modules/caporal
> (test -f ./node_modules/husky/bin/install.js && node ./node_modules/husky/bin/install.js) || exit 0
> @pact-foundation/pact-node@6.20.0 postinstall /Users/andrewgould/www/sandbox/node_modules/@pact-foundation/pact-node
> node postinstall.js
dyld: lazy symbol binding failed: Symbol not found: _usdt_create_provider
Referenced from: /Users/andrewgould/www/sandbox/node_modules/dtrace-provider/src/build/Release/DTraceProviderBindings.node
Expected in: flat namespace
dyld: Symbol not found: _usdt_create_provider
Referenced from: /Users/andrewgould/www/sandbox/node_modules/dtrace-provider/src/build/Release/DTraceProviderBindings.node
Expected in: flat namespace
Abort trap: 6
有人以前见过类似的错误吗?有解决方案吗?
答案 0 :(得分:3)
事实证明,此问题是由我通过Homebrew安装的binutils
引起的。卸载可以解决问题。
在GNU binutils网站上,其中包含的主要软件包是GNU链接器ld
和GNU汇编器as
。这两个工具都包含在macOS中,但是这些工具的Homebrew版本导致了上述问题中显示的冲突。