Cli: [BUG] EXDEV: ссылка на разные устройства не разрешена, переименовать

Созданный на 17 дек. 2019  ·  3Комментарии  ·  Источник: npm/cli

Что почему

Попытка установить пакеты npm в Docker приводит к ошибке, например:

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://github.com/npm/cli/blob/latest/CHANGELOG.md#v700 -beta0-2020-08-04

Я считаю, что проблема может быть в этом. Похоже, теперь он пытается переименовать, а не переместить: https://github.com/npm/arborist/blob/main/lib/arborist/reify.js#L254

Это похоже на регресс того старого PR, который вы связали: https://github.com/npm/npm/pull/15901
Этот PR заменил все переименования ходами («установка: использовать ход с учетом EXDEV вместо переименования»)

Все 3 Комментарий

Увидеть эту поверхность снова с v7 на образах докеров (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://github.com/npm/cli/blob/latest/CHANGELOG.md#v700 -beta0-2020-08-04

Я считаю, что проблема может быть в этом. Похоже, теперь он пытается переименовать, а не переместить: https://github.com/npm/arborist/blob/main/lib/arborist/reify.js#L254

Это похоже на регресс того старого PR, который вы связали: https://github.com/npm/npm/pull/15901
Этот PR заменил все переименования ходами («установка: использовать ход с учетом EXDEV вместо переименования»)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги