【问题标题】:permission denied while trying to create leading directories of git clone尝试创建 git clone 的前导目录时权限被拒绝
【发布时间】:2018-08-07 14:44:31
【问题描述】:

每当我尝试在我的应用程序上运行 npm install 时,都会收到以下错误:

Eliyas-MacBook-Pro:app-name root# npm install
npm ERR! code 128
npm ERR! Command failed: /usr/bin/git clone -q https://github.com/mapsplugin/cordova-plugin-googlemaps-sdk.git /var/root/.npm/_cacache/tmp/git-clone-31357d5e
npm ERR! fatal: could not create leading directories of '/var/root/.npm/_cacache/tmp/git-clone-31357d5e': Permission denied
npm ERR! 

npm ERR! A complete log of this run can be found in:
npm ERR!     /var/root/.npm/_logs/2018-02-27T20_18_34_759Z-debug.log

这是我检查.npm文件夹的权限时得到的:

drwxrwxrwx   6 root  staff  192 Feb 27 22:11 .npm

我的环境:

  • git 版本 2.14.3 (Apple Git-98)
  • 节点 v9.4.0
  • npm v5.4.0

【问题讨论】:

  • 您是否尝试检查所有这些目录的权限? (/var/root/.npm/_cacache/tmp/git-clone-31357d5e)
  • 哪个用户安装了 npm?
  • @Omer 我找不到这个文件夹。可能是因为我没有权限。即使我正在使用 sudo 运行。
  • @zee 我该如何检查?
  • 尝试 var,然后是 /var/root,然后是 /var/root/.npm/ 等等。您看到的最后一个目录是什么?这条链中的哪一个是第一个不存在的?尝试在每一步检查权限,以了解哪个目录的权限有问题

标签: git npm


【解决方案1】:

我在 Jenkins 服务器上的已安装卷上运行 npm install 时遇到该错误。

在我的情况下,问题是由这个错误引起的: Failed to install npm package from git in docker since v6.11.0 这里也提到了: Cannot install packages from GitHub when mounting directory (node:12-slim)

该错误已在 npm 版本 v6.13.6

中得到修复

我使用节点 12.13.0 并升级到 >14 版本(其中包含 npm 版本 v6.13.6)解决了我的问题。

【讨论】:

    【解决方案2】:

    可能需要root权限。

    sudo npm install
    

    【讨论】:

      【解决方案3】:

      在这种情况下,我建议您从 git repo 下载 master.zip 文件,然后安装它。

      $> wget https://github.com/mapsplugin/cordova-plugin-googlemaps-sdk/archive/master.zip
      
      $> unzip master.zip
      
      $> mv master cordova-plugin-googlemaps-sdk
      
      $> cd (your project dir)
      
      $> cordova plugin add (path to)/cordova-plugin-googlemaps-sdk
      
      $> cordova plugin add cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="..."  --variable API_KEY_FOR_IOS="..." 
      

      (更新)

      问题可能是 git 命令版本过时了。 为了升级 git 命令,你可以选择:

      (option 1)
      $> brew upgrade git
      
      (option 2)
      Install the latest git command from here
      https://git-scm.com/
      

      【讨论】:

      • 推理?为什么会这样?
      • 不知道是什么原因,但肯定是你的npm或者git命令有问题,比如git命令版本老了。
      • 此解决方案可能有效,但它仅解决特定的依赖关系。如果是关于 x 依赖,这个解决方案太复杂了,所以我不能接受这个答案。
      • 正如我所说,这是您的环境问题。您至少应该尝试更新 git 命令。
      • 您能否将此解决方案添加到您的答案中,以便我将其标记为正确答案?
      猜你喜欢
      • 2011-12-15
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 2021-11-09
      • 1970-01-01
      • 2015-12-25
      相关资源
      最近更新 更多