Ionic 2 - 错误:EACCES:在 Ubuntu 12.04LTS 上安装时权限被拒绝
Posted
技术标签:
【中文标题】Ionic 2 - 错误:EACCES:在 Ubuntu 12.04LTS 上安装时权限被拒绝【英文标题】:Ionic 2 - Error: EACCES: permission denied in installation on Ubuntu 12.04LTS 【发布时间】:2017-03-13 11:00:50 【问题描述】:按照http://ionicframework.com/docs/v2/getting-started/installation/ 中的说明在 ubuntu 12.04 LTS 上安装 ionic 时出现以下错误
使用的命令
安装 nodejs 6.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
[~]
按照说明安装离子
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/管理员身份再次运行此命令。
解决这个问题的正确方法是什么?
Windows 10 上的类似问题here
【问题讨论】:
【参考方案1】:试试sudo
:
sudo npm install -g ionic cordova
【讨论】:
这是推荐的方法吗?它有任何副作用吗?离子文档似乎没有这样说。 @Antonis - 你能添加参考/原因运行这个sudo
Ionic does not recommend using sudo 因为“它会导致进一步的并发症。”【参考方案2】:
不要使用sudo,长期下去会带来更多问题。以下指南完美地解释了它:(它适用于 OSX,但应用相同)
https://johnpapa.net/how-to-use-npm-global-without-sudo-on-osx/
【讨论】:
+1 供参考。从上面的文章来看,这似乎需要 npm 人员长期解决。【参考方案3】:尝试了来自不同参考的不同建议。
建议 1 来自 here - 没有用
这仍然给出了同样的错误EACCES: permission denied
建议 2 - 有效
cookbook$ npm config get prefix
/usr
[~]
cookbook$
所以这是个问题,npm 的建议是将 npm 的默认目录更改为另一个目录
步骤如下
为全局安装创建一个目录:
mkdir ~/.npm-global
配置 npm 以使用新的目录路径:
npm config set prefix '~/.npm-global'
打开或创建一个 ~/.profile 文件并添加以下行:
export PATH=~/.npm-global/bin:$PATH
回到命令行,更新你的系统变量:
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$
【讨论】:
建议 2 中的替代方法也可以正常工作。在 GNU/Linux 中,只需在~/.bashrc
文件中添加 NPM_CONFIG_PREFIX=~/.npm-global
并忽略步骤 2 以在建议 2 中结束。以上是关于Ionic 2 - 错误:EACCES:在 Ubuntu 12.04LTS 上安装时权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
ionic platform add ios, Error:spawn EACCES
ionic 打包遇到"Error: spawn EACCES".