lip setup
選擇工作區的遊戲和載入器。
概要
lip setup --game <VERSION> [--build <BUILD>] [--loader <LOADER> | --no-loader] [--accept-eula] [-n | --dry-run] [-h | --help]說明
lip setup 把工作區的伺服器設為版本 <VERSION>、組建 <BUILD> 的遊戲,帶載入器 <LOADER> 或不帶載入器,並保留工作區中能與之配合的其他套件。在空目錄中執行它可以建立一個伺服器;以後想換遊戲版本或載入器時,再執行一次即可。
術語
- 遊戲是已安裝的
github.com/LiteLDev/bds套件,即 Minecraft Bedrock Dedicated Server。一個工作區最多有一個。沒有它的工作區沒有遊戲。 - 遊戲的組建是
windows或linux:Windows 版伺服器或 Linux 版伺服器。 - 載入器是已安裝的
github.com/LiteLDev/LeviLamina套件。沒有它的工作區沒有載入器。 - 如果某個 LeviLamina 版本對
github.com/LiteLDev/bds的相依接受某個遊戲版本,就說它適配這個遊戲版本。
執行過程
依次進行:
- 根據選項確定遊戲、組建和載入器。參見載入器。
- 在下列情況下,它在做出任何變更之前失敗:
- 組建為
linux卻要求載入器:LeviLamina 只能載入到 Windows 版伺服器中; - 該遊戲版本沒有這種組建(參見遊戲版本與組建);
- 載入器版本不存在,或者不適配該遊戲版本。
- 組建為
- 規劃要安裝的套件。遊戲從
github.com/LiteLDev/bds@<VERSION>請求,組建為linux時從github.com/LiteLDev/bds#linux@<VERSION>請求;載入器從github.com/LiteLDev/LeviLamina@<version>請求。其他顯式安裝的套件按各自安裝時的來源重新請求。- 套件的版本仍然可用時保持不變;否則可能換成其他版本。
- 工作區原有的遊戲和載入器會被解除安裝,除非它們正是所要求的。
- 不再被任何顯式安裝的套件需要的相依會被解除安裝。
- 如果有被排除的套件,詢問如何處理。
- 如果要安裝遊戲,請你接受授權合約。
- 組建為
windows時,安裝 Windows 版伺服器需要而系統缺少的組件:Linux 和 macOS 上的 Wine,以及 Microsoft Visual C++ 可再發行組件套件。參見 Linux 和 macOS。 - 作為一次工作區操作安裝這些套件。
如果工作區已經有所要求的遊戲和載入器,組建和版本都相同,lip setup 不會為它們安裝或解除安裝任何東西。
遊戲和載入器是顯式安裝的,並固定在各自的版本上。之後 lip install 和 lip update 都不會改變它們;要更換,請再次執行 lip setup。lip uninstall 可以像解除安裝其他套件一樣解除安裝它們。
載入器
| 選項 | 載入器 |
|---|---|
既沒有 --loader 也沒有 --no-loader,組建為 windows | 等同於 --loader levilamina。 |
既沒有 --loader 也沒有 --no-loader,組建為 linux | 不帶載入器。 |
--loader levilamina | 適配該遊戲版本的最新 LeviLamina。沒有適配的版本時,命令在做出任何變更之前失敗。 |
--loader levilamina@<version> | 恰好是這個 LeviLamina 版本。它必須適配該遊戲版本。 |
--no-loader | 不帶載入器。 |
levilamina 不區分大小寫。
遊戲版本與組建
lip 從 https://levimc.org/api/v4/mc/versions/ 取得伺服器組建的清單。一個組建由四個數字組成,例如 1.21.80.03。它對應兩個遊戲版本:
| 組建 | 遊戲版本 | 指的是 |
|---|---|---|
1.21.80.03 | 1.21.80 | 該系統的清單中第一個 1.21.80.* 組建。 |
1.21.80.03 | 1.21.80-patch.3 | 恰好是組建 1.21.80.03。 |
所以一般寫 --game 1.21.80;需要某個特定組建時寫 --game 1.21.80-patch.3。Windows 組建和 Linux 組建是兩個獨立的清單:一個版本可能只存在於其中一個。
伺服器本身從 www.minecraft.net 下載。
| 組建 | 在哪裡執行 |
|---|---|
windows | 在 Windows 上直接執行。在 Linux 和 macOS 上通過 lip 安裝的 Wine 執行。 |
linux | 只能在 x64 的 Linux 上執行。lip setup --build linux 在任何系統上都能執行,但在其他系統上 lip run 會拒絕啟動伺服器。 |
INFO
介面只在 lip 執行於 x64 的 Linux 時才提供組建 linux。命令沒有這個限制。
授權合約
遊戲受 Minecraft 終端使用者授權合約和 Microsoft 隱私權政策約束。
lip setup 要安裝遊戲時,會輸出這兩個連結,並詢問你是否接受。輸入 yes 繼續。其他任何回答都會讓命令在做出任何變更之前失敗。
- 帶
--accept-eula時,lip 不詢問。 - 不帶它時,如果標準輸入或標準錯誤不是終端機(例如在指令碼中),命令在做出任何變更之前失敗。
- 回答不會被記錄。每次安裝遊戲的設定都會重新詢問;遊戲保持不變的設定不會詢問。
被排除的套件
除遊戲和載入器之外,某個顯式安裝的套件如果沒有任何版本能與新的遊戲和載入器配合,它就會被排除。它可以是模組,也可以是其他任何套件。
lip 會列出被排除的套件,並詢問是否解除安裝它們。你沒有回答 yes 時,命令在做出任何變更之前失敗。標準輸入或標準錯誤不是終端機時,lip 無法詢問:命令失敗並列出它們。請先用 lip uninstall 解除安裝它們,再執行 lip setup。
如果剩下的套件根本無法一起安裝,命令失敗。
lip 先詢問被排除的套件,再詢問授權合約。兩個問題都在 lip 決定好要做什麼之後、下載遊戲之前提出。
選項
| 選項 | 說明 |
|---|---|
--game <VERSION> | 遊戲版本,例如 1.21.0:不帶前導 v 的 SemVer 版本。必需。其他值都是用法錯誤。 |
--build <BUILD> | windows 或 linux。省略時為 windows。其他值都是用法錯誤。 |
--loader <LOADER> | levilamina 或 levilamina@<version>。其他值都是用法錯誤。 |
--no-loader | 設定遊戲而不帶載入器。同時給出 --loader 和 --no-loader 是用法錯誤。 |
--accept-eula | 接受授權合約,不再詢問。 |
-n、--dry-run | 試執行。不提問。消息會列出將被安裝、解除安裝或標記為顯式安裝的套件、被排除的套件,以及 lip 是否會請你接受授權合約。 |
-h、--help | 輸出幫助並結束。 |
輸出
lip setup 沒有結果:它不向標準輸出寫任何內容。進度、提問和最後一行都是寫到標準錯誤的消息。
結束狀態
| 結束代碼 | 含義 |
|---|---|
0 | 設定已完成,或試執行已結束。 |
非 0 | 用法錯誤,或設定失敗。失敗的設定會被復原。 |
示例
建立一個遊戲版本為 1.21.0 的伺服器,帶適配它的最新 LeviLamina:
lip setup --game 1.21.0設定指定版本的 LeviLamina,並在指令碼中接受授權合約:
lip setup --game 1.21.0 --loader levilamina@1.0.0 --accept-eula設定不帶載入器的 Windows 版伺服器:
lip setup --game 1.21.0 --no-loader設定 Linux 版伺服器,它沒有載入器:
lip setup --game 1.21.0 --build linux檢視換到另一個遊戲版本會對已安裝的套件產生什麼影響:
lip setup --game 1.21.50 --dry-run另請參閱
- 用命令執行伺服器
- 工作區:介面中的建立伺服器嚮導和更換版本。
- 更換遊戲後保留什麼
lip install:安裝 LeviLamina 或伺服器本身時,它會設定伺服器。lip run