Cli: [BUG] EXDEV: Cross-Device-Link nicht erlaubt, umbenennen

Erstellt am 17. Dez. 2019  ·  3Kommentare  ·  Quelle: npm/cli

Was warum

Der Versuch, npm-Pakete in Docker zu installieren, führt zu einem Fehler wie:

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'

Wie

Mein Dockerfile sieht so aus:

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

Seltsamerweise funktioniert der zweite Aufruf, wenn ich den Befehl npm install zweimal ausführe.

Bug

Hilfreichster Kommentar

In npm 7 "wird die gesamte Installer-Klasse nach @npmcli/arborist verschoben.": https://github.com/npm/cli/blob/latest/CHANGELOG.md#v700 -beta0-2020-08-04

Ich glaube, das Problem könnte darin liegen. Es scheint, dass es jetzt versucht, umzubenennen, anstatt es zu verschieben: https://github.com/npm/arborist/blob/main/lib/arborist/reify.js#L254

Was aussieht wie eine Regression der alten PR, die Sie verlinkt haben: https://github.com/npm/npm/pull/15901
Dass PR alle Umbenennungen durch Bewegungen ersetzt hat ("installieren: EXDEV-bewusste Bewegung verwenden statt umbenennen")

Alle 3 Kommentare

Wiedersehen dieser Oberfläche mit v7 auf Docker-Images (v7.0.3)

Scheint eine Regression von https://github.com/npm/npm/pull/15901 zu sein

Reproduktion:

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

In npm 7 "wird die gesamte Installer-Klasse nach @npmcli/arborist verschoben.": https://github.com/npm/cli/blob/latest/CHANGELOG.md#v700 -beta0-2020-08-04

Ich glaube, das Problem könnte darin liegen. Es scheint, dass es jetzt versucht, umzubenennen, anstatt es zu verschieben: https://github.com/npm/arborist/blob/main/lib/arborist/reify.js#L254

Was aussieht wie eine Regression der alten PR, die Sie verlinkt haben: https://github.com/npm/npm/pull/15901
Dass PR alle Umbenennungen durch Bewegungen ersetzt hat ("installieren: EXDEV-bewusste Bewegung verwenden statt umbenennen")

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen