Ionic 2 - Error: EACCES: permission denied in installation on Ubuntu 12.04LTS

Ionic 2 - Error: EACCES: permission denied in installation on Ubuntu 12.04LTS

按照 http://ionicframework.com/docs/v2/getting-started/installation/

中的说明在 ubuntu 12.04 LTS 上安装 ionic 时出现以下错误

使用的命令

安装nodejs6.x

cookbook$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
cookbook$ sudo apt-get install -y nodejs
cookbook$ node -v
v6.9.1
[~]
cookbook$ npm -v
3.10.8
[~]

按照说明安装 ionic

cookbook$ npm install -g ionic cordova



+-- readable-stream@1.0.34 
| +-- core-util-is@1.0.2 
| +-- inherits@2.0.3 
| +-- isarray@0.0.1 
| `-- string_decoder@0.10.31 
`-- setimmediate@1.0.5 

npm ERR! Linux 3.8.0-29-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "ionic" "cordova"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! path /usr/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!  { Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/cookbook/npm-debug.log
[~]

错误消息建议再次尝试 运行 此命令作为 root/Administrator。

解决这个问题的正确方法是什么?

类似问题 windows 10 here

试试 sudo:

sudo npm install -g ionic cordova

不要用sudo,长期下来会带来更多问题。以下指南对其进行了完美解释:(它适用于 OSX 但同样适用)

https://johnpapa.net/how-to-use-npm-global-without-sudo-on-osx/

尝试了不同参考文献的不同建议。

来自 here 的建议 1 - 无效

这仍然给出同样的错误EACCES: permission denied

来自 here 的建议 2 - 有效

cookbook$  npm config get prefix
/usr
[~]
cookbook$ 

所以这是个问题,npm 的建议是将 npm 的默认目录更改为另一个目录

步骤如下

  1. 为全局安装创建一个目录:

    mkdir ~/.npm-global

  2. 配置 npm 以使用新的目录路径:

    npm config set prefix '~/.npm-global'

  3. 打开或创建一个 ~/.profile 文件并添加此行:

    export PATH=~/.npm-global/bin:$PATH

  4. 返回命令行,更新系统变量:

    source ~/.profile

使用 cookbook$ npm install -g ionic cordova 完成离子安装后没有任何错误。

cookbook$ ionic -v
--------------------------------
cordova -v******************************************************
 Dependency warning - for the CLI to run correctly,      
 it is highly recommended to install/upgrade the following:     

 Please install your Cordova CLI to version  >=4.2.0 `npm install -g cordova`

******************************************************
2.1.4

[~]
cookbook$ cordova -v
? May Cordova anonymously report usage statistics to improve the tool over time? Yes

Thanks for opting into telemetry to help us improve cordova.
6.4.0
[~]
cookbook$