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

このウェブサイトに,従来の接続方式(保護されていないHTTP)で接続しています。閲読内容が傍受および改変される可能性があることに留意してください。

HTTPSを利用できない状況も考慮し,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)にもとづいて許諾される自由ソフトウェアではあるが,その複雑さや不安定さ,セキュリティ上の弱点により,自由ソフトウェアやオープンソースを支持する人のあいだで論争になっているらしい。

くわしくは,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を使いつづけるつもりだ。やはりこのパッケージ管理の仕組みが気に入ったし,面白いディストリビューションだと思う。