Cli: [BUG] EXDEV:不允许跨设备链接,重命名

创建于 2019-12-17  ·  3评论  ·  资料来源: npm/cli

什么为什么

尝试在 Docker 中安装 npm 包会导致如下错误:

npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "-g" "install" "yuglify"
npm ERR! node v8.10.0
npm ERR! npm  v3.5.2
npm ERR! path /usr/local/lib/node_modules/yuglify
npm ERR! EXDEV: cross-device link not permitted, rename '/usr/local/lib/node_modules/yuglify' -> '/usr/local/lib/node_modules/.yuglify.DELETE'

如何

我的 Dockerfile 看起来像:

FROM ubuntu:18.04
ENV PYTHONUNBUFFERED 1
USER root
RUN apt-get -yq update && apt-get install -yq npm
CMD npm -g install yuglify

奇怪的是,如果我运行 npm install 命令两次,第二次调用会起作用。

最有用的评论

在 npm 7 中,“整个安装程序类都移到了@npmcli/arborist。”: https :

我相信问题可能出在那里。 看来它现在试图重命名而不是移动: https :

这看起来像是您链接的旧 PR 的回归: https :
该 PR 用移动替换了所有重命名(“安装:使用 EXDEV 感知移动而不是重命名”)

所有3条评论

使用 v7 on docker images (v7.0.3) 再次看到这个表面

似乎是https://github.com/npm/npm/pull/15901的回归

再生产:

docker run --rm mhart/alpine-node:15 npm install -g npm<strong i="6">@7</strong>

在 npm 7 中,“整个安装程序类都移到了@npmcli/arborist。”: https :

我相信问题可能出在那里。 看来它现在试图重命名而不是移动: https :

这看起来像是您链接的旧 PR 的回归: https :
该 PR 用移动替换了所有重命名(“安装:使用 EXDEV 感知移动而不是重命名”)

此页面是否有帮助?
0 / 5 - 0 等级