
2026/01/31 20:22
**Guix System:Nixユーザーにとっての第一印象**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
改訂版まとめ
著者は Arch、Gentoo、Fedora、および NixOS を試した結果、ディレクトリごとの環境と宣言的設定が自分のワークフローに最も合致しているため Guix System に移行しました。Guix は Nix 言語ではなく Scheme(Guile)を使用しており、著者はパッケージ定義がより扱いやすいと感じています。
インストールは簡単です。
dd で書き込んだ USB イメージからクリーンにブートでき、インストーラの TUI から KDE Plasma を有効化できます。最初のダウンロードはミラー制限(≈50 kbps)により遅く (~2.5 h) なりましたが、その後正しいチャンネルを有効にすると更新速度が速くなります。
インストール後、デフォルトのディスプレイマネージャは GDM でした。SDDM に切り替えると Plasma UI のタイトルバーや境界線が欠けていた問題が解消されました。NVIDIA RTX 5070 ドライバを使用するにはプロプライエタリドライバ用に Nonguix チャンネルを有効化する必要があります。
nomodeset や NVIDIA の変換オプションで試みた最初の試行はカーネルパニックと FSCK ログを引き起こしました。著者は最終的に Nonguix からフルカーネル+ファームウェアブロブのみを追加し、guix pull → guix system reconfigure /etc/config.scm を実行して再構成し、再起動することでドライバの問題なく成功しました。
著者は LibreWolf、Icedove、LibreOffice、開発ツール、Emacs、Discord(ウェブ版)、Steam など主要アプリケーションをインストールし、Steam は Nonguix 経由で動作し、Discord はウェブ経由でアクセスできると報告しました。Guix の組み込みホーム設定、Scheme ベースのパッケージ定義、およびコミュニティサポートを称賛する一方、代替サーバーが遅いこと、コマンド構造が不明瞭であること、検索機能が限定的であることなどの欠点も指摘しました。
総合すると経験は肯定的です。著者はたまにダウンロード速度が遅く、ブート時に
nomodeset が必要だったものの、日常的に Guix System を使用する予定です。本文
目次
- 私のGuix Systemへの旅
- インストーラ印象
- 迷子になっているとき
- 悪魔への同情
- 目的
- 結果
6.1 良かった点
6.2 曖昧な点
6.3 悪かった点
- 全体評価
- 備考
1. 私のGuix Systemへの旅
バックストーリーに興味がないならこの章は飛ばしても構いません。主題に入る前に、宣言型ディストリビューションに興味を持ち始めた経緯を簡単に振り返ると整理しやすくなると思ったからです。
私は約10年間Linux専用ユーザーで、ほかの多くの人と同じようにディストリ変更の厳しい旅路を歩んできました。Mintから始め、速度が遅いと感じたらUbuntuへ移行、その後「手引きが必要」と思ったのでArchへ、さらに「より難しい方が良い」という欲求でGentooへ。数か月で燃え尽きてFedoraに諦めました。Fedoraは非常に安定し、総合的に優れたシステムでした。再び興味を抱き、今日の冒険前にはついにNixOSへ移行しました。
Nixについて最初に耳にしたときから少しずつ関心が湧いていましたが、最近まで「DevOps向けツール」としてしか見なかったので、構文は奇妙で再現性のある環境が必要だという点も無意味に感じていたため、初心者にはおすすめされないNix Pillsなどに抵抗を覚えていました。
では、私のように「結局はNixを使わないといけない」と決めた理由は何でしょうか?最初はNixがより優れているというよりも、他の選択肢が悪くてそれだけで十分だったのでしょう。
転換点となった大きな二つの理由は次の通りです。
- ディレクトリ単位の環境 – 複数の技術を試す際にプロジェクトごとに専用環境があると便利です。私のブログはJekyllで、良いRuby環境が無ければ
が面倒でsudoが必要でした。Nixではbundler install
に数個のパッケージを記述するだけで、1フォルダにRubyだけをインストールできました。shell.nix - インストール済みパッケージの管理 – 多くのマネージャーはパッケージリストが制御不能になりやすいです。NixOSではシステムは編集したファイルで定義され、バージョン管理可能で明示的かつ集中化されています。
NixOS以外にも宣言型ディストリがあります。GNUは早期にNixをフォークし、自らのスキーム(Guile Scheme)であるGuixという派生版を作りました。Guixの大きな特徴は、煩雑なNix言語の代わりにSchemeを使う点です。私は一度Guixを試しましたが、KDEのサポートがほとんどなくハードウェア問題もあってまだ準備不足でした。
3年後、Guixは1.5.0リリースで多くの安定化と初めて本格的にKDEを公式対応にしました。今こそ再挑戦する最適なタイミングです。本稿ではインストールから最初の3〜4日間までの体験を書き綴ります。
2. インストーラ印象
USBに挿し、
ddでイメージを書き込み、再起動。Linuxシステムを一度でも導入したことがあれば、同じ流れです。
BIOSでペンディングを選択するとモニタは深い青色に輝き、Guix Systemのロゴが表示されます…その後赤く変わります。「CPU統合GPUはフリーソフトウェアのファームウェアに対応していません」。ヘルプポップアップが次回はフリーなハードウェアを選ぶよう促します。インストーラ本体へ移行しました。
インストーラ自体はとてもシンプルです – 古典的なncurses TUIで必要事項を尋ね、基本設定ファイルを提供します。前回のGuix試行とは異なり、KDE Plasmaが公式オプションとして選べます。GNOMEや他のオプションに興味が湧かなかったので、私はそれを選択しました。
インストールボタンを押すとPCは次の2½時間使用不可になります – 現在では許容できません。光ファイバー(最大1 Gbps)でもパッケージのダウンロード速度は約50 kB/sで、5〜10 MBのパッケージが数分かかります。
再起動後も問題は悪化しました。
3. 迷子になっているとき
KDE Plasmaを選択したためにSDDMが表示されるはずでしたが、代わりにGDMがロードされました(デフォルト設定)。ログインすると慣れたPlasmaのスピナーが表示されますが、やや遅いです。
ほとんどパッケージがインストールされていない状態でKonsoleを起動しました。タイトルバーも枠線もなく左上隅に固定されたまま移動できませんでしたし、メニュー項目もありません。苛立ちからまずは更新を試みました。
guix pull… は高速でダウンロードできますが、インデックス作成に10〜12分かかります。その後 guix system reconfigure /etc/config.scm を実行すると速度が向上(30–50 Mbps)しました。再起動してもPlasmaはまだ不安定です。
GPUドライバの問題を疑い、LXQtデスクトップに切り替えて再起動しました – これで正常に動作し、EmacsとLibreWolfが使えました。
#guix IRCで助けを求めると、Rutherther が
nomodeset を提案しました。あまり効果はありませんでした。
4. 悪魔への同情
純粋なGuix Systemに固執している間、私は Nonguix(非フリーチャンネル)を検討しました。Guix の調査によると、約64 %のユーザーが Nonguix を有効化しています – FOSS ではまだ置き換えられない非フリーパッケージやドライバを提供します。
有効化するには
~/.config/guix/channels.scm と /etc/guix/channels.scm に次のコードを追加し、再度 guix pull を実行します:
(cons* (channel (name 'nonguix) (url "https://gitlab.com/nonguix/nonguix") (introduction (make-channel-introduction "897c1a470da759236cc11798f4e0a5f7d4d59fbc" (openpgp-fingerprint "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) %default-channels)
再度プルとリコンフィグ後、NVIDIA ドライバを「NVIDIA transform」(自動的にプロプライエタリドライバを使用)でインストールしようとしましたが、カーネルパニックと大量の FSCK ログが発生しました。
代わりに Nonguix の事前構築ISOからシステムをビルドしたところ動作しましたが、以下の問題がありました: 2022年にビルドされたもの(GNU Savannah ミラーは遅い)、手動でチャンネルオーバーライドが必要、生成される
channels.scm に Nonguix が含まれていない。調整と再構成後、i3 で最終的に起動できました。
5. 目的
私は NixOS と同等のワークフローを望んでいました:
- ブラウザ – Firefox(LibreWolf 推奨)
- メールクライアント – Thunderbird(または Icedove)
- オフィススイート – LibreOffice
- 開発環境 – Rust, Zig, Scheme, TypeScript
- Emacs – Vterm サポート付き
- Discord – ブラウザ版か Flatpak
- Telegram – デスクトップクライアント
- Steam – 非フリードライバ対応
- NVIDIA ドライバ – CPU 統合GPUにオフロード
Steam とプロプライエタリNVIDIAドライバは「難しい」(非フリー)でした。Discord は「不可能」(Nonguix でもパッケージ化されていない)と感じました。
6. 結果
図 6: 私がパッケージした Wezterm と Emacs を実行中のデスクトップ。
| 項目 | 成果 |
|---|---|
| ブラウザ | LibreWolf – Firefox より軽快。 |
| メール | Icedove が期待通り動作。 |
| オフィス | LibreOffice 利用可能;最先端ではないが十分。 |
| 開発環境 | に を記述すればセットアップが簡単。 |
| Emacs | 動作し、 が必要。 |
| Discord | ブラウザ版で十分;Flatpak も可能。 |
| Steam | Nonguix 経由でインストールし、プロプライエタリドライバで動作。 |
| NVIDIA ドライバ | オープンドライバとカーネルモード設定を有効化して機能。 |
6.1 良かった点
- コミュニティ – Libera の #guix、Reddit、Codeberg にて親切でサポートが充実。
- ホーム構成 – 組み込みでファーストクラス、サードパーティ拡張は不要。
- パッケージの可用性 – FOSS パッケージでほぼ必要を満たし、Nix の設定に相当するものが存在。
- Scheme – Nix 言語より理解しやすく、Emacs でデバッグも可能。
- ハックの容易さ – リポジトリクローン→コミット認証→バイトコードビルドまで約15分。
6.2 曖昧な点
- 検索 –
は便利だが、Nix のように追加パラメータを持たない。guix search - ドキュメント – 詳細はあるものの散在し、章ごとに概念が分かれやすい。
6.3 悪かった点
- サブスティテートサーバーの安定性 – 速度が遅く(50–100 kB/s)、ビルドを遅延させる。
- コンテンツ可用性 – Nix に比べ高品質ガイドが見つけにくい。
- ビルド速度 –
は Nix のguix pull
より遅い。nix flake update - コマンドの明確さ – 多くのコマンドが一括で扱われ、初心者は圧倒される可能性。
7. 全体評価
現在のシンプルな Guix ホーム構成例
(define-module (guix-home-config) #:use-module (nongnu packages) #:use-module (gnu packages) #:use-module (gnu home) #:use-module (gnu home services) #:use-module (gnu home services shells) #:use-module (gnu services) #:use-module (gnu system shadow) #:use-module (guix gexp)) (define %packages (list "git" "openssh" "librewolf" "ripgrep" "bat" "eza" "fd" "zoxide" "bc" "gimp" "libreoffice" "jujutsu" "starship" "direnv" "okular" "gwenview" "bitwarden-desktop" "icedove-wayland" "telegram-desktop" "emacs-vterm" "ispell" "hunspell" "wezterm")) (define %nonfree-packages (list "steam-nvidia" "mpv-nvidia")) (define home-config (home-environment (packages (specifications->packages (append %nonfree-packages %packages))) (services (append (list (service home-bash-service-type (home-bash-configuration (aliases '(("ls" . "eza"))) (bashrc (list (local-file "./bashrc.sh"))))) (service home-files-service-type `((".guile" ,%default-dotguile) (".Xdefaults" ,%default-xdefaults))) (service home-xdg-configuration-files-service-type `(("gdb/gdbinit" ,%default-gdbinit) ("nano/nanorc" ,%default-nanorc))))) %base-home-services)))) home-config
Guix System に対しては非常に好意的です。数年前に苦戦したことを考えると、今回の体験では短時間で全てが理解できました。今後も長期的に日常運用として採用したいと思います。実行速度がやや遅く、ダウンロード速度が時折低下する点(
nomodeset が必要になることも)を除けば、NixOS とほぼ同等の体験です。
パッケージングについては後日、Wezterm を自分でパッケージ化した経験を踏まえた記事を書きます。システム導入と同様に手間がかかることを実感しています。
ご覧いただきありがとうございました!
8. 備考
- インストーラは比較的単純。
- ハードウェア非互換の警告あり。
- 最低でも2½時間(ミラーが50 kB/sに制限)でインストール完了。
- KDE タイトルバーが欠落し、デフォルトでは動作しない。
- デフォルトは X11、Wayland は NVIDIA の問題で実現できず。
- IRC で
を推奨されてもほとんど効果なし。nomodeset - Nonguix を有効化するとシステムが起動しなくなる。
- Nonguix ISO からインストールする場合、古いリリースでエラー多発、導入に
が必要。--disable-authentication - ダウンロード速度は再プル後に正常化。
を使うタイミングが不明確。sudo- i3 を低解像度で動かすと独特の雰囲気があるが、完全に機能するシステムを好む。