开源改变世界

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363

推推 grbl 3年前 (2023-01-30) 127次浏览
关闭
rodw-au 打开了这个问题 2021 年 11 月 9 日 · 14条评论
关闭

昨天更新后,在 master 中构建 debs 失败并出现权限问题#1363

rodw-au 打开了这个问题 2021 年 11 月 9 日 · 14条评论

注释

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
罗德奥 评论了 2021 年 11 月 9 日  

以下是我重现该问题所遵循的步骤:

  1. cd ./src git pull
  2. 光盘..
  3. dpkg-构建包-b -uc

这是我期望发生的事情:

debs 将像昨天一样构建
## 这是发生的事情:

使用常规前缀执行常规安装,但在 debian 文件夹
下 DESTDIR=/home/plasma2/linuxcnc-dev/debian/linuxcnc-uspace /usr/bin/make -C src install
make[2]: Entering directory ‘/home/plasma2/ linuxcnc-dev/src’
emc/Submakefile:4: 警告:覆盖目标 ‘../include/linuxcnc.h’ 的配方
emc/Submakefile:4: 警告:忽略目标 ‘../include/linuxcnc.h 的旧配方’
install -o root -d -m 0755 /home/plasma2/linuxcnc-dev/debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/linuxcnc
/home/plasma2/linuxcnc-dev/debian/linuxcnc-uspace/usr /bin
/home/plasma2/linuxcnc-dev/debian/linuxcnc-uspace/etc/linuxcnc
安装:无法更改“/home/plasma2/linuxcnc-dev/debian/linuxcnc-uspace/usr/lib/linuxcnc/modules/linuxcnc”的所有者和权限:不允许操作
安装:无法更改“/home/”的所有者和权限plasma2/linuxcnc-dev/debian/linuxcnc-uspace/usr/bin’:不允许
安装的操作:无法更改’/home/plasma2/linuxcnc-dev/debian/linuxcnc-uspace/etc/linuxcnc’的所有者和权限:操作不允许
make[2]: *** [Makefile:798: install-kernel-dep] Error 1
make[2]: Leaving directory ‘/home/plasma2/linuxcnc-dev/src’
make[1]: *** [debian/rules:71: override_dh_auto_install] Error 2
make[1]: Leaving directory ‘/home/plasma2/linuxcnc-dev’
make: *** [debian/rules:39: binary] 错误 2
dpkg-buildpackage:错误:debian/rules 二进制子进程返回退出状态 2

在此之前它工作正常:

(如果在对硬件或软件进行特定更改后行为发生了变化
,请描述您认为负责的更改。例如,“
从 LinuxCNC 2.7.3 升级到 2.7.4 后”)

有关我的硬件和软件的信息:

  • 我正在使用这个 Linux 发行版和版本 Debian Bullseye 11
  • 我正在使用这个内核版本(显示为uname -a):Preempt_rt
  • 我正在运行…构建过程
昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
作者

抱歉,使用 su 提升权限解决了这个问题。
我会保持打开状态,因为这些文档应该更新以反映这个新要求
http://linuxcnc.org/docs/devel/html/code/building-linuxcnc.html#_building_debian_packages

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
合作者

我今天构建了包含和不包含文档的包。作为普通用户,它构建得很好。

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
作者

我在第一次拉取后确实看到了一些变化,所以我在使用 SU 之前进行了更新。
也许他们修好了。
不过,能走到这一步都非常令人兴奋!

我现在将再次构建它们,看看当我早上回来时会发生什么。

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
作者

实际上一开始就失败了:

等离子2@等离子2:/linuxcnc-dev$ dpkg-buildpackage -b -uc
dpkg-buildpackage: 信息:源包 linuxcnc
dpkg-buildpackage: 信息:源版本 1:2.9.0
pre0
dpkg-buildpackage: info: source distribution UNRELEASED
dpkg-buildpackage: info: source changed by Sebastian Kuzminsky seb@highlab.com
dpkg-buildpackage: info: 主机架构 amd64
dpkg-source –before-build 。
fakeroot debian/规则清理

使用 debhelper 10 –parallel 成为默认值

dh clean –parallel
rm -f debian/linuxcnc-doc-cn.debhelper.log debian/linuxcnc-doc-en.debhelper.log debian/linuxcnc-doc-es.debhelper.log debian/linuxcnc-doc-fr.debhelper .log debian/linuxcnc-uspace-dev.debhelper.log debian/linuxcnc-uspace.debhelper.log
debian/rules override_dh_auto_clean
make[1]: 进入目录 ‘/home/plasma2/linuxcnc-dev’
dh_auto_clean
install -d /home/ plasma2/linuxcnc-dev/debian/.debhelper/generated/_source/home
dh_auto_clean: 错误: mkdir /home/plasma2/linuxcnc-dev/debian/.debhelper/generated/_source: 权限被拒绝
make[1]: *** [ debian/rules:59: override_dh_auto_clean] Error 255
make[1]: Leaving directory ‘/home/plasma2/linuxcnc-dev’
make: *** [debian/rules:39: clean] 错误 2
dpkg-buildpackage: 错误: fakeroot debian/rules clean 子进程返回退出状态 2
plasma2@plasma2:/linuxcnc-dev$ ^C
plasma2@plasma2:
/linuxcnc-dev$

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
作者

我试过这张
cd linuxcnc-dev/debian

./配置空间

问题仍然存在
也许 root 现在拥有一些文件夹

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
作者

所以今晚我在我的 Chromebook 上复制了一份新副本,它构建了 debs,没有任何戏剧性。
我将在我机器上的主文件夹上运行 chown,并在早上重试。很奇怪。
我不知道权限是如何改变的。

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
贡献者

我也遇到过一次。权限是关于设置需要为两个二进制文件设置的“suid”位。如果我理解正确,那么如果包不是使用 dpkg-buildpackage 的 -rfakeroot 参数构建的,那么我们会得到帮助和警告。因此,debian/control 文件也获得了“Rules-Requires-Root: binary-targets”标志。过去,所有包都使用 -rfakeroot 标志运行,但由于大多数包不需要 suid,这几乎被遗忘了。

TL;DR:请使用 重试dpkg-buildpackage -rfakeroot,不需要“su”。

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
作者

斯蒂芬,谢谢你。你的建议奏效了,但只有在我使用 chown 从 root 用户那里收回权限之后。
我还在 ~/linuxcnc-dev/debian/configure 中找到了 no-docs 参数,希望这能节省很多时间。

如果可以更新文档以涵盖 –rfakeroot 的使用和 configure no-docs 参数的使用以拯救下一个冒险进入此领域的可怜人,那就太好了。

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
合作者

如果你在 /debian 目录中执行./configure –help它会让你知道 no-docs

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
作者

谢谢菲尔。如此隐藏文档并没有多大帮助。用户(包括我自己)通常会关注这里的稀缺文档。
http://linuxcnc.org/docs/devel/html/code/building-linuxcnc.html#_building_debian_packages
并且不知道他们在做什么

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
合作者
phillc54 评论了 2021 年 11 月 10 日  

这是获得帮助的标准 Linux 方式。

您可以直接从 Github 编辑页面并进行 PR。
https://github.com/LinuxCNC/linuxcnc/blob/master/docs/src/code/building-linuxcnc.adoc

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
贡献者

我完全同意,此文档需要更新。谢谢你指出这一点。我不确定我现在是否借此机会从你那里贡献一些东西,@rodw-au,你肯定会提供这个,但我现在会准备那个拉取请求@phillc54建议。如果你们中的任何一个想为源代码树贡献一些东西作为练习,那么我会为你找到一些东西并指导你 – 联系我。

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
作者

Steffen,我希望有人熟悉 dpkg 构建过程和最近的更改来更新文档。我真的对这个过程一无所知,只是盲目地遵循文档并且一直这样做,直到最近的变化打破了这个过程。我觉得没有足够的资格来描述这些变化。我认为主要问题是需要涵盖 –rfakeroot。

我还想知道 .configure 是否可以接受一个参数来为一种语言构建文档,例如。朗=恩。我唯一一次遇到西班牙人是在上海。除了 en here 在澳大利亚,不需要其他语言。

昨天更新后,在 master 中构建 debs 失败并出现权限问题 #1363
作者

看起来现在可以关闭了。