我总是以某种方式假设当我运行像 apt-get install、remove、purge 这样的命令时,apt 最多可能会将配置点文件添加到我现有的本地主目录中(甚至不确定),但永远不会修改或删除那里的任何文件(无需备份)。
是否存在这样的限制或至少指导方针?
答案1
有两个问题:
- Debian 政策规定了如何管理主目录以及正确打包 .deb 不应修改用户主目录中的任何内容。
9.2.3. 不存在的主目录 典型的不存在的主目录是 /nonexistent。不应有主目录的用户应将其主目录设置为此值。
Debian 自动构建器将 HOME 设置为 /nonexistent,因此尝试写入主目录的软件包将无法构建。
10.7.5. 用户配置文件(“dotfiles”)/etc/skel 中的文件将由 adduser 自动复制到新用户帐户。其他任何程序都不应引用 /etc/skel 中的文件。
因此,如果程序需要点文件提前存在于 $HOME 中才能合理运行,则该点文件应安装在 /etc/skel 中并将其作为配置文件处理。
但是,需要点文件才能合理运行的程序是一件坏事,除非它们能自动创建点文件。
此外,程序应该由 Debian 默认安装配置,以尽可能接近上游默认行为。
因此,如果 Debian 软件包中的程序需要以某种方式进行配置才能合理运行,则应使用放置在 /etc 中的站点范围配置文件来完成此操作。只有当程序不支持站点范围的默认配置并且软件包维护者没有时间添加它时,才可以将默认的每个用户文件放置在 /etc/skel 中。
/etc/skel 应该尽可能地清空。尤其如此,因为没有简单的(或必然理想的)机制来确保在安装软件包时将适当的点文件复制到现有用户的帐户中。
看 :https://www.debian.org/doc/debian-policy/了解详情
然而 .....
- 安装 .deb 需要 root 授权,并且软件包可以运行安装前和安装后脚本,这些脚本会修改主目录中的文件,这违反了 Debian 政策,或者打包 .deb 的人可能会选择忽略 Debian 政策。
因此 .deb 有可能违反 Debian 政策并更改用户主目录中的文件。
这是您在从 Ubuntu 存储库之外安装 .deb 时应该非常小心的众多考虑因素或原因之一。
答案2
任何 apt 安装、更新、删除等都不应修改用户主目录中的文件。甚至点文件也不行。
您的主目录中的文件只能通过您在您的帐户下运行的软件进行修改。
原因如下:
主目录由 FHS 标准指定为由个人用户而不是系统控制的目录。
安装/更新/删除脚本没有理由知道或关心系统上存在哪些用户,也没有理由为任何特定用户做任何特定的事情。
任何软件的系统范围配置都将放在系统目录中(即
/etc
)。用户帐户内的点文件仅用于特定用户所做的配置更改。更新用户特定的配置不是系统的责任。如果某个软件的配置方式需要更改,则该软件需要在以该用户身份运行时自行进行迁移,而不是在安装或更新时进行迁移。