首页 > 解决方案 > 错误:EACCES:权限被拒绝,取消链接 - 运行时 $ ionic start

问题描述

我刚刚开始使用 ionic,现在我在运行 ionic 的早期阶段面临着一个障碍。

我正在使用操作系统:Linux Mint 18 Cinnamon 64 位

节点版本:v10.0.0(从 NVM 安装,无需 root 访问)

NPM 版本:5.6.0(从 NVM 安装,无需 root 访问)

我正在关注本教程: https ://coursetro.com/posts/code/36/Installing-Ionic-2-&-Starting-a-Project

我通过以下方式安装离子:

$ npm install -g ionic cordova

它返回这个:

home/brian/.nvm/versions/node/v10.0.0/bin/cordova -> /home/brian/.nvm/versions/node/v10.0.0/lib/node_modules/cordova/bin/cordova
/home/brian/.nvm/versions/node/v10.0.0/bin/ionic -> /home/brian/.nvm/versions/node/v10.0.0/lib/node_modules/ionic/bin/ionic
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.3 (node_modules/ionic/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.3: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“x64”})

    cordova@8.0.0
    ionic@3.20.0
    added 677 packages in 16.679s

然后我检查了 $ ionic -v 是否安装了 cordova 和 ionic ,它返回

3.20.0

我想这意味着尽管有 WARN 消息,仍安装了离子。

然后我尝试运行教程的下一步:

$ ionic start firstProject blank

然后出现此错误:

? The directory firstProject contains file(s) that could conflict. Would you like to overwrite the directory with this new project? Yes
:heavy_multiplication_x: Creating directory ./firstProject - failed!
Error: EACCES: permission denied, unlink ‘/home/brian/firstProject/.editorconfig’

我试图通过以下方式授予该路径的权限:

$ sudo chown -R brian /home/brian/firstProject/.editorconfig

但是,当我运行 $ ionic start firstProject blank 时,同样的错误仍然存​​在

我也尝试过使用 root $ sudo ionic start firstProject 空白运行命令,但它返回

sudo: ionic: command not found.

我试图安装没有全局属性的 ionic,但结果是它无法安装,因为 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.3

有没有人能够解决这种问题?任何帮助,将不胜感激。谢谢!

标签: node.jscordovaionic-frameworknpm

解决方案


感谢 Nidhin 的回复,我刚刚解决了这个问题。

我意识到文件夹 firstProject 已被锁定。所以我的建议如果你想使用 node 和 npm,最好使用 NVM 安装它,这样你就不要使用 root 访问安装它


让我告诉如何重新创建问题

因此,在我从 NVM(节点版本管理器)实际安装 Node 和 NPM 之前,我首先使用 sudo(root 访问权限)使用此命令从包管理器安装它(我遵循此参考):

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - 
$ sudo apt-get install -y nodejs

然后导致我所有以下 npm 命令都应使用 sudo (用于 root 访问)。

因此,当我运行此命令时(遵循本教程):

$ npm install -g ionic cordova

我无法安装它:

npm WARN checkPermissions Missing write access to /usr/lib/node_modules

我需要使用 root 访问权限来安装它:

$ sudo npm install -g ionic cordova

然后,这使得 ionic 和 cordova 始终以 root 访问权限运行——我认为你应该避免它!

所以从这里继续,我按照教程运行下一个命令:

$ ionic start firstProject blank

然后使文件夹 /firstProject/ 需要 root 访问权限(见附图)。并且继续使用 sudo 并不是一个好主意,因为有时 ionic 在运行它的进程时会运行另一个命令。 文件夹锁定

总之,使用 sudo 安装 Node 和 NPM 并不是一个好主意。我还不知道是否有使用 sudo 的充分理由,如果您知道原因,请回复评论。


所以按照我的情况,

我实际上已经正确地做到了:

  1. 从 NVM 安装 Node 和 NPM
  2. 在没有 sudo 的情况下安装 ionic 和 cordova(root 访问权限)
  3. 只需运行 ionic start 命令,例如 ionic start firstProject blank;但首先确保不存在同名的锁定文件夹(firstProject)。

我希望它有助于解决您的类似问题。


推荐阅读