LoginSignup
2
1

More than 1 year has passed since last update.

【Alpine】tar で「xz: Cannot exec: No such file or directory」エラーが解凍・展開すると返ってくる

Last updated at Posted at 2021-07-20

Alpine Linux で .tar.zx が解凍・展開できない

Docker の Alpine イメージに最新版の shellcheck をインストールしようとしました。しかし、ダウンロードした .tar.zx 形式のアーカイブ・ファイルを解凍・展開しようとすると No such file or directory エラーが出ます。でも、ファイルは確かにあるのです。いや、本当に。

TL; DR (今北産業)

  1. xz コマンドが入っていないので No such file or directory と叱られます。
  2. xz コマンドが入っていないので、当然 exec(実行)できないのでエラーになります。
  3. apk add --no-cache xz でインストールします。(xz のスペルに注意)

TS; DR xz-utils なんてなかった)

tarも入ってる
$ which tar
/bin/tar
エラー内容の例
#8 0.467 Install shellcheck
#8 0.471 TEMP PATH: /tmp/tmp.mnPaFm TEMP FILE: /tmp/tmp.mnPaFm/shellcheck-latest.linux.x86_64.tar.xz
#8 0.485 Connecting to github.com (xxx.xxx.xxx.xxx:xxx)
#8 0.814 Connecting to github-releases.githubusercontent.com (xxx.xxx.xxx.xxx:xxx)
#8 1.183 saving to '/tmp/tmp.mnPaFm/shellcheck-latest.linux.x86_64.tar.xz'
#8 1.386 shellcheck-latest.li 100% |********************************| 1350k  0:00:00 ETA
#8 1.386 '/tmp/tmp.mnPaFm/shellcheck-latest.linux.x86_64.tar.xz' saved
#8 1.389 tar (child): xz: Cannot exec: No such file or directory // <- ここ
#8 1.389 tar (child): Error is not recoverable: exiting now
#8 1.390 tar: Child returned status 2
#8 1.390 tar: Error is not recoverable: exiting now

よく確認もせず apk add xz-utils したら、そんなパッケージはないと叱られます。「んなこたーない」と、Alpine 本家のパッケージ一覧を検索したら出て来ました。xz だけで良かった。

  • xz | edge | Packages @ pkgs.alpinelinux.org
apk add --no-cache xz

"alpine" tar xz: Cannot exec: No such file or directory」でググってaptapt-get の情報ばかりで、Alpine の情報がすぐに出てこなかったので、自分のググラビリティとして。

おまけ (shellcheck を Alpine Docker に入れるワンライナー)

shellcheckをAlpineのDockerにインストールするワンライナー
RUN echo "Install shellcheck" \
    && name_file_arch="shellcheck-latest.linux.$(uname -m).tar.xz" \
    && url_download="https://github.com/koalaman/shellcheck/releases/download/latest/${name_file_arch}" \
    && path_dir_tmp=$(mktemp -d) \
    && path_file_arch="${path_dir_tmp}/${name_file_arch}" \
    && wget -P "${path_dir_tmp}" "$url_download" \
    && tar x -v -f "$path_file_arch" -C "$path_dir_tmp" \
    && cp "${path_dir_tmp}/shellcheck-latest/shellcheck" "${GOPATH:?Undefined}/bin/shellcheck" \
    && shellcheck --version \
    && rm -rf "${path_dir_tmp:?Undefined}"
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1