GLEP 20:/srv - 服务主目录支持

作者 Stuart Herbert <stuart@gentoo.org>,Rob Holland <tigger@gentoo.org>
类型 标准跟踪
状态 已延期
版本 1
创建日期 2004-02-09
上次修改日期 2018-09-12
发布历史 2004-02-21, 2004-11-11
GLEP 源代码 glep-0020.rst

状态

实现尚未完成。GLEP 编辑 Michał Górny 于 2017 年 10 月 13 日将其标记为已延期。

致谢

感谢 Robin H. Johnson (robbat2@gentoo.org) 在撰写此 GLEP 方面的协助。

摘要

此 GLEP 提出一个新的根级目录 - /srv - 作为提供服务的软件的数据(有时也包括软件本身)的可选存储位置。

/srv 将通过 USE 标记进行支持。这使用户可以选择使用专用的服务主目录层次结构或不使用。

/srv 在 FHS 2.3 中定义,它是即将发布的 LSB v2.0 的一部分 (http://bugs.freestandards.org/cgi-bin/bugzilla/show_bug.cgi?id=16)

动机

Gentoo 目前没有为希望在一个简单易于管理的位置集中其面向服务的软件数据的站点提供足够灵活的支持。

添加对 /srv 目录结构的可选支持将使站点在如何布局其机器方面具有更大的灵活性。

规范

一个新的全局 USE 标记 - srvdir - 将被添加到 Portage 中。

选择支持 srvdir USE 标记的 Ebuild 将配置软件包以在 /srv 目录下安装和使用其数据。

选择支持 srvdir USE 标记 - 并且安装需要写入与软件安装相同目录的软件包的 Ebuild - 将配置软件包以在 /srv 目录下安装软件。

所有配置为支持 srvdir USE 标记的软件包都将支持 /srv 的以下细分

/srv/<fqdn>/<service>/<service-specific tree>

其中

<fqdn> 是完全限定域名
<service> 是服务的名称
<service-specific tree> 对软件包是唯一的

安装任何内容到 /srv 的 Ebuild 将安装到 /srv/localhost。/srv/localhost - 或其下任何 <service> 目录 - 可以是本地管理员创建的符号链接。

示例

例如,支持 srvdir USE 标记的备份软件包可以为其执行备份的网络上的每个主机将备份数据保存在 /srv/<hostname>/backups 目录下。

例如,支持 srvdir USE 标记的基于 Web 的应用程序可以将其软件安装到 /srv/localhost/www/htdocs 目录下。也支持 vhost USE 标记的基于 Web 的应用程序的 Ebuild 将允许用户通过 webapp-config 软件包在其他服务域下安装软件。有关此工作原理的更多信息,请参阅 GLEP #11 和 vhost-config 工具。

还有许多其他软件包可以支持 srvdir USE 标记 - 包括 Portage 本身。

对于不支持 srvdir USE 标记的软件包,目前没有推荐的默认位置 - 尽管 /var/localhost 可能是一个有用的替代方案。

基本原理

引入对 /srv 目录的可选支持将使许多组 Gentoo 用户受益。

  • 希望将 /usr 挂载为只读的用户

    /srv 为将可写文件安装到 /usr 的软件包提供了一个可选的替代方案。

  • 希望将服务与 /home 使用隔离的用户

    当真实用户填充 /home 时,服务将停止工作。由于许多软件包无法检测或可靠地应对这种情况,因此通常写入磁盘的服务最终会损坏这些文件。

  • 不希望导出 /var 或其子目录的用户

    通过 NFS 等导出 /var - 或其子目录 - 是某些系统管理员根本不想做的事情。为这些用户提供在 /srv 中安装的选择权符合已发布的 Gentoo 哲学,即尽可能地为用户提供更多选择。

  • 通过 NFS 共享资源或使用网络附加存储 (NAS) 的用户

    允许系统管理员选择将提供服务的软件配置为使用单个文件层次结构将大大简化群集环境中 NFS 导出 - 和导入 - 的管理和维护。

  • 在同一台机器上托管多个客户服务的服务提供商

    将所有存储(Web、FTP、数据库、IMAP 等)分组在一个位置,可以大大简化对该主机上的磁盘配额的管理。

    在共享托管系统中,将网站、FTP 站点等放置在用户的实际主目录下是一种常见做法。这种做法需要用户的主目录对所有人可读,这不利于安全!

  • 希望将面向服务的档案存储到单个逻辑卷上以支持未来增长的用户

Gentoo 哲学明确指出,Gentoo Linux 将是一个高度可配置的元发行版。添加对 /srv 的可选支持非常符合我们的哲学。

实现

一个新的 USE 标记 - srvdir - 将被添加到 Portage 中。

Ebuild 和 eclass 将根据具体情况选择是否支持 srvdir USE 标记。

(作者注:如果此 GLEP 获得批准,所有基于 Web 的应用程序都将通过 GLEP #11 下进行的工作来支持 srvdir USE 标记)

关于 /srv 目录是否应由 basesystem 软件包提供存在一些争论。由于此支持是可选的,并且不同的站点将具有不同的存储需求,因此我们认为应该由本地 Gentoo 系统管理员手动创建 /srv 目录。

如果 baselayout 认为必须安装 /srv,那么我们建议 baselayout 将 /srv 安装为指向 /var/srv 的符号链接。这种方法将支持将根文件系统挂载为只读的安装。

向后兼容性

选择不使用新的 srvdir USE 标记的用户将几乎看不到任何变化。一些 Ebuild 可能会更改其非 srvdir 目录布局,以减少支持这两种选项所需的工作量。