設定
讀完本頁,你就能用 lip config 檢視和修改 lip 的設定,並且知道在 GitHub 很慢或被屏蔽的地方該怎麼辦。在介面裡,同樣的設定在設定頁面。
兩組設定
lip 的設定不多,分成兩組,稱為作用域:
| 作用域 | 適用於 | 鍵 | 命令 |
|---|---|---|---|
| 使用者 | 你本人,在每個工作區裡 | github_proxy、language | lip config … |
| 工作區 | 某一個伺服器資料夾 | restart | lip config … --workspace |
帶 --workspace 的命令作用於你目前所在的資料夾。不帶它的命令作用於你的使用者設定,與你在哪個資料夾無關。
檢視和修改設定
lip config 有四條命令。
檢視某個作用域的全部設定:
lip config list┌──────────────┬───────────┐
│ Key │ Value │
├──────────────┼───────────┤
│ github_proxy │ (not set) │
│ language │ (not set) │
└──────────────┴───────────┘lip config list --workspace┌─────────┬───────┐
│ Key │ Value │
├─────────┼───────┤
│ restart │ never │
└─────────┴───────┘(not set) 表示這個鍵沒有值。(empty) 表示它被設成了空值,對 github_proxy 來說這是一種單獨的選擇(見下文)。
檢視一項設定:
lip config get language修改一項設定:
lip config set language zh-Hans✓ Config key 'language' set to 'zh-Hans'.鍵不允許的值,lip 會拒絕,並且什麼都不改。
刪除一項設定,讓它回到預設值:
lip config delete language✓ Config key 'language' deleted.lip config get 和 lip config list 可以加 --json 供指令碼使用。鍵用錯了作用域會失敗,錯誤資訊會告訴你該加上還是去掉 --workspace。
各個鍵
兩個設定檔的完整說明見設定檔。
github_proxy
作用域:使用者。值:一個 URL,或空。預設:未設定。
lip 如何連線 GitHub。大多數套件都是從那裡下載的。
| 值 | lip 的做法 |
|---|---|
| 未設定 | 直接連線 GitHub。介面連不上 GitHub 時,可能會請你做出選擇。 |
| 空 | 直接連線 GitHub,介面也不再詢問。 |
| 一個 URL | 發往 GitHub 的請求先走這個地址,失敗後再直接連線。 |
language
作用域:使用者。值:en、zh-Hans 或 zh-Hant。預設:未設定。
介面的語言:英語、簡體中文或繁體中文。沒有值時,介面跟隨系統語言;系統語言既不是英語也不是中文時,使用英語。
lip config set language zh-Hant這隻改變介面。命令在終端機裡輸出的內容始終是英語。
restart
作用域:工作區。值:never 或 on-failure。預設:never。
這個工作區的伺服器當機(也就是以非 0 的結束代碼結束)時,lip 是否重新啟動它。
lip config set restart on-failure --workspace設為 on-failure 後,lip 會等 5 秒再啟動伺服器,10 分鐘內最多 5 次。見當機後自動重新啟動。
GitHub 很慢或被屏蔽時
lip 的大多數套件都從 GitHub 下載。在 GitHub 很慢或連不上的地方,安裝會失敗,並提示:
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/ 之後,對
https://github.com/LiteLDev/LeviLamina.git/info/refs的請求會發往
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 不推薦任何代理伺服器。 代理伺服器能看到你通過它下載的所有內容,也有可能篡改它。請使用你自己或你信任的人執行的代理伺服器。
設定代理伺服器
lip config set github_proxy https://proxy.example.com/把地址換成你的代理伺服器地址。此後每條命令都會使用這項設定。
測試代理伺服器
lip 檢查能否連上 GitHub 的方法,是請求 LeviLamina 的版本清單。你可以通過代理伺服器請求同樣的內容。可用的代理伺服器會返回 200:
curl.exe -s -o NUL -w "%{http_code}" "https://proxy.example.com/LiteLDev/LeviLamina.git/info/refs?service=git-upload-pack"curl -s -o /dev/null -w "%{http_code}\n" "https://proxy.example.com/LiteLDev/LeviLamina.git/info/refs?service=git-upload-pack"介面會替你做這項測試:你在設定頁面輸入代理伺服器後,它會先測試、再儲存。見設定。
命令能成功,並不說明代理伺服器可用,因為 lip 會回退到直接連線 GitHub。如果設定了代理伺服器後安裝仍然很慢,請測試一下代理伺服器。
移除代理伺服器
不再使用代理伺服器,並讓介面在連不上 GitHub 時重新詢問:
lip config delete github_proxy不再使用代理伺服器,並告訴 lip 你就是直接連線,這樣介面不會再詢問。做法是把它設成空值:
lip config set github_proxy --% ""lip config set github_proxy ""在 PowerShell 裡需要 --%:不加的話,Windows PowerShell 會把空值丟掉。在介面裡,可以在設定頁面為 GitHub 代理伺服器選擇「直接連線」。
系統代理伺服器
github_proxy 不是普通的 HTTP 代理伺服器。如果你的網路有普通的 HTTP 代理伺服器,lip 不需要專門的設定就會使用它:
- lip 會遵循你執行它的那個終端機裡的環境變數
HTTPS_PROXY、HTTP_PROXY、ALL_PROXY和NO_PROXY(或同名的小寫變數)。 - 沒有這些變數時,它使用系統設定的代理伺服器。
$env:HTTPS_PROXY = "http://proxy.example.com:8080"
lip install LegacyScriptEngine#luaHTTPS_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 用到的每個檔案都列在檔案和目錄裡。
移動或複製伺服器資料夾時,工作區設定會跟著走。使用者設定不會。