跳到正文
本頁目錄

lip install

向工作區安裝套件。

概要

text
lip install <PACKAGES>... [--accept-eula] [-n | --dry-run] [-h | --help]

說明

lip install 把 <PACKAGES> 中的每個套件連同它的相依安裝到工作區,作為一次工作區操作。<PACKAGES> 中的每一項都是套件參數:

形式示例安裝的內容
<repo>github.com/user/repogit 儲存庫 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:// URLhttps://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.0LeviLamina 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.0Windows 版伺服器 1.21.0,不帶載入器。
lip install github.com/LiteLDev/bds#linux最新的 Linux 版伺服器,不帶載入器。

兩個參數都指名伺服器,或都指名載入器時,命令失敗。lip setup 所說的一切都適用:授權合約的詢問、--accept-eula、被排除的套件和系統相依。

選項

選項說明
--accept-eulalip install 作為設定執行時,接受遊戲的授權合約,不再詢問。其他情況下沒有作用。
-n、--dry-run試執行。消息會列出將被安裝、解除安裝或標記為顯式安裝的套件。不做任何變更。
-h、--help輸出幫助並結束。

輸出

lip install 沒有結果:它不向標準輸出寫任何內容。進度和最後一行都是寫到標準錯誤的消息。套件的鉤子命令自己向標準輸出和標準錯誤寫入。

結束狀態

結束代碼含義
0套件已安裝,或試執行已結束。
非 0用法錯誤,或安裝失敗。失敗的安裝會被復原。

示例

從儲存庫安裝一個模組的最新版本:

shell
lip install github.com/LiteLDev/LegacyScriptEngine#lua

安裝指定版本,並先看看它會做什麼:

shell
lip install github.com/user/repo@1.0.0 --dry-run
lip install github.com/user/repo@1.0.0

在一次操作中安裝多個套件:

shell
lip install github.com/user/repo github.com/user/other@2.1.0

從分支、URL、ZIP 檔案和目錄安裝:

shell
lip install github.com/user/repo@branch:main
lip install https://example.com/package.zip
lip install ./package.zip
lip install ../MyTool

在指令碼中一步完成設定伺服器和安裝模組:

shell
lip install LeviLamina github.com/user/repo --accept-eula

另請參閱