我已经构建了一个debian包,它只是将文件放到/ etc / sensu / plugins中,以便我的检查以这种方式分发。
现在我写了一张新的支票,构建了包并在任何地方安装它,但注意到我忘了把文件做成+。
所以我创建了文件+ x并再次构建了包,但是当我在任何地方安装它时,它都不会覆盖该文件的权限。
我如何强迫它这样做?
答案 0 :(得分:0)
主要问题是/ etc中的文件被dh_installdeb视为conffiles,你可能在包构建期间使用,因此包装系统会以特定方式处理,因为假设用户可能会编辑这些文件应保留这些变化。因此,除非您明确清除它们,否则它们不会随包删除,并且它们将保留其权限。我不知道有什么方法可以让您更改配置文件的权限与包中相同文件的权限(例如,--force-confnew
的{{1}}选项不起作用。
从管理员的角度来看,您应该清除程序包(以便删除配置文件),然后重新安装程序包或手动更改权限。
从打包程序的角度来看,您可以修复postinst脚本中的权限,以便升级程序包将修复权限。作为替代方案,您也可以按照here的说明调整配额:安装新包后,权限将设置为包中文件的权限。
一般情况下,您可能还想检查dh_fixperms是否在打包过程中更改了文件的权限,并最终使其不对这些文件执行操作(事实并非如此)。