為 Linux 建置 Zed
儲存庫
複製 Zed 儲存庫。
相依套件
-
安裝 Rust。如果已安裝,請確認其為最新版本。
rustup update
-
安裝必要的系統函式庫
script/linux
如果您想手動安裝系統函式庫,您可以在
script/linux
檔案中找到所需的套件清單。
後端相依套件
[!WARNING] 本節仍在開發中。說明尚未完成。
如果您正在開發 Zed 的協作功能,則需要安裝 Zed collab
伺服器的相依套件。
或者,如果您已安裝 Docker,則可以使用 Docker Compose 啟動所有 collab
相依套件。
docker compose up -d
從原始碼建置
安裝相依套件後,您可以使用 Cargo 建置 Zed。
若要建置編輯器的除錯版本
cargo run
若要執行測試
cargo test --workspace
在發佈模式中,主要的使用者介面是 cli
crate。您可以在開發中使用以下指令執行它:
cargo run -p cli
安裝開發版本
您可以使用以下指令在您的機器上安裝本地建置:
./script/install-linux
這將以發佈模式建置 Zed 和 cli,並使其在 ~/.local/bin/zed
中可用,同時將 .desktop 檔案安裝到 ~/.local/share
。
Wayland 和 X11
Zed 支援 X11 和 Wayland。預設情況下,我們會在執行時選擇可用的選項。如果您使用的是 Wayland,並且想在 X11 模式下執行,請使用環境變數 WAYLAND_DISPLAY=''
。
打包 Zed 的注意事項
感謝您承擔打包 Zed 的任務!
技術需求
Zed 有兩個主要的二進制檔案
- 您需要建置
crates/cli
並使其二進制檔案在$PATH
中以zed
為名稱可用。 - 您需要建置
crates/zed
並將其放置在$PATH/to/cli/../../libexec/zed-editor
。例如,如果您要將 cli 放置在~/.local/bin/zed
,則將 Zed 放置在~/.local/libexec/zed-editor
。由於某些 Linux 發行版(尤其是 Arch)不鼓勵使用libexec
,您也可以將此二進制檔案放置在$PATH/to/cli/../../lib/zed/zed-editor
(例如~/.local/lib/zed/zed-editor
)。 - 如果您要提供
.desktop
檔案,您可以在crates/zed/resources/zed.desktop.in
中找到範本,並使用envsubst
填入所需的值。此檔案也應重新命名為$APP_ID.desktop
,以便檔案 遵循 FreeDesktop 標準。 - 您需要確保已安裝必要的函式庫。您可以透過 檢查系統上的建置二進制檔案 來取得目前的清單。
- 如需完整建置腳本的範例,請參閱 script/bundle-linux。
- 您可以停用 Zed 的自動更新,並透過使用環境變數
ZED_UPDATE_EXPLANATION
建置(或執行)Zed 來為嘗試手動更新 Zed 的使用者提供說明。例如:ZED_UPDATE_EXPLANATION="請使用 flatpak 更新 Zed。"
。 - 請確認將
crates/zed/RELEASE_CHANNEL
檔案的內容更新為 'nightly'、'preview' 或 'stable',並且沒有換行符號。這將導致 Zed 使用憑證管理器來記住使用者的登入資訊。
其他注意事項
在 Zed,我們的首要任務是快速發展,並為我們的使用者帶來最新的技術。我們長期以來一直對軟體速度慢、過時或難以設定感到沮喪,因此我們根據這些需求建置了我們的編輯器。
然而,我們意識到許多發行版有其他的優先事項。我們希望與所有人合作,將 Zed 帶到他們最喜歡的平台上。但還有很長的路要走。
- Zed 是一個快速發展的早期專案。我們通常每週發佈 2-3 個版本,以修復使用者回報的問題並發佈主要功能。
- Linux 系統上可能存在其他幾個
zed
二進制檔案(1、2)。如果您因為這些問題而想重新命名我們的 CLI 二進制檔案,我們建議使用zedit
、zeditor
或zed-cli
。 - Zed 會以與 rustup/rbenv/pyenv 等相同的方式自動安裝正確版本的常用開發工具。我們知道這一點存在爭議,請參閱此處。
- 我們允許使用者在本地和從 zed-industries/extensions 安裝擴充功能。這些擴充功能可能會根據需要安裝更多工具,例如語言伺服器。從長遠來看,我們希望使其更加安全,請參閱此處。
- Zed 預設會連線到多個線上服務(AI、遙測、協作)。AI 和我們的遙測功能可以由您的使用者透過其 Zed 設定或透過修補我們的 預設設定檔 來停用。
- 由於上述問題,Zed 目前無法與沙盒良好地配合使用,請參閱此處
Flatpak
[!WARNING] Zed 目前的 Flatpak 整合會在啟動時退出沙盒。依賴 Flatpak 沙盒的工作流程可能無法按預期運作。
若要在本地建置和安裝 Flatpak 套件,請按照以下步驟操作
- 按照 此處 的說明,為您的發行版安裝 Flatpak。
- 執行
script/flatpak/deps
腳本以安裝所需的相依套件。 - 執行
script/flatpak/bundle-flatpak
。 - 現在,套件已安裝,並且在
target/release/{app-id}.flatpak
中有一個可用的套件。
疑難排解
無法編譯 Zed
在回報問題之前,請確認您擁有最新的 rustc 版本,方法是執行 rustup update
。
Cargo 錯誤,聲稱相依套件正在使用不穩定的功能
請嘗試執行 cargo clean
和 cargo build
。
Vulkan/GPU 問題
如果 Zed 由於 GPU 或 Vulkan 問題而在執行時當機,您可以嘗試執行 vkcube(通常作為 vulkaninfo
套件的一部分在各種發行版上提供)以嘗試找出問題的來源。嘗試透過執行 vkcube -m [x11|wayland]
在 X11 和 Wayland 模式下執行。某些版本的 vkcube
使用 vkcube
在 X11 中執行,使用 vkcube-wayland
在 Wayland 中執行。
如果您有多個 GPU,您也可以嘗試在不同的 GPU 上執行 Zed(例如,使用 vkdevicechooser)以找出問題的來源。