无状态¶
在大多数操作系统中,用户数据、系统数据和配置文件可能会混杂在一起。
Clear Linux* OS 使用无状态设计理念,目的是打造一个无需过多用户配置或自定义的 OS (operating system)。在这种情况下,无状态并不意味着短暂或不持久。
文件级隔离¶
为了实现无状态设计,Linux 文件系统层次结构在用户拥有的区域和 Clear Linux OS 拥有的区域之间是隔离的。
系统区域¶
/usr
目录下的文件由用户拥有和管理。用户在 /usr
目录下编写的文件可以通过 swupd 系统更新删除。此操作假设允许 Clear Linux OS 用户清楚地识别其系统的独特配置。
用户区域¶
/etc/
、/home
和 /var
目录下的文件由用户拥有和管理。新安装的 Clear Linux OS 系统在 /etc/
目录中只有极少量的文件,并且 Clear Linux OS 安装的软件不会写入 /etc
。此操作假设允许 Clear Linux OS 用户清楚地识别其系统的独特配置。
软件配置¶
在无状态隔离的情况下,默认软件配置从预定义的源代码、Clear Linux OS 提供的默认值和用户提供的配置中按顺序读取。
默认配置¶
Clear Linux OS 中的软件会提供默认配置值,以便在适当的时候立即运行。
Clear Linux OS 分布的软件包可以直接修改以包括默认配置值,或者默认配置文件可以由 Clear Linux OS 在 /usr/share/defaults
中提供。这些文件可以作为自定义模板引用。
例如,Apache 安装后使用的默认配置可以在 /usr/share/defaults/httpd/httpd.conf
目录中找到。
覆盖配置¶
如果需要更改配置,用户应在 /etc/
下修改适当的文件。如果配置文件不存在,可以在适当的位置创建。
用户定义的配置文件应该包含尽可能少的更改,其余则依赖默认配置。
例如,可以使用自定义 Apache 配置,具体方式是:
为配置创建目标目录:
sudo mkdir /etc/httpd
复制默认配置作为参考模板:
sudo cp /usr/share/defaults/httpd/httpd.conf /etc/httpd/
对配置进行任何所需的修改:
sudoedit /etc/httpd/httpd.conf
重新加载服务或重新启动系统以获取任何更改:
systemctl daemon-reload httpd && systemctl restart httpd
这种模式也可以用来修改其他程序的配置。stateless man page 提供了特定于应用程序的示例。