我正在安装 ONOS 并遵循本指南:https://wiki.onosproject.org/display/ONOS/Developer+Quick+Start
我执行了命令
sudo bazel build onos
这将编译并汇编可安装的 onos.tar.gz,它位于 bazel-bin 目录中。
但我收到以下错误:
tar: apache-karaf-4.2.6/examples/karaf-war-example: Cannot change ownership to uid 1001, gid 1001: Invalid argument
我知道有些人在此页面解决了这个问题,它与 CIFS 有关:https://www.krenger.ch/blog/linux-tar-cannot-change-ownership-to-permission-denied/
他们在命令 tar 中使用了参数 --no-same-owner
# tar xzf $INPUT_FOLDER/archive.tar.gz --no-same-owner -C /mnt/test-nas/[..]
问题是,在我的例子中,tar 由 bazel 使用,我没有从超级用户调用 tar,bazel 正在使用 tar 并且失败了。我怎样才能解决这个问题 ?
答案1
使用 uid/gid 将用户/组添加到系统可能会解决您的问题。改名富巴巴泽尔或其他什么
添加群组富巴与 gid 1001
sudo groupadd -g 1001 foobar
添加用户富巴uid 1001 没有主目录
sudo useradd -M -u 1001 -g 1001 foobar
答案2
尝试添加--no-same-owner
到正在运行的脚本中tar
:
- 编辑包脚本:
vim /opt/onos/tools/package/onos-prep-karaf
- 将第 22 行更改为:
tar xf $KARAF_TAR --no-same-owner
然后运行
sudo bazel build onos
再次。
答案3
从那时起你一定已经找到了解决方案,但是对于那些从 Onos 开始的人(像我一样):如果使用 bazel 安装开发版本,则必须使用 ubuntu 桌面(尝试使用 ubuntu 20,没问题)。使用 ubuntu 服务器会导致此错误。它写在文档中,但我第一次读得不好:D