无法安装模块

时间:2019-01-13 21:06:17

标签: node.js ffmpeg

我正在尝试安装ffmpeg-binaries,它在本地完美运行,但是当我去hiroku时,它开始说他找不到模块。

这是针对Discord机器人的,它运行的node.js我试图与其他ffmpeg的npm一起安装,但仅在不实现ffmpeg本身的情况下有效

安装节点模块(package.json +包锁)

   > lzma-native@3.0.8 install /tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native
   > node-pre-gyp install --fallback-to-build && node node_modules/rimraf/bin.js build

   node-pre-gyp ERR! Tried to download(404): https://node-pre-gyp.addaleax.net/lzma-native/lzma_native-v3.0.8-node-v67-linux-x64.tar.gz 
   node-pre-gyp ERR! Pre-built binaries not found for lzma-native@3.0.8 and node@11.6.0 (node-v67 ABI, glibc) (falling back to source compile with node-gyp) 
   node-pre-gyp ERR! Tried to download(undefined): https://node-pre-gyp.addaleax.net/lzma-native/lzma_native-v3.0.8-node-v67-linux-x64.tar.gz 
   node-pre-gyp ERR! Pre-built binaries not found for lzma-native@3.0.8 and node@11.6.0 (node-v67 ABI, glibc) (falling back to source compile with node-gyp) 
   gyp: Call to 'sh liblzma-config.sh "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/build" "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/deps/xz-5.2.3.tar.bz2"' 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 (/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:345:16)
   gyp ERR! stack     at ChildProcess.emit (events.js:188:13)
   gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:254:12)
   gyp ERR! System Linux 4.4.0-1031-aws
   gyp ERR! command "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/bin/node" "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/binding-v3.0.8-node-v67-linux-x64/lzma_native.node" "--module_name=lzma_native" "--module_path=/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/binding-v3.0.8-node-v67-linux-x64"
   gyp ERR! cwd /tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native
   gyp ERR! node -v v11.6.0
   gyp ERR! node-gyp -v v3.8.0
   gyp ERR! not ok 
   node-pre-gyp ERR! build error 
   node-pre-gyp ERR! stack Error: Failed to execute '/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/bin/node /tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/binding-v3.0.8-node-v67-linux-x64/lzma_native.node --module_name=lzma_native --module_path=/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/binding-v3.0.8-node-v67-linux-x64' (1)
   node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
   node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:188:13)
   node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:978:16)
   node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)
   node-pre-gyp ERR! System Linux 4.4.0-1031-aws
   node-pre-gyp ERR! command "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/bin/node" "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
   node-pre-gyp ERR! cwd /tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native
   node-pre-gyp ERR! node -v v11.6.0
   node-pre-gyp ERR! node-pre-gyp -v v0.6.39
   node-pre-gyp ERR! not ok 
   Failed to execute '/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/bin/node /tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/binding-v3.0.8-node-v67-linux-x64/lzma_native.node --module_name=lzma_native --module_path=/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/binding-v3.0.8-node-v67-linux-x64' (1)
   gyp: Call to 'sh liblzma-config.sh "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/build" "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/deps/xz-5.2.3.tar.bz2"' 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 (/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:345:16)
   gyp ERR! stack     at ChildProcess.emit (events.js:188:13)
   gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:254:12)
   gyp ERR! System Linux 4.4.0-1031-aws
   gyp ERR! command "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/bin/node" "/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/binding-v3.0.8-node-v67-linux-x64/lzma_native.node" "--module_name=lzma_native" "--module_path=/tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native/binding-v3.0.8-node-v67-linux-x64"
   gyp ERR! cwd /tmp/build_681c54b9c6315cfb1c9672e8da7d4803/node_modules/decompress-tarxz/node_modules/lzma-native
   gyp ERR! node -v v11.6.0
   gyp ERR! node-gyp -v v3.8.0
   gyp ERR! not ok 
   npm ERR! code ELIFECYCLE
   npm ERR! errno 1
   npm ERR! lzma-native@3.0.8 install: `node-pre-gyp install --fallback-to-build && node node_modules/rimraf/bin.js build`
   npm ERR! Exit status 1
   npm ERR! 
   npm ERR! Failed at the lzma-native@3.0.8 install script.
   npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

   npm ERR! A complete log of this run can be found in:
   npm ERR!     /tmp/npmcache.85YKx/_logs/2019-01-13T20_55_48_321Z-debug.log

1 个答案:

答案 0 :(得分:1)

啊,臭名昭著的node-pre-gyp install --fallback-to-build(负责部署失败)。在mapbox/node-pre-gyp的Github上,在此确切命令上有70 different issues引用错误! node-pre-gyp是要安装的非常容易出错的程序包-尤其是在涉及跨OS行为时-因此某些解决方案可能对您有用,而有些则无法。


this issue中,Nicolas Noble(GRPC软件包的作者)指出,此问题源于NodeJS和GRPC的不兼容版本。检查您的NodeJS的本地版本是否与Heroku上运行的版本兼容,否则请检查Heroku's guide,以指定Node版本。


this issue中,takase1121用户的错误日志与您非常相似,如下所示:

> lzma-native@4.0.2 install [...]Node.js [...]node_modules/lzma-native
> node-pre-gyp install --fallback-to-build && rimraf build

[...]
node-pre-gyp WARN Tried to download(404): [...]
[...]

在此问题中,人们还提到了ffmpeg库,但是该库仍处于开放状态。


最后在this issue中,OceanHorn用户执行了(几乎)与您工作正常完全相同的命令!

> lzma-native@3.0.2 install /Users/OceanHorn/SourceTree/mmms/node_modules/lzma-native
> node-pre-gyp install --fallback-to-build && node node_modules/rimraf/bin.js build

[lzma-native] Success [...]

一个微小的区别:lzma-native的版本是3.0.2,不像您的3.0.8-使用此版本的lzma-native可以解决您的问题。由于只是补丁版本差异,因此您应该能够使用3.0.2版,而无需更改代码。