安装 sharp 时出现问题

some thing wrong when install sharp

当我尝试安装 nodebb 并使用命令 "nodebb setup" 初始化它时,以及 然后自动安装第三方包,总是运行报错,报错信息如下。

是的,总是这样sharp,我讨厌那样。

我不知道为什么没有权限,我是 root 角色。 我试着自己 mkdir 但 npm 删除了它然后告诉我,"permission denied",对不起?????

我尝试用npm install sharp --ignore-scripts安装sharp,自己安装依赖。通过这种方式,我可以 运行 nodebb 服务器,但是当我尝试从浏览器上传图像并锐化它时,nodebb 出现如下错误

这是一些关于安装的错误信息:

[root@bbs NodeBB]# npm install sharp
> sharp@0.23.0 install /home/bbs/NodeBB/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
info sharp Using cached /root/.npm/_libvips/libvips-8.8.1-linux-x64.tar.gz
ERR! sharp EACCES: permission denied, mkdir '/home/bbs/NodeBB/node_modules/sharp/vendor'
info sharp Attempting to build from source via node-gyp but this may fail due to the above error
info sharp Please see https://sharp.pixelplumbing.com/page/install for required dependencies
gyp ERR! configure error 
gyp ERR! stack Error: EACCES: permission denied, mkdir '/home/bbs/NodeBB/node_modules/sharp/build'
gyp ERR! System Linux 3.10.0-957.el7.x86_64
gyp ERR! command "/usr/share/node-v12.9.1-linux-x64/bin/node" "/usr/share/node-v12.9.1-linux-x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/bbs/NodeBB/node_modules/sharp
gyp ERR! node -v v12.9.1
gyp ERR! node-gyp -v v5.0.3
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sharp@0.23.0 install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sharp@0.23.0 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!     /root/.npm/_logs/2019-09-11T06_23_30_748Z-debug.log

这是上传图片时的一些错误信息:

Something went wrong installing the "sharp" module

Cannot find module '../build/Release/sharp.node'
Require stack:
- /home/bbs/NodeBB/node_modules/sharp/lib/constructor.js
- /home/bbs/NodeBB/node_modules/sharp/lib/index.js
- /home/bbs/NodeBB/src/file.js
- /home/bbs/NodeBB/require-main.js
- /home/bbs/NodeBB/app.js

- Remove the "node_modules/sharp" directory, run "npm install" and look for errors
- Consult the installation documentation at https://sharp.pixelplumbing.com/en/stable/install/
- Search for this error at https://github.com/lovell/sharp/issues

我解决了,不知道为什么

通过此命令:sudo chown -R $(whoami) node_modules/

我一直在用root,很好用

如果你和我住在同一个国家,那么最大的原因就是GFW。 我曾经遇到过和你一样的问题。 这个你可以试试修改npm镜像源

我在将 Node 从 v10 升级到 v12 后遇到了这个错误。我的项目仍然使用 v10 时安装的 node_modules。所以我猜他们的安装方式与另一个 Node 版本不同。以下帮助了我:

rm -rf node_modules
rm package-lock.json
npm install

现在每个安装的节点模块在安装过程中都使用最新的最新节点版本。

我在 sharp 安装时遇到了同样的错误,试图安装 NodeBB 1.12.1。问题似乎出在过时的尖锐版本上。 我在 package.json 中解决了它更正所需的尖锐版本。 这是解决方案:

  • 克隆存储库
    git clone https://github.com/NodeBB/NodeBB.git nodebb
  • 结帐到所需的分支
    git checkout v1.12.1
  • 转到 ~/nodebb/install 并在 package.json 中将所需的锐化版本更改为 0.22.1
    {"dependencies: {
    ...
           "sharp": "0.24.0",
    ...
    }
  • 现在,开始设置过程
    ./nodebb setup

现在一切正常。