四层目录模型
每个 Polymerium 实例都有四个具有不同角色和生命周期的目录。理解它们是掌握这个启动器的关键。
上次更新
四层目录
Polymerium 中的每个实例都有四个目录。每个目录都有不同的任务和不同的生命周期:
instances/my-modpack/
├── import/ ← 随模组包附带的文件(权威来源)
├── live/ ← 工作副本——接收游戏内修改
├── persist/ ← 你选择在重置和更新之间保留的文件
└── build/ ← 部署的游戏目录(构建产物)import/ — 模组包来源
这是模组包作者的意图。当你导入模组包时,它的文件会放置在这里——配置、默认选项、自定义资源等。
- 谁写入它: 模组包作者(通过导入或手动放置)
- 它何时改变: 当你更新或重新导入模组包时
- 它的用途: 模组包文件的权威、可分发版本
live/ — 工作副本
这是 import/ 的可写副本。当你玩游戏时,游戏内的更改(修改的配置、生成的文件)会落地在这里,而不是 import/ 中。
- 谁写入它: 游戏运行时(以及你,当你调整配置时)
- 它何时改变: 每次游戏会话
- 它的用途: 运行时修改的沙盒,不会污染来源
persist/ — 用户管理的持久层
这个目录是你的。Polymerium 不会自动写入它——你决定什么内容放在这里。
想法很简单:有些文件太重要了,不能在重置或模组包更新时丢失。也许你的 options.txt 包含了你花了一个小时调整的灵敏度设置,或者你的 saves/ 目录包含了一个你无法承受丢失的世界。你自己将这些文件移动到 persist/ 中。
它的工作原理:
-
对于单个文件 —— 将文件从
build/移动到persist/。例如,将build/options.txt移动到persist/options.txt。在下一次部署时,Polymerium 会以最高优先级将persist/options.txt链接到build/,所以你的版本总是胜出。 -
对于目录 —— 将目录(例如
saves/)移动到persist/,然后在其中创建一个空的.keep文件:persist/saves/.keep。这告诉 Polymerium 将整个目录投射到build/中。
- 谁写入它: 你
- 它何时改变: 当你决定添加或更新文件时
- 它的用途: 你想要在重置、模组包更新和重建中幸存的文件
build/ — 部署的游戏
这是最终的游戏目录——Minecraft 看到的 .minecraft。它是在部署期间从其他层组装而成的。
- 谁写入它: Polymerium 的部署引擎
- 它何时改变: 每次部署
- 它的用途: 可运行的游戏目录
- 你可以删除它吗? 可以——但任何只存在于
build/中且没有被persist/、live/或import/支持的内容都会丢失。你已经移动到persist/的文件总是安全的。其他所有内容都会从元数据和缓存重新构建。
它们如何关联
import/ ─────→ live/ ─────→ build/
↑ ↑
游戏写入 最终游戏目录
│
persist/ ───────┴────────────→ build/
(最高优先级,用户管理)在部署期间,文件按此顺序分层到 build/ 中:
- 缓存文件 —— 模组、库、资源(从缓存符号链接)
import/文件 —— 模组包源文件live/文件 —— 工作副本(覆盖 import)persist/文件 —— 你保留的文件(最高优先级,总是胜出)
如果同一个文件同时存在于 live/ 和 persist/ 中,persist/ 版本会在 build/ 中优先。
常见操作期间发生什么
| 操作 | import/ | live/ | persist/ | build/ |
|---|---|---|---|---|
| 部署 | 读取 | 读取 | 读取 | 重建 |
| 玩游戏 | 不变 | 修改 | 不变 | 修改 |
| 重置 | 不变 | 清除 | 不变 | 清除 |
| 模组包更新 | 替换 | 清除 | 不变 | 清除 |
关键要点
- 重置会清除
live/和build/。你放置在persist/中的文件不受影响。 - 模组包更新会替换
import/并清除live/。persist/会被保留——这就是全部意义。 build/是可丢弃的,只要你关心的任何内容都有persist/支持。
为什么这很重要
这个四层模型解决了模组 Minecraft 中的一个真实矛盾:
- 模组包作者想要分发一致的配置和资源。
- 玩家想要在更新之间保留他们的设置和存档。
- 双方都希望模组包更新能够在不丢失重要数据的情况下工作。
Polymerium 的答案:将这些关注点分离到具有不同生命周期的不同目录中。你控制什么被保留——将其移动到 persist/,Polymerium 保证它会幸存。
下一步
了解部署如何组装这些层 → 部署流水线