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をビルドし、そのバイナリを$PATHzedという名前で使用できるようにする必要があります。
  • 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バイナリがいくつかあります(12)。これらの問題によりCLIバイナリの名前を変更する場合は、zeditzeditor、またはzed-cliをお勧めします。
  • Zedは、rustup/rbenv/pyenvなどと同様の方法で、一般的な開発ツールを自動的に正しいバージョンでインストールします。これは議論の余地があることを理解しています。こちらをご覧ください
  • ユーザーは、ローカルおよびzed-industries/extensionsから拡張機能をインストールできます。これらの拡張機能は、必要に応じて、言語サーバーなどの追加ツールをインストールする場合があります。将来的には、これをより安全にしたいと考えています。こちらをご覧ください
  • Zedは、デフォルトでいくつかのオンラインサービス(AI、テレメトリ、コラボレーション)に接続します。AIとテレメトリは、ユーザーがzed設定を使用するか、デフォルト設定ファイルをパッチ適用することで無効にできます。
  • 上記の問題の結果として、zedは現在サンドボックスとうまく連携していません。こちらをご覧ください

Flatpak

[!WARNING] Zedの現在のFlatpak統合は、起動時にサンドボックスを終了します。Flatpakのサンドボックスに依存するワークフローは、期待どおりに機能しない場合があります。

Flatpakパッケージをローカルでビルドおよびインストールするには、以下の手順に従ってください

  1. こちらに概要が示されているように、ディストリビューション用のFlatpakをインストールします。
  2. script/flatpak/depsスクリプトを実行して、必要な依存関係をインストールします。
  3. script/flatpak/bundle-flatpakを実行します。
  4. これで、パッケージがインストールされ、target/release/{app-id}.flatpakでバンドルが利用可能になりました。

トラブルシューティング

Zedをコンパイルできない

問題を報告する前に、rustup updateで最新のrustcバージョンがあることを確認してください。

依存関係が不安定な機能を使用していると主張するCargoエラー

cargo cleancargo buildを試してください。

Vulkan/GPUの問題

GPUまたはVulkanの問題により、Zedが実行時にクラッシュする場合は、vkcube(通常はさまざまなディストリビューションのvulkaninfoパッケージの一部として利用可能)を実行して、問題の原因をトラブルシューティングできます。vkcube -m [x11|wayland]を実行して、X11モードとWaylandモードの両方で実行してみてください。一部のバージョンのvkcubeは、X11で実行するにはvkcubeを使用し、Waylandで実行するにはvkcube-waylandを使用します。

複数のGPUがある場合は、別のGPUでZedを実行することもできます(たとえば、vkdevicechooserを使用)。