Cli: [バグ] 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コマンドを2回実行すると、2番目の呼び出しが機能します。

Bug

最も参考になるコメント

npm 7では、「インストーラークラス全体が@ npmcli / arboristに移動されます。」: //github.com/npm/cli/blob/latest/CHANGELOG.md#v700 -beta0-2020-08-04

問題はそこにあるのではないかと思います。 今すぐ移動するのではなく、名前を変更しようとしているようです: https

リンクした古いPRの回帰のように見えます: https
そのPRは、すべての名前変更を移動に置き換えました(「インストール:名前変更の代わりにEXDEV対応の移動を使用する」)

全てのコメント3件

Dockerイメージ(v7.0.3)でv7を使用してこのサーフェスを再度表示する

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に移動されます。」: //github.com/npm/cli/blob/latest/CHANGELOG.md#v700 -beta0-2020-08-04

問題はそこにあるのではないかと思います。 今すぐ移動するのではなく、名前を変更しようとしているようです: https

リンクした古いPRの回帰のように見えます: https
そのPRは、すべての名前変更を移動に置き換えました(「インストール:名前変更の代わりにEXDEV対応の移動を使用する」)

このページは役に立ちましたか?
0 / 5 - 0 評価