我想在我的 Linux 系统上创建一个文件夹,供 Steam 下载游戏数据。我这样做是为了在用户之间共享数据,并且游戏不必多次下载。
最初,我想我应该创建一个 /opt/steam 文件夹。但我开始阅读最近的 FHS 3.0 规范,现在我不确定它是否应该是: - /usr/local/steam,或 - /var/steam (或 /var 的适当子目录?)
为了符合 FHS 标准,Steam 应该将游戏放置在哪里?如果它位于 /usr/local 和 /var 之间,为什么一个比另一个更好?
谢谢
以下有关 FHS 3.0 的信息
- FHS 3.0 -http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
/usr/local 在 FHS 3.0 中的用途:
4.9.1.目的
/usr/local 层次结构供系统管理员在本地安装软件时使用。当系统软件更新时,它需要确保不被覆盖。它可用于可在一组主机之间共享但在 /usr 中找不到的程序和数据。
本地安装的软件必须放置在 /usr/local 而不是 /usr 中,除非安装它是为了替换或升级 /usr 中的软件。
/var 在 FHS 3.0 中的用途:
5.1.目的
/var 包含变量数据文件。这包括假脱机目录和文件、管理和日志记录数据以及瞬态和临时文件。
/var 的某些部分在不同系统之间不可共享。例如,/var/log、/var/lock 和 /var/run。其他部分可以共享,特别是 /var/mail、/var/cache/man、/var/cache/fonts 和 /var/spool/news。
此处指定 /var 是为了可以以只读方式挂载 /usr。在系统操作期间(而不是安装和软件维护)写入 /usr 的所有内容都必须位于 /var 中。
如果 /var 无法成为单独的分区,通常最好将 /var 从根分区移至 /usr 分区。 (有时这样做是为了减小根分区的大小,或者当根分区中的空间不足时。)但是, /var 不得链接到 /usr,因为这会使 /usr 和 /var 的分离变得更加困难,并且很可能造成命名冲突。相反,将 /var 链接到 /usr/var。
应用程序通常不得将目录添加到 /var 的顶层。仅当此类目录具有某些系统范围的含义时才应添加,并且应咨询 FHS 邮件列表。
答案1
从 FHS 来看,作为系统管理员,您应该遵循的是您应该让发行版做它想做的事情的地方。不要执行/bin
、/lib*
、/sbin
或/usr
除 之外的任何操作/usr/local
。/var
并/opt
具有混合状态。一些发行版提供安装在 中的软件包/opt
,而其他发行版则不提供。作为系统管理员,opt
对于未作为软件包安装在 中的软件,请使用从 下的软件包名称派生的合理目录名称/opt
。至于/var
,这取决于目录,每个目录/var/*/*
都有自己的规则。/var/local
是您认为合适的游乐场。
在很多地方安装额外的游戏是有意义的:
/opt/NAME-OF-GAME
/opt/games/NAME-OF-GAME
/opt/steam/NAME-OF-GAME
/usr/local/games/NAME-OF-GAME
/usr/local/lib/steam/NAME-OF-GAME
/var/local/steam/NAME-OF-GAME
- ……
使用哪一种取决于您的共享策略(哪些机器通过 NFS 等协议挂载相同的目录)、您的备份策略(何时备份哪些目录树、备份到何处)、您的访问控制策略(谁有权访问哪些目录)等。没有单一的正确答案。选择最适合您的。
答案2
很多时候/选择用于这样的目的。
使用 /opt 作为附加软件是 UNIX 社区中的一种成熟做法。 System V 应用程序二进制接口 [AT&T 1990] 基于 System V 接口定义(第三版),提供了与此处定义的非常相似的 /opt 结构。
和游戏是额外的(IE不必要的) 软件。