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
クレートです。開発環境で実行するには
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には2つのメインバイナリがあります
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
を使用して必要な値を入力できます。このファイルは、ファイルがFreeDesktop標準に従うように、$APP_ID.desktop
に名前を変更する必要があります。- 必要なライブラリがインストールされていることを確認する必要があります。現在のリストは、システムのビルドされたバイナリを調べることで取得できます。
- 完全なビルドスクリプトの例については、script/bundle-linuxを参照してください。
- 環境変数
ZED_UPDATE_EXPLANATION
を指定してZedをビルド(または実行)することにより、Zedの自動更新を無効にし、手動でZedを更新しようとするユーザー向けの手順を提供できます。例:ZED_UPDATE_EXPLANATION="Please use flatpak to update 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をコンパイルできない
問題を報告する前に、rustup update
で最新のrustcバージョンがあることを確認してください。
依存関係が不安定な機能を使用していると主張するCargoエラー
cargo clean
とcargo build
を試してください。
Vulkan/GPUの問題
GPUまたはVulkanの問題により、Zedが実行時にクラッシュする場合は、vkcube(通常はさまざまなディストリビューションのvulkaninfo
パッケージの一部として利用可能)を実行して、問題の原因をトラブルシューティングできます。vkcube -m [x11|wayland]
を実行して、X11モードとWaylandモードの両方で実行してみてください。一部のバージョンのvkcube
は、X11で実行するにはvkcube
を使用し、Waylandで実行するにはvkcube-wayland
を使用します。
複数のGPUがある場合は、別のGPUでZedを実行することもできます(たとえば、vkdevicechooserを使用)。