lip install
向工作區安裝套件。
概要
lip install <PACKAGES>... [--accept-eula] [-n | --dry-run] [-h | --help]說明
lip install 把 <PACKAGES> 中的每個套件連同它的相依安裝到工作區,作為一次工作區操作。<PACKAGES> 中的每一項都是套件參數:
| 形式 | 示例 | 安裝的內容 |
|---|---|---|
<repo> | github.com/user/repo | git 儲存庫 https://<repo>.git 的最高版本標籤。 |
<repo>#<variant> | github.com/LiteLDev/LegacyScriptEngine#lua | 該套件的這個變體。下面的每種形式也都可以帶 #<variant>,寫在 @ 之前。 |
<repo>@<version> | github.com/user/repo@1.0.0 | 標籤 v<version> 的提交。 |
<repo>@branch:<name> | github.com/user/repo@branch:main | 該分支目前指向的提交。 |
<repo>@tag:<name> | github.com/user/repo@tag:nightly | 該標籤目前指向的提交。任何標籤名都可以。 |
<repo>@rev:<commit> | github.com/user/repo@rev:0123456789abcdef0123456789abcdef01234567 | 這個提交。必須寫全 40 位十六進制數字。 |
https:// URL | https://example.com/package.zip | 該 URL 上的 ZIP 歸檔。後面可以帶 #<variant>。 |
| 本機路徑 | ./package.zip、../MyTool、C:\Downloads\package.zip | 磁碟上的 ZIP 檔案或目錄。後面可以帶 #<variant>。 |
不含 / 的 <repo> 是 LiteLDev 的儲存庫:LeviLamina 就是 github.com/LiteLDev/LeviLamina。
它做的事:
- 你指名的套件成為顯式安裝的套件。原先作為相依安裝的套件也會變成顯式安裝。
- 這些套件的相依作為相依套件安裝。
- 已安裝的套件在版本仍然可用時保持不變。否則相依套件可能換成其他版本。
- 不再被任何顯式安裝的套件需要的相依套件會被解除安裝。
它在做出任何變更之前拒絕的情況:
- 套件參數無效,或者沒有適用於執行端
server和平臺win-x64的套件。 - 套件已經是顯式安裝的。要更換它的版本,請用
lip update。 - 兩個參數指名了同一個套件。
- 這些套件無法一起安裝,例如兩個模組的模組名相同,或者某個相依沒有任何版本能滿足。
- 任何會改變遊戲或載入器的情況。見下文。
從 @branch:、@tag: 或 @rev: 安裝的套件,版本取該提交上 lip.toml 中的 version。只要這個版本落在範圍內,這樣的套件也能滿足對同一儲存庫和變體的相依。
遊戲與載入器
遊戲和載入器是已安裝的 github.com/LiteLDev/bds 套件和 github.com/LiteLDev/LeviLamina 套件;參見 lip setup。
除了用 install 進行設定所說的情況,lip install 從不安裝、解除安裝或取代遊戲和載入器。如果在它們保持不變的前提下無法安裝這些套件(例如某個模組需要更新的 LeviLamina),命令失敗,並給出遊戲版本、載入器版本和 lip setup。請先用 lip setup 設定該模組支援的遊戲和載入器,再安裝模組。
在沒有遊戲的工作區中,如果你指名的套件或它將要安裝的套件是模組、伺服器或 LeviLamina,lip install 失敗並指向 lip setup。不需要它們的檔案套件可以在沒有遊戲的情況下安裝。
用 install 進行設定
參數是 github.com/LiteLDev/bds(帶不帶變體或引用都算)時,它指名了伺服器。參數是不帶變體的 github.com/LiteLDev/LeviLamina,並且沒有引用或引用為 @<version> 時,它指名了載入器。兩者都不區分大小寫。
有參數指名了伺服器或載入器時,lip install 會作為一次 lip setup 執行,連同其他參數一起,在同一次操作中完成:
| 設定項 | 取值 |
|---|---|
| 組建 | 伺服器寫成 github.com/LiteLDev/bds#linux 時為 linux;否則為 windows。 |
| 載入器 | 沒有參數指名 LeviLamina 時,不帶載入器。否則為 LeviLamina:有 @<version> 時取該版本;沒有時,取適配伺服器參數給出的遊戲版本的最新版本;沒有任何參數給出遊戲版本時,取最新的 LeviLamina。 |
| 遊戲版本 | 伺服器參數的 @<version>。沒有時:取上述 LeviLamina 接受的最新遊戲版本;沒有參數指名 LeviLamina 時,取最新的遊戲版本。 |
| 命令 | 設定的內容 |
|---|---|
lip install LeviLamina | 最新的 LeviLamina,以及它支援的最新遊戲。 |
lip install LeviLamina@1.0.0 | LeviLamina 1.0.0,以及它支援的最新遊戲。 |
lip install github.com/LiteLDev/bds@1.21.0 LeviLamina | 遊戲 1.21.0,以及適配它的最新 LeviLamina。 |
lip install github.com/LiteLDev/bds@1.21.0 | Windows 版伺服器 1.21.0,不帶載入器。 |
lip install github.com/LiteLDev/bds#linux | 最新的 Linux 版伺服器,不帶載入器。 |
兩個參數都指名伺服器,或都指名載入器時,命令失敗。lip setup 所說的一切都適用:授權合約的詢問、--accept-eula、被排除的套件和系統相依。
選項
| 選項 | 說明 |
|---|---|
--accept-eula | lip install 作為設定執行時,接受遊戲的授權合約,不再詢問。其他情況下沒有作用。 |
-n、--dry-run | 試執行。消息會列出將被安裝、解除安裝或標記為顯式安裝的套件。不做任何變更。 |
-h、--help | 輸出幫助並結束。 |
輸出
lip install 沒有結果:它不向標準輸出寫任何內容。進度和最後一行都是寫到標準錯誤的消息。套件的鉤子命令自己向標準輸出和標準錯誤寫入。
結束狀態
| 結束代碼 | 含義 |
|---|---|
0 | 套件已安裝,或試執行已結束。 |
非 0 | 用法錯誤,或安裝失敗。失敗的安裝會被復原。 |
示例
從儲存庫安裝一個模組的最新版本:
lip install github.com/LiteLDev/LegacyScriptEngine#lua安裝指定版本,並先看看它會做什麼:
lip install github.com/user/repo@1.0.0 --dry-run
lip install github.com/user/repo@1.0.0在一次操作中安裝多個套件:
lip install github.com/user/repo github.com/user/other@2.1.0從分支、URL、ZIP 檔案和目錄安裝:
lip install github.com/user/repo@branch:main
lip install https://example.com/package.zip
lip install ./package.zip
lip install ../MyTool在指令碼中一步完成設定伺服器和安裝模組:
lip install LeviLamina github.com/user/repo --accept-eula另請參閱
- 管理套件
- 取得模組:在介面中查找和安裝模組。
lip setup、lip update、lip uninstall、lip list- lip.toml:什麼是套件。