web-dev-qa-db-ja.com

tar EPERM:操作は許可されていません、futime

node:Alpine Dockerイメージ。 rootユーザーとしてイメージを実行すると問題はありませんが、別のユーザーを使用してnpm installパッケージ抽出から多くのエラーを受け取ります:

npm WARN tar EPERM: operation not permitted, futime

5000のWARNメッセージの後、npmインストールログにこれが表示されます。

npm timing action:extract Completed in 276816ms
npm timing action:finalize Completed in 172ms

さらに、npmインストールプロセスが完全にハングアップします。

誰かがこのエラーを知っていて、それを回避する方法を知っていますか?

7
Ildelian

プロジェクトをWindowsからLinuxに移行した後、私はWindows Linuxサブシステムでもこれを行いました。私はそれを修正することに失敗しました

rm -rf node_modules
rm package-lock.json
npm cache clear --force
chown -R username:username *
npm install

これはどれもうまくいきませんでした。


futimeエラーは、npmおよびノー​​ドモジュールで使用される.tarファイルを展開するために必要なアクションを実行するための十分な権限がないtarユーティリティが原因で発生します。

Alpine Linuxの場合は、ルートとして展開してからファイルをchownするか、適切な権限を持つユーザーとして所有されるフォルダーを作成する必要があります。

Linux用のWindowsサブシステムの場合、/mnt/cの下のフォルダーでは機能しないようで、権限の変更を拒否します。 Linuxでそれらを設定しても効果はなく、Windowsでそれらを設定しても違いはないようです-'Everyone'の原則に完全な制御を追加してもこれは解決されません。


アルパインの(ありそうな)解:

Sudo mkdir project_folder
Sudo chown username project_folder
cd project_folder
...  

WSLのソリューション:

フォルダーをWSLフォルダーに移動します。 mv project ~\権限が正しく機能するようにします。

1
antonyh

このコマンドで試してみてください:

npm install --user
0

エレガントなソリューションではありませんが、動作します...アプリケーションディレクトリで:

rm -rf node_modules
mkdir /home/your_user/node_modules
ln -s /home/your_user/node_modules node_modules
npm install
0
Julien Heroux