在ubuntu上安装npm模块给我一个错误

时间:2018-11-18 16:50:41

标签: node.js ubuntu npm

当我尝试安装一个名为Sharp的npm软件包时,出现以下错误。

sudo npm install -g sharp

> sharp@0.21.0 install /usr/local/lib/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.7.0/libvips-8.7.0-linux-x64.tar.gz
ERR! sharp EACCES: permission denied, open '/usr/local/lib/node_modules/sharp/19229-libvips-8.7.0-linux-x64.tar.gz'
ERR! sharp Please see http://sharp.pixelplumbing.com/page/install
gyp WARN EACCES user "root" does not have permission to access the dev dir "/home/areahints/.node-gyp/8.10.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/sharp/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error 
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/sharp/.node-gyp'
gyp ERR! System Linux 4.15.0-39-lowlatency
gyp ERR! command "/usr/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/sharp
gyp ERR! node -v v8.10.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sharp@0.21.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.21.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!     /home/areahints/.npm/_logs/2018-11-18T16_14_58_685Z-debug.log

在没有sudo的情况下运行相同的代码会引发不同的错误

npm install -g sharp
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR! 
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

我对node-expat,iconv和libxmljs有类似的问题。我尝试安装所有依赖项和开发依赖项,但都无济于事。

3 个答案:

答案 0 :(得分:1)

我也遇到了这个问题。 我可以通过以下命令解决它:

sudo npm install --unsafe-perm -g sharp

Reference.

答案 1 :(得分:0)

问题似乎出在您没有权限。

sudo chown -R areahints /home/areahints && sudo chmod -R 777 /home/areahints

对于表明您没有^

权限的任何目录重复此步骤
sudo apt-get update –fix-missing
sudo dpkg –configure -a
sudo apt-get install -f

这应该有助于修复损坏的软件包并安装缺少的依赖项^

sudo apt-get update
sudo apt-get upgrade
sudo apt-get update
sudo apt-get autoremove

这应该在安装任何东西之前以及在^

之后完成

您是从另一个发行版升级到18.04还是全新安装?我问这是因为升级时有时会发生冲突。最好是在发行新发行版时重新安装操作系统。

这是您在your other question上遇到的问题的根源

答案 2 :(得分:0)

sudo npm install --unsafe-perm = true --allow-root

例如:sudo npm install -g cordova-res --unsafe-perm = true --allow-root