在 WSL 上安装 twilio-cli

installing twilio-cli on WSL

使用 npm install -g twilio-cli 安装 twilio-cli 时它运行时出错。

我安装了 nvm 并安装了 node 10 并使用了 npm 并安装了 twilio-cli 但我仍然遇到错误。

 npm install -g twilio-cli
/home/elephantatech/.nvm/versions/node/v10.19.0/bin/twilio -> /home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/twilio-cli/bin/run

> keytar@4.13.0 install /home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/twilio-cli/node_modules/keytar
> prebuild-install || node-gyp rebuild

prebuild-install WARN install libsecret-1.so.0: cannot open shared object file: No such file or directory
Package libsecret-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libsecret-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libsecret-1' found
gyp: Call to 'pkg-config --libs-only-l libsecret-1' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Linux 4.4.0-19041-Microsoft
gyp ERR! command "/home/elephantatech/.nvm/versions/node/v10.19.0/bin/node" "/home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/twilio-cli/node_modules/keytar
gyp ERR! node -v v10.19.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok

> ngrok@3.2.7 postinstall /home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/twilio-cli/node_modules/ngrok
> node ./postinstall.js

ngrok - downloading binary https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
ngrok - downloading progress: 13773305/13773305
ngrok - binary downloaded to /home/elephantatech/.ngrok/aHR0cHM6Ly9iaW4uZXF1aW5veC5pby9jLzRWbUR6QTdpYUhiL25ncm9rLXN0YWJsZS1saW51eC1hbWQ2NC56aXA=.zip
ngrok - unpacking binary
ngrok - binary unpacked to /home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/twilio-cli/node_modules/ngrok/bin/ngrok

> twilio-cli@1.9.6 postinstall /home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/twilio-cli
> node welcome.js


*************************************************************************
*                                                                       *
* To get started, please create a twilio-cli profile:                   *
*                                                                       *
*     twilio login                                                      *
*                                                                       *
*     OR                                                                *
*                                                                       *
*     twilio profiles:create                                            *
*                                                                       *
*************************************************************************

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: keytar@4.13.0 (node_modules/twilio-cli/node_modules/keytar):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: keytar@4.13.0 install: `prebuild-install || node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+ twilio-cli@1.9.6
added 609 packages from 1397 contributors in 79.067s

我尝试安装 keytar 包,但出现以下错误

npm install -g keytar

> keytar@5.4.0 install /home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/keytar
> prebuild-install || node-gyp rebuild

prebuild-install WARN install libsecret-1.so.0: cannot open shared object file: No such file or directory
Package libsecret-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libsecret-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libsecret-1' found
gyp: Call to 'pkg-config --libs-only-l libsecret-1' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Linux 4.4.0-19041-Microsoft
gyp ERR! command "/home/elephantatech/.nvm/versions/node/v10.19.0/bin/node" "/home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/elephantatech/.nvm/versions/node/v10.19.0/lib/node_modules/keytar
gyp ERR! node -v v10.19.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! keytar@5.4.0 install: `prebuild-install || node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the keytar@5.4.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

我需要帮助才能通过 WSL 使用 twilio-cli。直接 windows 很好,但对于某些脚本,我正在尝试与 WSL 一起使用。

它对我来说看起来已经安装好了,只是 keytar 失败了,这是一个可选的依赖项。由于 keytar 不可用,您可以使用环境变量来 store/access 凭据:https://www.twilio.com/docs/twilio-cli/general-usage#want-to-use-environment-variables-instead-of-creating-a-profile

我认为这是根本原因(从您的错误日志中提取):

No package 'libsecret-1' found

我遇到了同样的问题并通过安装 libsecret 修复了它,对于 debian/ubuntu 你可以 运行:

sudo apt-get install libsecret-1-dev

更多信息:https://github.com/atom/node-keytar#on-linux