由于 ,我无法在 xenial 上以 root 身份解压档案Cannot mkdir: Permission denied
。
环境
- Ubuntu 18.04 Docker 容器
- 主机操作系统:macOS 但这可能不相关,我无法在其他主机操作系统上测试
- 从主机系统安装卷到
/tmp/folder
- Docker 命令:
docker run -ti --rm -v ``pwd``:/tmp/nodemcu-firmware ubuntu:18.04 /bin/bash
重现步骤
cd /tmp/nodemcu-firmware
mkdir cache && cd cache
apt-get update && apt-get install -y wget xz-utils
wget https://github.com/jmattsson/esp-toolchains/releases/download/linux-x86_64-20181106.0/toolchain-esp32-linux-x86_64-20181106.0.tar.xz
tar -xJf toolchain-esp32-linux-x86_64-20181106.0.tar.xz
解压失败,因为从存档中tar
创建了一个新文件夹esp32-linux-x86_64-20181106.0
,但它是只读的:dr-x------
。因此,解压所有后续(子)工件都会失败。
解压同一个 tarball外部这个挂载的 Docker 卷工作正常。这是谁的错?Docker 的错、Ubuntu 的错还是我的错?
更新 2019-07-31
根本原因是 tarball 中的奇怪权限。
$ tar -tvf toolchain-esp32-linux-x86_64-20181106.0.tar.xz|grep dr-
dr-xr-xr-x johny/johny 0 2018-11-06 02:07 esp32-linux-x86_64-20181106.0/
我不知道如何解决这个问题,但作者同意创建一个具有更新权限的新 tarball。