メインコンテンツへスキップ

Linuxシステムを二年使った感想の記録

·
カテゴリー Linuxシステム FOSSをめぐる問題
タグ Distro-Hopping Linux Free Software Free Software Foundation GNU Project
目次

「果てまで 気の遠くなる様な旅をしよう」

果てまで、気が遠くなるような長い旅を始めよう。

出典:https://www.pixiv.net/artworks/65891187
出典:https://www.pixiv.net/artworks/65891187

Linuxシステムの使い方を学び、Windowsへ戻らなくなって、ついに二年目に入った。Linux学習一年目とそれ以前の記録はこの文章を参照。

この一年は、完全に連続してLinuxシステムを使った一年だった。実機で他のシステムを使ったことはない。

この一年の旅路:

Ubuntu 22.04 → openSUSE Tumbleweed → FreeBSD 13 → Arch Linux → Gentoo → Linux from Scratch → Arch Linux → Debian → Arch Linux

各ディストリビューションには異なる色彩、異なる文化がある。それはまるで《キノの旅》OPで歌われるように、各国を旅するような、本当に美しい世界だ。

1. 思想の準備を整える
#

Linux is free if your time has no value. 文系学生にとって最も暇な大学四年生の時期にLinuxを研究するのは、これ以上ないほどよい。今回は、それを本当にメインのデスクトップシステムとして、生活のあらゆる面で使うつもりだった。

思想は動力をもたらす。これは自明の理だ。この時期は理論構築が多く、システムの実作部分に触れるのは次の段階「浪流連」から始まる。

2022年3月、Ubuntuを離れた後、ローリング更新でありながら自動化テストによって更新の安定性を確保するopenSUSE Tumbleweedをインストールすることにした。そして自由ソフトウェアの思想体系へ深く触れた。

5月には一か月ほど、毎日「自由ソフトウェア財団」、「資訊人權貴」、「ソフトウェア自由保護組織」のようなサイトの記事を読み、GNU GPLライセンスを研究し、自由ソフトウェアを使う理由を論証していた。リチャード・マシュー・ストールマンの《自由軟體,自由社會》はたくさん読むことを勧める。

6月、このブログを開設し、自由ソフトウェアについて討論する文章や、さまざまなLinuxソフトウェアの使い方チュートリアルを書き始めた。

歴史ドキュメンタリー《作業系統革命》を見たので、この文章が生まれた:對大學端的自由軟體之淺見

自由ソフトウェア理念の研究は、宗教のように没入する体験であり、このような暴論記事を生み出した:為什麼不玩《Minecraft》遊戲?別忘記它缺點就是專有軟體。より悪い負の結果として、私はかつて「自由ソフトウェア警察」になり、プロプライエタリソフトウェアを使うクソ野郎どもをあちこちで攻撃していた。翻訳テキストになぜCrowdinを使いWeblateを使わないのかと人と喧嘩したこともあり、最後には私が焦点を間違えていると砲撃された。結局、あの翻訳者たちには現実の専門的な仕事が本当にあり、私にはそれがなく、口だけだったのだ。数か月の間に似たような衝突が何度か起きたことで、今の私はかなり抑えるようになり、愛と包容を学び、純粋なイデオロギーのことで人と争うことは少なくなった。

同時に、当時まだ消えていなかったゲーム欲を満たすため、Arch WikiとLibregame Wikiでどのような自由・オープンソースゲームが遊べるかを調査した。最後の成果がこれだ:不玩遊戲的理由…論從熱門遊戲轉向開源遊戲、そして迷上Minetest

オープンソースゲームを研究しているとき、Creative Commonsがどういうものかを深く理解し、Creative CommonsがGPLでは扱えないアート素材をどのように補完するかを知った:動漫作品可以「開源」嗎?談創用CC的實例開源的法國女巫漫畫:小辣椒與蘿蔔頭- 看板C_Chat - 批踢踢實業坊

この時期の理論は、比較的明確な体系を与えてくれた。自由ソフトウェアの世界が決して単純で単調なものではないことを教えてくれた。

自由ソフトウェア理念の追求は、自前サーバーデジタルプライバシー権脱Google化分散型ソーシャルメディア反DRM真のLinuxスマホPinePhoneLibreboot対応マザーボードのような完全に自由でオープンソースなハードウェアなどの議題へ広がっていった。これらの議題は今でも私が注目しているテーマである。特に「スマホ」という毎日最も重要な道具において、Linuxと自由ソフトウェア理念もここに根を下ろし芽吹かなければならないと考えている。

たとえ後に理念が多少揺らいだとしても、これらが築いた理論的基礎を忘れることはない。

2. ディストリビューションの間を流浪した歳月
#

この風雨の激しい社会…ここでいう浪流連は"Distro-hopping"と同じ意味である。

* 私には二台のコンピューターがあり、一台はデスクトップ、一台はノートパソコンで、後者は主に授業へ持っていくために使っている。デスクトップは重要な計算を担当することが多いため、Distro-hoppingの頻度はノートパソコンよりはるかに低い。以下、特に説明がない場合はデスクトップを指す。

7月、同じ自由ソフトウェアではあるが理念が少し異なるFreeBSDに触れた。BSDライセンスは商用クローズドソース利用を許可しており、ソースコードを必ずオープンソースとして還元することを強制しない。

FreeBSDがLinuxではないことは知っているが、それでもノートパソコンに入れて遊んでみた。

FreeBSDを使いながら、オンライン学習支援計画に参加している子どもたちへ遠隔授業をしていたが、一度も落ちたことはなかった。

実は私は手を抜いてGhostBSDでインストールした:在微星筆電安裝GhostBSD (FreeBSD)教學& 使用感想。カメラドライバーなどはすべて自動で入った。XFCE4デスクトップ環境にブラウザー、さらにFcitx5があれば、遠隔授業には問題ない。ついでに外国人ですらあまり知らない、FreeBSDにSteamを入れてゲームを遊ぶ方法も研究した。

実際のところ、単純な遠隔授業ならChromeOSでもできる。

FreeBSDは夏休みの一か月を無事に過ごし、その後私はそれを入れ替えた。今でも私は、FreeBSDの理念はLinuxに一歩及ばないと思っている。BSD系システムの断片化度は低く、Linuxディストリビューション間ほど巨大な差異はないとしても、自由へのこだわりが徹底していなければ、人に好き放題搾取される乳牛になってしまう。やはり自由に滑空するペンギンでいるほうがいいと思う。ただし自由ソフトウェアを支援するため、私は米国公式ストアで1000台湾ドルのTシャツを買い、FreeBSD開発者を支援した。そして付属のステッカーをノートパソコンの蓋に貼った。

7月末、ついにArch Linux時代へ入ることができた。手元の二台のコンピューターをどちらもArch Linuxへ換えた。システムパッケージがすべて最新で、あらゆる設定を自分で行う快感を体験した。

しかし仮想マシン内でGentooを遊んで魅了され、8月末には二台のコンピューターをどちらもGentooへ換えた: 心得 系統遷移至Gentoo紀錄- 看板Linux - 批踢踢實業坊

Gentooでは、パッケージマネージャーがあるにもかかわらず、何を入れるにも一からコンパイルする快感を味わい、Systemd V.S. 伝統的Unix initシステムの戦争とは何かを知った。

8月、中華民国ソフトウェア自由協会に加入した。

9月、大学院が始まった。観察したところ、英語系の授業では皆が自分のデバイスを持ってくる。デバイス比率で言えば、性別に関係なく、半分はMacbook、半分はWindowsを使い、Linuxは私だけだった。Linuxハードウェアは外観での識別性があまりないので、私はノートパソコンの天板に大きなTuxとLinuxディストリビューションのステッカーを貼り、TuxやFreeBSD小悪魔が印刷された服を着て出かけた。ただしその程度までで、あちこちで人に"I use Linux btw"と言って回ることはない。単位のため、授業で必要なソフトウェアがLinuxをサポートしていなくても、教授に文句を言う勇気はあまりなく、仮想マシンで解決するか、許可を得てodtでdocxの代わりに課題を提出した。ほとんどの場合、誰もあなたがどのシステムを使っているかなどcareしない。一度だけ、博士課程の学生が私がコマンドを打っているのを見て興味を持ったことがあり、本当に気まずかった。


9月~11月、この間にAlpine Linux、GNU Guix、Plan 9、OpenIndiana(Solaris)、Linux from Scratch、Void Linux、Fedora Silverblueなどのニッチなシステムへ短期的に触れた。多くは仮想マシンで体験し、一部は書き残して参考にできるようにした。

Linux from Scratchだけは本当にマニュアルを参照して、Gentoo実機と一緒にインストールした

ほかにもノートパソコンへ入れたシステムがいくつかある…数はデスクトップをはるかに超えており、ノートパソコンにいったいいくつのディストリビューションを入れたのか、もう覚えていない。

それ以外にも、XFCE、GNOME、KDE、i3WMなどの「デスクトップ環境」にも少し触れた。最も深く使ったのはKDEとGNOMEで、それぞれの長所と短所を深く理解した。


Gentooは毎週一回更新していたが、新しいソフトウェアをコンパイルするだけで二時間もかかった。当時、任賢齊の「死不了」「天涯」、陳昇の「小雪」を聴きながら、Gentooのコンパイル完了を待っていたことを今でも覚えている。

しかしいくつかの小さなミスにより、私は11月にArch Linuxへ戻した:用Gentoo二個月之後,默默換回了Arch Linux

♫ 如果你真的愛我 讓我走開 心疼你當初反覆那樣的說 如果你真的愛我 讓我走開 我決心不從舊夢中 掙脫 ♫

ArchとGentooは開封してすぐ使えるものではないが、システムエラーを解決する多くの戦略を学ばせてくれた。ソフトウェアが実行できないからといって必ずしもbugとは限らず、何かのソフトウェアが入っていない、あるいはサービスが起動していない可能性がある。ハードウェアが駆動できないなら、コマンドで不足しているカーネルモジュールを確認し、WikiやRedditを見て解決策を探す。このように学ぶことで収穫は非常に多く、将来プログラムを開発したり、オペレーティングシステム原理の本を読んだりするうえでも役立つ。

結局、Archは私のような強迫症気味の人間により合っており、Gentooほど管理が難しすぎるわけでもない。


時間は2023年に入った。

2023年1月、ノートパソコンにopenSUSE Tumbleweedを再インストールし、YaSTのようなグラフィカル管理ツールが本当に使いやすいことに気づいた。openSUSEはKDEデスクトップ環境の統合が最も優れたディストリビューションだと言える。

しかしopenSUSEシステムはややマイナーで、多くのソフトウェアはコンパイルする必要があるか、Fedoraのrpmを拝借して入れる必要がある。openSUSEの第三者リポジトリ「OBS」も、Arch LinuxのAURほど豊富ではない。だから日常的に三か月ほど使ったあと、ノートパソコンも今ではデスクトップと同じくArch Linuxへ戻した。今はノートパソコンの壁紙にopenSUSEのトカゲを置く習慣があり、openSUSEが私に与えた良い印象を記念している。


2023年2月、一時的にどうかして、長期的な安定を追求するためにデスクトップのArch LinuxをDebian Stableへ換えた。これで落ち着けると思っていたが、後にUbuntuの問題が再び浮上した:ソフトウェアバージョンが古すぎる、特にKDEデスクトップ!Debian理念を宣揚する公式マニュアルを熟読しても、一週間後にArchへ戻すことを止められなかった。ソフトウェアが超安定しているが古いシステムは、サーバーシステムとして使えばよい!デスクトップシステムについては、すでにローリング更新ディストリビューションのモードに慣れてしまったのだと思う。

ただし、Debianのソフトウェア開発哲学を読んで重要な点を学んだ:システムを適切に計画しメンテナンスすること、フランケンシュタインを作らないこと(第三者パッケージを乱雑に入れないこと)、盲目的に新しいものを追い求めないこと。

今では、デスクトップのArch Linuxは連続して6か月使っており、過去にUbuntuを使った最長期間に追いついた。背後の原理を理解していれば、Arch Linuxも同じようにうまく使える。

あなたは私にこう聞くかもしれない。Distro-hoppingがそんなに頻繁なら、ハードディスクには重要なデータを入れていないのか?実はある。重要な画像、動画、音楽、仮想マシンイメージファイルなど、10年以上保存する予定の重要資産は別のハードディスクに置いており、一部はMEGAクラウドに封印して、必要なときにマウントする。そしてLinuxエコシステムに適応するため、それらのハードディスクはかなり早い段階でBTRFSまたはEXT4ファイルシステムにフォーマットした。これも私の決意を示している。もうWindowsへは戻らない。

3. 普段のLinuxの用途と、学んだこと
#

Linuxコンピューターをメインにする用途は、同じく文字を書き、ネットを見て、ゲームを遊ぶことだ。この点は言うまでもないだろう。授業ノートにLinux、発表資料の投影にLinux、ゲームにLinux、絵を描くのにLinux…だいたいそういう用途である。

娯楽について言えば、Minetestは遊び方が尽きないオープンソースのブロックゲームだ。プロプライエタリゲームにはSteamが使えるし、スマホゲームを遊ぶにはWaydroid、Android x86仮想マシン、ReDroidなどさまざまな方法がある。ただまあ…私は自由ソフトウェアを研究し、文章を書いて共有することのほうが、単にゲームを遊ぶより面白いことだとますます感じるようになった。今ではゲームは生活の中の娯楽道具になり、大学時代のように生活の中心ではなくなった。

さらに、日常的にLinuxを使う中で、以下の三点も学んだ:

すべてLinuxシステムを使う利点は、リモートアクセス技術を学べることだ。初期には間抜けにもX11 VNCやSunshineのリモートデスクトップ技術を研究していた。後に、リモート作業にはそもそもグラフィカルインターフェースは不要で、SSHだけで十分面倒を見られるとわかった。Hugoブログのファイルをリモート編集するのもSSHFSで解決している。(このブログの記事は、私はすべてローカルでmarkdownファイルを書いてからGithubへpushし、クラウドプラットフォームに自動デプロイさせている。各コンピューターにリポジトリを一つずつ複製しなくて済むように、リモートでファイルへアクセスする方法を採っている)

また、Linuxは開発環境の設定が非常に便利だ。自分のスマホ用Android ROMをコンパイルしようとしたとき、すぐに環境を整えられた。Github上で面白いオープンソースプロジェクトを見つけたら、複製してAnacondaを使えばすぐに立ち上げて遊べる。Linux端末とシステム底層がこれほど近いため、システムをインストールし環境を設定するとき、オペレーティングシステムの概念をより深く理解できる。プログラムを書くことは、もはやクローズドソースの黒箱が魔法を生むのを見るだけではなく、背後で何をやっているのかを明確に知ることができる。

最後にDockerの使い方を学び、いくつかself-hostingサービスを構築した。定期的にRedditのr/selfhosted板へ行き、面白い自前ホストソフトウェアや商用SaaSの代替案を見ている。コンテナは本当にかなり使いやすい。サーバーサービスを構築するのに、システム設定をまったくいじる必要がなく(Arch Linuxは脆い)、Dockerへ一元管理を任せればよい。外部ネットワーク接続にはZeroTierを使う(残念ながらこれはプロプライエタリソフトウェアだ)。これにより、私はある程度、自前ホストのサービスへ依存でき、クローズドソースの商用ソフトウェアに依存しなくて済む。たとえばSearX搜尋引擎PhotoPrismInvidiousStable Diffusion WebUI個人AI助理などである。


私がLinuxコンピューターの前に座っているときは、それを普通のコンピューターとして使う。コンピューターから離れるときはXサーバーを閉じてリソースを節約する。するとそれは、黙々と働くLinuxサーバーとなり、いつでもコマンドの到着を待つ。画面を開かず、グラフィックカードを使わなくても計算できる。ZeroTier+SSH接続を使えば、ノートパソコンやスマホのTermuxでリモートホスト上の各サービスを管理できる。

4. オペレーティングシステムのメタバース
#

「皆さん、期末ではXソフトでマインドマップを作り、Yソフトで統計分析を行います。」

完全にLinuxで作業しているとして、本当にWindowsシステムが必要なソフトウェアに遭遇し、さらには学期成績の生死に関わる場合、いったいどうすればよいのかと聞かれたら?

答えは、長年研究してきたQEMU/KVM仮想マシン技術である。デュアルブートすら必要ない。

オペレーティングシステムを女の子に擬人化するなら、仮想マシンはその女の子たちをメタバースへ入れる装置だ!

今の私はQEMU/KVMを最強の仮想マシンソフトウェアと呼びたい。VirtualBoxやVMwareにあるべき機能はすべてあるうえ、GPUパススルーというキラー機能まであり、ハードウェアリソースの共有も問題ではない。だからWindowsの仮想マシンは命綱になった。ただし私は今でもWindows仮想マシンを開くことは少なく、月に十回も開かない。基本的に私のワークフローは自由ソフトウェアとウェブアプリケーションで置き換わっている。

Windowsをインストールする以外にも、仮想マシンは他のシステムをテストするためにも使え、自由ソフトウェアのインストールチュートリアルを書く助けになる。たとえばAndroid-x86仮想マシンはゲームを遊びつつクラウドスマホとして使えるし、macOS仮想マシンでは果粉世界の開発環境を理解できる。

本当にDistro-hoppingするか確認する前にも、私は仮想マシンで動かして遊んでみる。たとえばGentoo、FreeBSD、Debianはいずれも仮想マシン内で評価してから実機へインストールし始めた。

5. 揺れ動く心、Arch Linux + KDEデスクトップに安住する
#

一年の流浪を経て、Arch Linuxへ戻ってきた。

実のところ、私はこの記事の最初で述べた自由ソフトウェア主義を裏切った。

現在私が追求したいのは、人間性とハッカー性を両立するシステム理念であり、グラフィカル化とコマンドを同じく重視することだ。ユーザーの自由を維持しつつ、より多くの人にLinuxを使ってもらうためである。だから私は、一部のプロプライエタリソフトウェアの使用を排斥しない。ハードウェアからソフトウェアまで同じだ。しかし大きな方向性として、私は今でもLinuxユーザーに自由でオープンソースな解決策を探すことを奨励する。たとえば、GIMPとKritaがあるなら、苦労してWineでPhotoshopを走らせる必要はない。誰もがLibreOfficeとKdenliveを学び、よくあるが機能が基礎的なプロプライエタリソフトウェアを置き換えるべきだ。台湾の教育現場ではもっと自由ソフトウェアを使うべきだ。

しかしどれほど妥協しても、私の最低ラインは使うシステムがLinuxでなければならないということだ。だから最終的にArch Linuxへ戻った。これは純粋に個人的な選択である。Archには派手な包装がなく、大企業が発展方向へ干渉せず、ユーザーに飲み込ませる強制的なシステム設定もない。そしてこのシステムを人気に保つだけの十分なユーザー数がある。前述の通り、Debianに触れたことで私はシステムメンテナンスについてより明確な概念を得た。そのためArchをインストールするとき(現在も更新中のインストールチュートリアル記事を含む)は、できるだけWikiに書かれたbest practiceに従ってシステムを配置している。今後AURのソフトウェアを入れるときはさらに慎重にし、FlatpakとDocker技術を多く使ってソフトウェアをインストールする。まとめると、最新技術を追求するArch Linuxを使いながらも、過度に急進的な態度が生活に影響しないよう避ける、ということだ。


最後にLinux普及の問題について。ディストリビューションに関して言えば、私はやはり初心者にはまずUbuntuを試すことを勧める。それ以外はない。Canonical社にどんなdramaがあろうと、Ubuntuはほぼ企業と個人PCデスクトップにおけるLinux標準になっており、ユーザーも多い。彼らが自由ソフトウェアの最低ラインを守っているかぎり、脳死でボイコットする必要はない。関連記事カテゴリ:Linux使用技巧

ユーザーが本当に興味を持ってから他のLinuxディストリビューションを試しても遅くない。より自由を愛する人は、ぜひArch Linuxを学びに来てほしい。

デスクトップ環境について言えば、あまりにもgeekなデスクトップ環境は私は受け入れられない。たとえばdwm、i3WM、Swayなどだ。それはLinux普及には逆効果になる。

さらに、何度もテストしたあと、私は個人的にはやはりGNOMEは使いにくいと思っている。XFCEは簡素すぎ、Cinnamonはデフォルトが醜い。だから今に至るまで、私はKDE PlasmaこそLinux最高のデスクトップだと認めている。私に文句を言う人もいる。見た目がおもちゃっぽい?不安定?調整できる設定が多すぎて複雑になる?私はどれも問題ではないと思う。KDEの自由度はやはり比較的高い。安定性も近年かなり改善されている。KDEがコマンドライン操作をグラフィカルなシステム設定へ統合することは無用の長物ではなく、システムをより使いやすくする設定である。

Arch LinuxとKDEがあれば、Linux普及チュートリアル記事を書くための堅固なデモ環境ができる。ただし大衆の入門難易度を考慮して、外向け教学の例は今でもUbuntuのインストール方法を主にしている(仮想マシンは本当に便利だ)。余力があるときだけ、UbuntuとArch Linuxのインストールコマンドを併記する。

世界中のすべての開発者の献身と貢献に感謝する。それがあってこそ、自由ソフトウェアとLinuxエコシステムが存在している。

今はArch Linuxに落ち着いている。将来、もしかするとまた、さらに多くのLinuxディストリビューションを探索する旅へ踏み出すかもしれない。

「ここにはボクがいて そこにキミがいる それだけで 明日がかわるから」

ここには僕がいて、そこには君がいる。ただそれだけで、明日は変わるのだ。

関連記事


最後までお読みいただきありがとうございます。本サイトでは公開コメント欄を設けていません。私はソーシャルな反応やアクセス数を追い求めるためではなく、自分の考えを誠実に探求するために文章を書いています。記事を丁寧にお読みいただいたうえで、ご感想やご意見をお寄せいただければ幸いです。誤字・誤り・技術的な問題などを見つけた場合、またはフィードバックを共有したい場合は、Aboutページに記載しているメールアドレスまでお気軽にご連絡ください。