NixOS 〜理想は高いが現実はきびしい〜

NixOSを試し初めて数日経ちます.インストールしてみた環境は,

  1. M4 Mac mini: macOS + UTM1
  2. Core i7実機
  3. Core i7: Manjaro (Linux) + KVM/QEMU

この中で一番サクサク動くのは,1のM4 Mac mini + UTMです.Aarch64だとあれはだめ,これはだめ,という制約は今のところないです.

NixOSを選んだ理由の一つには,昔Slackwareで標準デスクトップに選ばれたことのあるEnlightenmentが選べるということもあります.よく覚えていないのですが,何かキラキラした印象が残っていて,また使ってみたいと思いました.

最初はGNOMEを利用したBudgieというデスクトップにしました.これまで使用したことがない感じなので選びました.アプリケーションの起動は,MacではCommandキーを押してドックとアプリケーションの一覧を表示して行います.あまりそういうスタイルにはなじみがないのですが,だからいいのかなと思いました.

しばらくしてわかってきた頃に,Enlightnmentに切り替えを敢行しました.普通のLinux distroであればCUIやGUIのパッケージマネージャーで行うわけですが,/etc/nixos/configure.nixという設定ファイルをエディターで書き換えます.そこがNixOSの一番の特徴です.そして,

nixos-rebuild switch

というコマンドをroot権限で実行すると,必要なパッケージの追加やデフォルト設定が行われて,rebootすると新しいデスクトップ環境で動きます.

最初のBudgieからKDE Plasmaは問題なく行きました.しかし,期待のEnlightnmentはエラーが出てしまい,切り替えることができませんでした.ネットで調べるとPythonのモジュールの何かの依存性に問題があってしばらくこの状態が続いているようです.

ManjaroでKDE Plasma, DebianでもKDE PlasmaなのでNixOSでもKDE Plasmaにしたままでは何の面白みもないので,そこでKDE PlasmaからBudgieに戻しましたが,マウスポインターが半透明のグレーの正方形(スクリーンショット画像のFirefoxのアイコンの上のグレーの正方形)になって,どういう状況でも変わらず,非常に使いにくくなってしまいました.

ドックのFIrefoxのアイコンの上にあるグレーの正方形がマウスポインターの化けた姿

また,ブートローダーのinstall, updateに何か制約があるのか,3のCore i7のKDE/QEMU環境ではうまく起動しくれません.

一つの設定ファイルの書き換えでシステムを大きく組み替える,という高い理想のシステムを大胆な仕組みで実現しようとしていて,そこは大いに評価したいですが,実用的にはなかなか厳しいかなと思います.

Core i7 の実マシンはある程度「評価」してまたDebianに戻します.

  1. MacBook Air M4 + UTMでもインストールしましたが,本質的にはM4 Mac miniと変わらないので割愛. ↩︎

RPi4とRPi5の比較

Raspberry Pi 4 Model B (RPi4)とRaspberry Pi 5 (RPi5)のRedis Object Cacheの反応時間の比較です.

Raspberry Pi 4 RAM 8GBのRedis Object Cacheの反応時間
Raspberry Pi 4 RAM 8GBのRedis Object Cacheの反応時間
Raspberry Pi 5 RAM 8GBのRedis Object Cacheの反応時間
Raspberry Pi 5 RAM 8GBのRedis Object Cacheの反応時間

差は歴然としています.RPi4ではピークが39msで平均は目の子で23msくらいですが,RPi5ではピークは14ms,平均は5msくらいです.

ざっと5倍くらい速い,というこれまでもっていた印象があてはまります.

RPi5 is in charge now

約5日間に渡り,Raspberry Pi 4 Model B RAM 8GBで試験運用を続けました.

サーバー(https, samba等)としてのレスポンスは問題ありません.brute-force attackなどに対しては適度に遅いと言えるかもしれません.

GUIコンソールでFirefoxを用いてWordPressの管理や投稿・編集をするのも十分速いとは言えませんが,ストレスになるほど遅くもありません.

ということで一応の成果を見て,本来のRaspberry Pi 5 (RPi5) RAM 8GBに交代しました.

予備用にRPi5をもう一台買うべきと考えていましたが,RPi4が十分使えるので予備用の位置づけにします.来たるべきRaspberry Pi 6の発売を待ちます.

UTMでManjaro ARM

何とか動かしたいと思い,普通のアプローチではうまくいかないのでネット検索したら手順を詳細に紹介されている記事を見つけました.

この記事の表題にあるように,普通にManjaro ARMのGeneric-EFIイメージを使ってUTMで起動させると,初回の設定モードは動くのですが,設定を終えてリブートすると起動してくれないのです1

最新のUTM2と最新のManjaro ARM Genericのイメージファイルで上記記事のとおりに手順を踏むと3,初回の設定ができて,リブートもできます.またLinux (Kernel)とLinux-api-headersをupdateから除外してupdateもかけられますが,筆者の場合そこでエラーが出てしまいました.

仮にこれでうまく動くようになってもKernelのupdateが通常のお手軽な手順ではできないのが残念です.

ということで,こちらでは投了です.

Apple SiliconのMac上でUTMを使ってKDE Plasma Desktopを動かしたいのであればDebian ARM64が一番いいと思います.

いちおう記念撮影.

たぶん,もう少しいじって消します.箱庭遊びなんで😓

  1. 筆者のケースではフリーズではなく,EFIのshellが起動する. ↩︎
  2. 4.7.5 ↩︎
  3. UTMの設定が一部前後します. ↩︎

“Client IP Detector” is a bomb

旧サイトで長らく使用していたwidgetの一つ,”Client IP Detector plugin” ですが,現在のWordPressに入れると,WordPress自体が動作しなくなります.困ったものです.

WordPressのディレクトリー内の “wp-content” 内の “plugins” にプラグインに対応したディレクトリーがありますから,そのディレクトリーごと削除すれば復旧します.

気に入っていたwidgetだっただけに残念です.