跳到正文
本頁目錄

設定

讀完本頁,你就能用 lip config 檢視和修改 lip 的設定,並且知道在 GitHub 很慢或被屏蔽的地方該怎麼辦。在介面裡,同樣的設定在設定頁面。

兩組設定

lip 的設定不多,分成兩組,稱為作用域:

作用域適用於鍵命令
使用者你本人,在每個工作區裡github_proxy、languagelip config …
工作區某一個伺服器資料夾restartlip config … --workspace

帶 --workspace 的命令作用於你目前所在的資料夾。不帶它的命令作用於你的使用者設定,與你在哪個資料夾無關。

檢視和修改設定

lip config 有四條命令。

檢視某個作用域的全部設定:

sh
lip config list
text
┌──────────────┬───────────┐
│ Key          │ Value     │
├──────────────┼───────────┤
│ github_proxy │ (not set) │
│ language     │ (not set) │
└──────────────┴───────────┘
sh
lip config list --workspace
text
┌─────────┬───────┐
│ Key     │ Value │
├─────────┼───────┤
│ restart │ never │
└─────────┴───────┘

(not set) 表示這個鍵沒有值。(empty) 表示它被設成了空值,對 github_proxy 來說這是一種單獨的選擇(見下文)。

檢視一項設定:

sh
lip config get language

修改一項設定:

sh
lip config set language zh-Hans
text
✓ Config key 'language' set to 'zh-Hans'.

鍵不允許的值,lip 會拒絕,並且什麼都不改。

刪除一項設定,讓它回到預設值:

sh
lip config delete language
text
✓ Config key 'language' deleted.

lip config get 和 lip config list 可以加 --json 供指令碼使用。鍵用錯了作用域會失敗,錯誤資訊會告訴你該加上還是去掉 --workspace。

各個鍵

兩個設定檔的完整說明見設定檔。

github_proxy

作用域:使用者。值:一個 URL,或空。預設:未設定。

lip 如何連線 GitHub。大多數套件都是從那裡下載的。

值lip 的做法
未設定直接連線 GitHub。介面連不上 GitHub 時,可能會請你做出選擇。
空直接連線 GitHub,介面也不再詢問。
一個 URL發往 GitHub 的請求先走這個地址,失敗後再直接連線。

見 GitHub 很慢或被屏蔽時。

language

作用域:使用者。值:en、zh-Hans 或 zh-Hant。預設:未設定。

介面的語言:英語、簡體中文或繁體中文。沒有值時,介面跟隨系統語言;系統語言既不是英語也不是中文時,使用英語。

sh
lip config set language zh-Hant

這隻改變介面。命令在終端機裡輸出的內容始終是英語。

restart

作用域:工作區。值:never 或 on-failure。預設:never。

這個工作區的伺服器當機(也就是以非 0 的結束代碼結束)時,lip 是否重新啟動它。

sh
lip config set restart on-failure --workspace

設為 on-failure 後,lip 會等 5 秒再啟動伺服器,10 分鐘內最多 5 次。見當機後自動重新啟動。

GitHub 很慢或被屏蔽時

lip 的大多數套件都從 GitHub 下載。在 GitHub 很慢或連不上的地方,安裝會失敗,並提示:

text
hint: lip could not reach the server. Check your network connection. If GitHub is slow or blocked where you are, set a GitHub proxy with 'lip config set github_proxy <URL>'.

什麼是 GitHub 代理伺服器

GitHub 代理伺服器是一個替你從 GitHub 取東西的網路服務。你把它的地址告訴 lip,lip 就會把這個地址放在它要向 GitHub 請求的內容前面。

把 github_proxy 設為 https://proxy.example.com/ 之後,對

text
https://github.com/LiteLDev/LeviLamina.git/info/refs

的請求會發往

text
https://proxy.example.com/LiteLDev/LeviLamina.git/info/refs

所以,你設定的地址必須滿足:在它後面加上 <所有者>/<仓库>/…,得到的就是 GitHub 上對應的內容。有些服務要求在自己的地址後面跟完整的 GitHub 地址。對這類服務,把它一併寫進設定裡,例如 https://proxy.example.com/https://github.com/。

需要知道三點:

  • 只有 GitHub 走代理伺服器。 發往 github.com 的請求,無論是儲存庫還是檔案,都使用代理伺服器。從其他網站下載的內容,例如從 minecraft.net 下載的遊戲,不走代理伺服器。
  • lip 會回退。 通過代理伺服器的請求失敗時,lip 會直接向 GitHub 傳送請求。
  • lip 不推薦任何代理伺服器。 代理伺服器能看到你通過它下載的所有內容,也有可能篡改它。請使用你自己或你信任的人執行的代理伺服器。

設定代理伺服器

sh
lip config set github_proxy https://proxy.example.com/

把地址換成你的代理伺服器地址。此後每條命令都會使用這項設定。

測試代理伺服器

lip 檢查能否連上 GitHub 的方法,是請求 LeviLamina 的版本清單。你可以通過代理伺服器請求同樣的內容。可用的代理伺服器會返回 200:

Windows
curl.exe -s -o NUL -w "%{http_code}" "https://proxy.example.com/LiteLDev/LeviLamina.git/info/refs?service=git-upload-pack"

介面會替你做這項測試:你在設定頁面輸入代理伺服器後,它會先測試、再儲存。見設定。

命令能成功,並不說明代理伺服器可用,因為 lip 會回退到直接連線 GitHub。如果設定了代理伺服器後安裝仍然很慢,請測試一下代理伺服器。

移除代理伺服器

不再使用代理伺服器,並讓介面在連不上 GitHub 時重新詢問:

sh
lip config delete github_proxy

不再使用代理伺服器,並告訴 lip 你就是直接連線,這樣介面不會再詢問。做法是把它設成空值:

Windows
lip config set github_proxy --% ""

在 PowerShell 裡需要 --%:不加的話,Windows PowerShell 會把空值丟掉。在介面裡,可以在設定頁面為 GitHub 代理伺服器選擇「直接連線」。

系統代理伺服器

github_proxy 不是普通的 HTTP 代理伺服器。如果你的網路有普通的 HTTP 代理伺服器,lip 不需要專門的設定就會使用它:

  • lip 會遵循你執行它的那個終端機裡的環境變數 HTTPS_PROXY、HTTP_PROXY、ALL_PROXY 和 NO_PROXY(或同名的小寫變數)。
  • 沒有這些變數時,它使用系統設定的代理伺服器。
Windows
$env:HTTPS_PROXY = "http://proxy.example.com:8080"
lip install LegacyScriptEngine#lua

把地址換成你的代理伺服器地址。這樣的代理伺服器對所有下載都生效,不只是 GitHub。

設定儲存在哪裡

作用域檔案
使用者,Windows%APPDATA%\lip\config.toml
使用者,Linux 和 macOS$XDG_CONFIG_HOME/lip/config.toml,預設是 ~/.config/lip/config.toml
工作區伺服器資料夾裡的 .lip/config.toml

兩者都是很小的文字檔案,可以手動編輯。檔案不存在或讀不出來時,視為沒有任何設定。格式見設定檔,lip 用到的每個檔案都列在檔案和目錄裡。

移動或複製伺服器資料夾時,工作區設定會跟著走。使用者設定不會。