いやー

なかなか困ったことに遭遇しましたよ。

M1 Mac mini で、nodejs 環境を構築する為に、colima + Docker で、ubuntu 24.04 を展開していたんですが、node環境の構築にどうしても失敗するんですよね。

 

hogehoge@main:~$ nvm install --lts
Installing latest LTS version.
Downloading and installing node v24.15.0...
Downloading https://nodejs.org/dist/v24.15.0/node-v24.15.0-linux-arm64.tar.xz...
################################################################################################################################# 100.0%
Computing checksum with sha256sum
Checksums matched!
tar: bin/npm: open 不能: 許可がありません
tar: bin/npx: open 不能: 許可がありません
tar: bin/corepack: open 不能: 許可がありません
tar: 前のエラーにより失敗ステータスで終了します
Now using node v24.15.0
Installing npm...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  3755  100  3755    0     0   8954      0 --:--:-- --:--:-- --:--:--  8954
failed to get tarball url for npm/0.2.19

 

こんな風に、展開すると、tar が、謎のエラーを吐くんですよね。

何事と思って確認すると、こんなことになっているんですよ。

hogehoge@main:~/.nvm/versions/node/v24.15.0/bin$ ls -la
合計 131372
drwxr-xr-x  6 hogege hogege       192  4月 15 13:59 .
drwxr-xr-x  9 hogege hogege       288  5月  3 09:22 ..
----------? 1 hogege hogege         0  5月  3 09:22 corepack
-rwxr-xr-x  1 hogege hogege 120702160  4月 15 13:59 node
----------? 1 hogege hogege         0  5月  3 09:22 npm
----------? 1 hogege hogege         0  5月  3 09:22 npx

 

本来、corepack npm npx は、シンボリックリンクになるんですが、展開に失敗しちゃってるんですね。

lrwxrwxrwx 1 hogege hogege        45 10月 28  2025 corepack -> ../lib/node_modules/corepack/dist/corepack.js
lrwxrwxrwx 1 hogege hogege        38 10月 28  2025 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxrwxrwx 1 hogege hogege        38 10月 28  2025 npx -> ../lib/node_modules/npm/bin/npx-cli.js

 

原因を特定するのに時間がかかってしまったんですが、わかりましたよ。

ご報告します。

これは、MacOS で、Dockerを起動する時に、ユーザー領域をホストマウントしているんですが、これを行って、この領域で、tar展開すると、シンボリックリンクの展開に失敗するようですね。

services: 
 base:
  build:
   context: .
   dockerfile: Dockerfile
  ports:
    - "0.0.0.0:8522:22"
  command: /sbin/init
  hostname: main
  tty: true
  privileged: true
  environment:
   - DISPLAY=host.docker.internal:0
  volumes:
   - ./vdisk/root:/root
   - ./vdisk/hogehoge:/home/hogehoge

networks:
 app-tier:
  driver: host

 

なんとも、レアな問題ですかね。

なので、/tmpとかで展開すると問題無く展開可能ですね。

ということで、これを解決する方法は、今のとこ無いと思うので、自分でシンボルリックリンクを作成しなおすか、ホスト共有しないかですね。

ちなみに、RaspberryPI のように Linuxホストの場合、こんなことは起きませんでしたよ。

 

 

 

 

 

 

 

 

Joomla templates by a4joomla