笠井闘志個人ウェブサイト

HTTP(旧来の,暗号化なしの方式)によって接続されています。このウェブサイトは,非対応機器や通信環境などに配慮してHTTP接続も受け付けていますが,セキュリティおよびプライバシーの関係上,可能なかぎりHTTPSで接続ねがいます。

ブログ

GNU Guixをインストールしてみた

2022-11-29

私が自由ソフトウェアに関心をいだき支持しはじめたころ,GNU GuixというGNU/Linuxディストリビューションを知った。

GNU/Linux機を二台使っていた当時,「一台ごとに,それぞれ異なる系統のディストリビューションを導入する」という習慣をもっていた。メイン利用の機器にはTrisquel GNU/Linuxを導入することとしたので,サブ機にはDebian系統ではないものを選ぼうとした。

そのとき,GNUプロジェクトによって自由であると認められたディストリビューションのなかから,GNU Guixをみつけだした。さっそくインストールしてみたが,一時間もたたずに利用をあきらめた。

日本語入力の設定をしても,すぐにもどってしまう(注:東大樹氏の記事「GNU Guixといふもの」によれば,ibus-anthyのバージョンが古いことが原因)。初期状態ではウェブブラウザが搭載されておらず,Ungoogled Chromiumなどをインストールしようとすると,とても時間がかかったうえに最後にはエラーになる。対処法もわからない。仕方なく,メイン機と同じTrisquelを導入した。

たまたまみつけた東大樹氏のウェブサイトには,GNU Guixについて書かかれていた。かれは自由ソフトウェアを支持するプログラマーだ。

機会があれば,またGNU Guixをためしてみよう。そう思っていた。

パッケージ管理への関心,systemdへの懸念

私がGNU Guixを使おうと思った理由は,おもに二つある。

一つめは,その独特のパッケージ管理の仕組みに関心をいだいたから。

このGNU Guixというもの,じつは「NixのGNU版」であり,パッケージ管理システムでもある。

GNU GuixやNixは「純粋関数型パッケージ管理システム」であり,環境のバックアップが容易であったり,信頼性が高かったりする。

ただし,パッケージをインストールするときには,ソースコードをダウンロードしてコンピュータ内でビルドする。ビルドというのは,ソースコードから実行ファイルを組立てることをいう。ちょうど「組版データを印刷して製本する」ような作業である。もちろん,ビルドは自動でおこなわれる。

GNU Guixは,既存のOS(おそらく,GNU/Linuxにかぎられない)にパッケージ管理システムとして導入することもできる。わざわざディストリビューションとして導入する必要がなかったともいえないが,つぎに述べる systemdへの懸念が,ディストリビューションを変えることを後押しした。

systemdとは,GNU/Linuxで使用されるプロセス管理システムである。これはGNU劣等一般公衆利用許諾書(GNU LGPL)にもとづいて許諾される自由ソフトウェアではあるが,その複雑さや不安定さ,セキュリティ上の弱点により,自由ソフトウェアやオープンソースを支持する人のあいだで論争になっているらしい。

有名なFLOSS紹介ウェブサイトが,systemdのないGNU/Linuxディストリビューションの一覧を公開している。さらにはsystemd反対ウェブサイトも存在する。

くわしくは,systemdの問題点をあつかったウェブサイトをお読みねがいたい。

隣県のホテルの最上階で,重要データ消失

さて,私はわけあって隣の県をおとずれていた。私は突然,GNU Guixをインストールしたいという衝動にかられた。Trisquelから重要なデータをUSBメモリに移し,べつのUSBメモリにGNU Guixのインストールイメージを書き込む。

ディスクの暗号化には手こずったが,なんとかGNU Guixをインストールすることはできた。私は,Trisquelから取り出したデータをGNU Guixに移した。

しかし,ここで問題が発覚した。なんと,重要なデータが破損しているのである。GnuPGの秘密鍵,GNU Emacsやデスクトップ環境の設定ファイル,パスワード・データベースなど,かえがきかない重要なデータばかり。しかも皮肉なことに,重要度の低いファイルはちゃんと残っているのだ。

別のバックアップから復元をこころみたところ,ほとんどのデータは復元できた。

GnuPGの場合,~/.gnupg をそのままバックアップしておいた。復元後にコマンドラインで "gpg -K" を実行すると,知人の公開鍵や8月に失効させた秘密鍵につづいて,8月に生成した秘密鍵も一覧に表示されていた。しかし,いざデータを復号する段になって,秘密鍵が破損していたためエラーが表示された。"gpg -K" で表示されるのに,破損しているということがあるのか。

秘密鍵については,バックアップからの復元をこころみる予定。もし復元できなければ,あらたに秘密鍵を生成し,鍵がとりかわったことをウェブサイトにおいて告知する。

GNU Emacsでのみ, 日本語入力可能

日本語を使う人ならだれしも,GNU/Linuxをあらたにインストールしたとき,日本語入力がしたくなるものだろう。私の場合は,ほとんど文章を書くためにコンピュータを使っているのだから,日本語入力は必須となる。

ASCII文字でない文字(ひらがな,カタカナ,漢字,キリル文字,ハングルなど)を入力するためには,インプッドメソッドを導入しなくてはならない。私は,ibusというインプッドメソッドフレームワークと,ibus-anthyというインプッドメソッドエディタを導入した。しかし,Anthyの設定に入ることができず,利用できなかった。

東大樹氏の記事を含む,さまざまな情報源を参考に設定したが,デスクトップ環境との相性なのだろうか,Anthyを動作させることはできなかった。

私がコンピュータを使う目的のなかで最も重要なのが,文章を書くことである。小説もブログ記事も,ほとんどGNU Emacsで書いているので,GNU Emacsだけでも日本語入力したかった

Emacs DDSKKを導入し,NICOLA(親指シフト)入力をこころみた。このさいに導入するパッケージは,"emacs-ddskk" と "emacs-ddskk-nicola" である。しかし,"emacs-ddskk-nicola" がみつからず,導入できなかった。

Guix日本語コミュニティにおいて質問したところ,GNU Guixのリポジトリを更新する必要があるとのことだった。私の場合,"guix pull" コマンドで更新したあとログインし直さなければ,反映されなかった。最終的に,親切なコミニュティのおかげで,GNU Emacsにおける日本語入力には成功した。

DDSKKのNICOLA入力にはくせがあり,はじめは漢字に変換する方法がわからなかった。チュートリアルをみてはじめて分かったのだが,漢字に変換するときにはすぐスペース・キーを押すのではなく,「FとJを同時に押すと逆三角形が表示される。その逆三角形以降に文字を打ち,変換するところでスペース・キーを押す」のである。すなわち,「つぎの文字は漢字だな」と思ったところで,FとJを同時に押しておかなければならない。はじめはこの方式に慣れなかったが,しばらく利用しているうちに慣れた。GNU Emacsとほかのアプリケーションソフトウェアとのあいだでクリップボードが共有される(注:特段の設定を必要とする可能性がある)ため,「GNU Emacsを日本語入力用に使う」ことにした。

これは日本語とは関係ない話だが,私は人工言語エスペラントを学んでいる。そのエスペラントには字上符つき文字があり,当然そのままでは入力できない。これを,私はGNU Emacsのスクリプトを書いて解決した。

字上符つき文字には代替表記法というものがあり,ラテン文字だけでもいちおうあらわすことはできる。私の書いたスクリプトは,X-Sistemoという代替表記法を字上符に変換するものである。のちほど公開(もちろん自由ソフトウェアとして)する予定だ。

難しいけれど,GNU Guixを使いつづけます

さきに述べたように,GNU Guixは難しいディストリビューションだ。扱うには,GNU/Linuxにかんして多少高度な知識を必要とする。とくに日本語入力関係は,私でも解決は難しい。

それでも,私はGNU Guixを使いつづけるつもりだ。やはりこのパッケージ管理の仕組みが気に入ったし,面白いディストリビューションだと思う。