ソースから Ghostty をビルドする

ソースコードから Ghostty を自前でビルドします。これは、バイナリやパッケージを 利用できない人、あるいは Ghostty に貢献したい開発者にのみ推奨されます。

Tip

ほとんどのユーザーにとって、ソースから Ghostty をビルドすることは推奨されません。 ビルド済みのバイナリやパッケージを利用できるなら、そちらを使ってください。お使いのプラットフォーム向けのビルド済みバイナリやパッケージがあるかは、バイナリとパッケージのページ で確認してください。

Ghostty を開発またはパッケージングするつもりなら、それぞれ"Ghostty を開発する" と "Ghostty をパッケージングする" のドキュメントも参照してください。このページは、個人的な使用のためにソースから Ghostty をビルドする必要がある(またはビルドしたい)エンドユーザー向けです。

Ghostty をビルドするには、まず Zig をインストールする必要があります。

Important

Zig はまだ急速に進化している言語であるため、各バージョンの Ghostty は 特定の バージョンの Zig でのビルドのみ保証されています。古い Zig コンパイラでも新しい Zig コンパイラでも、Ghostty をビルドできない場合があります。 パッケージマネージャーが Ghostty が必要とするバージョンと異なる Zig を採用している場合は、Zig ダウンロードページ の静的バイナリリリースの Zig コンパイラを使用できます。

各 Ghostty バージョンが必要とする Zig のバージョンは次の通りです:

Ghostty バージョンZig バージョン
1.0.x0.13.0
1.1.x0.13.0
1.2.x0.14.1
1.3.x0.15.2
tip0.15.2

公式のビルド環境は Nix で定義されています。Ghostty のビルドに Nix を使う必要はありませんが、Nix 環境は CI テストの実行とリリース成果物のビルドを行う環境であり、したがって Ghostty をビルドする最も信頼性の高い方法です。Nix 環境の設定方法は「Nix でビルドする」 セクションを参照してください。

プラットフォームによっては、Ghostty のビルドに追加の依存関係をインストールする必要があるかもしれません。Linux は Linux を、macOS は macOS を参照してください。

ソースコードを取得する

まずは Ghostty のソース tarball をダウンロード することから始めます。

Warning

Git リポジトリをチェックアウトしてソースからコンパイルすることもできますが、これは Ghostty の開発者やコントリビューター以外には推奨しません。これは、ソース tarball にはさまざまな前処理済みファイルが含まれており、Ghostty がコンパイルに必要とする依存関係を大幅に減らせるためです。

Ghostty に貢献するつもりなら、開発環境での Ghostty のビルド方法については"Ghostty を開発する" のドキュメントを参照してください。手順の大部分はまったく同じですが、簡単のために、これ以降はソース tarball ベースのビルドを前提とします。

安定版リリースでは、ソース tarball と付随するチェックサムは release.files.ghostty.org で次のパスにあります。ここで VERSION は 1.0.0 のような接頭辞なしのバージョン番号です:

https://release.files.ghostty.org/VERSION/ghostty-VERSION.tar.gz
https://release.files.ghostty.org/VERSION/ghostty-VERSION.tar.gz.minisig

署名ファイルは minisign で以下の公開鍵を使って署名されています:

RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV

開発("tip")バージョンのソース tarball は、GitHub の tip release から、ghostty-source.tar.gz という名前で入手できます。

Important

ソース tarball は、GitHub が自動生成する "Source code (zip)" や "Source code (tar.gz)" とラベル付けされた tarball とは異なります。後者には前処理済みファイルがまったく含まれておらず、Git チェックアウトと同一です。

リリース tarball を展開し、展開されたソースフォルダに移動します:

tar -xf ghostty-VERSION.tar.gz
cd ghostty-VERSION/

# Or when using a tip source tarball:
# (REVISION is the commit SHA of the latest commit)

tar -xf ghostty-source.tar.gz
cd ghostty-VERSION-main+REVISION/

Zig と必要な依存関係がインストールされていれば、zig build でバイナリをビルドできます:

zig build -Doptimize=ReleaseFast

Linux では、これにより zig-out/bin/ghostty にそのまま使えるバイナリがビルドされます。macOS では、zig-out/Ghostty.app に app bundle がビルドされます。

Tip

Linux ユーザー向け:システム全体またはユーザーアカウントへのインストールは、インストールディレクトリ を参照してください。

Tip

デバッグビルドの場合は -Doptimize=ReleaseFast フラグを省きます。デバッグビルドはリリースビルドより極端に遅く(100 倍以上遅い)ため、開発でのみ使ってください。

Linux

依存関係

Linux では、Ghostty をビルドする前に Ghostty の依存関係のヘッダパッケージをインストールする必要があります。ソースビルドに必要な依存関係は少数だけです。Ghostty はデフォルトで他のすべてを静的にビルドするためです。

必須の依存関係:

  • gtk4
  • libadwaita
  • gtk4-layer-shell
  • pkg-config または pkgconf
  • gettext

Important

Git チェックアウトを使う場合は、これらの依存関係もインストールする必要があります:

Tip

ディストロにまだ gtk4-layer-shell がパッケージされていない場合(Ubuntu 24.04、Debian 12、Linux Mint 22.1、OpenSUSE など)、Ghostty にソースから gtk4-layer-shell をコンパイルさせる必要があります。zig build に旗標 -fno-sys=gtk4-layer-shell を追加してください。

Alpine

doas apk add \
  gtk4.0-dev \
  libadwaita-dev \
  pkgconf \
  ncurses \
  gettext

Arch Linux

sudo pacman -S \
  gtk4 \
  gtk4-layer-shell \
  pkgconf \
  libadwaita \
  gettext

Debian と Ubuntu

sudo apt install \
  libgtk-4-dev \
  libgtk4-layer-shell-dev \
  libadwaita-1-dev \
  gettext \
  libxml2-utils

Debian unstable/testing では、ビルドに gcc-multilib パッケージも必要です。

Fedora

Fedora のバリエーションでは、

sudo dnf install \
  gtk4-devel \
  gtk4-layer-shell-devel \
  zig \
  libadwaita-devel \
  gettext

Fedora Atomic のバリエーションでは、

rpm-ostree install \
  gtk4-devel \
  gtk4-layer-shell-devel \
  zig \
  libadwaita-devel \
  gettext

Gentoo

emerge -av \
  libadwaita \
  gtk \
  blueprint-compiler \
  gettext

openSUSE Tumbleweed

sudo zypper install \
  gtk4-devel \
  libadwaita-devel \
  pkgconf \
  ncurses-devel \
  zig \
  gettext \
  gtk4-layer-shell-devel

openSUSE Leap

sudo zypper install \
  gtk4-devel \
  libadwaita-devel \
  pkgconf \
  ncurses-devel \
  zig \
  gettext

Solus

sudo eopkg install \
  libgtk-4-devel \
  libadwaita-devel \
  pkgconf \
  zig \
  gettext

Void

sudo xbps-install \
  gtk4-devel \
  gtk4-layer-shell-devel \
  libadwaita-devel \
  pkg-config \
  zig \
  gettext

インストールディレクトリ

zig build と -p(prefix)旗標を使って、Ghostty を目的のディレクトリにインストールします。これにより、シェル統合、アイコン、GTK ショートカットなどの機能がすべて動作するよう、正しい FHS ディレクトリ構造が整えられます。

ローカルの非特権インストールには $HOME/.local を推奨します:

zig build -p $HOME/.local -Doptimize=ReleaseFast

典型的な Freedesktop 互換のデスクトップ環境(GNOME、KDE など)では、これで Ghostty がアプリランチャーのアプリとして利用可能になります。すぐに表示されない場合は、ログアウトしてログインし直すか、最悪でも再起動が必要かもしれません。

アプリランチャーのアプリアイコンで Ghostty が起動しない場合は、~/.local/bin が システム の PATH にあることを確認してください。そのパスはデスクトップ環境自体の PATH に含まれている必要があります。お使いのデスクトップ環境とディストリビューションごとにやり方を調べてください。

-fno-sys=gtk4-layer-shell 旗標を付けて Ghostty をビルドした場合は、追加で LD_LIBRARY_PATH 環境変数を $HOME/.local/lib に設定する必要があるかもしれません。デスクトップ環境から起動するときにグローバルの LD_LIBRARY_PATH を汚染するのを避けるには、patchelf でインストール済みの Ghostty elf にパッチを当てるだけで済みます:

patchelf --set-rpath '$ORIGIN/../lib' $HOME/.local/bin/ghostty

システム全体へのインストールには /usr を推奨します(おそらく sudo が必要です):

zig build -p /usr -Doptimize=ReleaseFast

Nix でビルドする

Nix のビルド環境には、他の Nix dev shell と同じように nix develop コマンドでアクセスできます(nix-command 実験的機能 が有効でない場合は nix-shell)。

nix-direnv を使っている場合、Ghostty は .envrc ファイルを提供しており、direnv allow で source できます。これにより、Ghostty リポジトリに出入りすると同時に、Ghostty 開発環境にもシームレスに出入りできます。Direnv は必須ではありません。

Nix 環境を設定したら、他のディストリビューションと同じ zig build を実行するか、Nix でパッケージをビルドすることもできます:

nix build .#ghostty

バイナリはその後 ./result/bin/ghostty の下に置かれます。

Nix でのビルドは Zig でのビルドと同じ結果を得られるはずですが、Ghostty のあらゆる部分を確実にビルドできる、より高い再現性の保証が付きます。

macOS

依存関係

Xcode

macOS アプリをビルドするには、Xcode がインストールされ、アクティブな開発者ディレクトリが Xcode を指している macOS マシン上でビルドする必要があります。そうなっているか確信が持てない場合は、xcode-select --print-path の出力を確認してください:

xcode-select --print-path
/Library/Developer/CommandLineTools        # <-- BAD

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
xcode-select --print-path
/Applications/Xcode.app/Contents/Developer # <-- GOOD

上記のようなことが起こるのは、Xcode のインストール 後 に Xcode Command Line Tools をインストールした場合です。

次に、macOS SDK、iOS SDK、Metal Toolchain がインストールされていることを確認してください(Xcode → Settings → Components から)。

その他の依存関係

Ghostty はいくつかの追加ライブラリの依存関係も必要とします。インストール方法は自由ですが、最も簡単なのは Homebrew 経由です:

brew install gettext

Note

Nix 開発環境 を使っている場合、これらの依存関係は自動で処理されるため、手動でインストールする必要はありません。

Mac .app

zig build -Doptimize=ReleaseFast

これによりアプリが zig-out/Ghostty.app に出力されます。

作成されるアプリは "ReleaseLocal" Xcode ビルド構成を使用します。"ReleaseLocal" ビルド構成はローカルリリースビルド専用で、「Library Validation」などの一部のセキュリティ機能を無効にして、コード署名アイデンティティを用意しなくても実行しやすくしています。これらのビルドは配布用ではありません。すべてのセキュリティ機能を備えたリリースビルドが必要な場合は、公式のバイナリビルドを使用 してください。