この記事はArch Linux 个人小记 | Travis' Blogにも掲載されていますので、ぜひお越しください。
全体設定#
私のノートパソコンには Arch Linux がインストールされており、デスクトップには Windows 11 と Linux のデュアルブートがあります。ノートパソコンは 13 インチの小新 pro で、運が良く、互換性の問題には遭遇していません。
デスクトップのグラフィックカードは Nvidia RTX 2080Ti で、公式ドライバーを使えば非常にスムーズに動作します。現在、GTK4 の問題を除いて、解決できない問題はありません。
- ディストリビューション:Arch Linux
- WM:i3wm
- ターミナル:kitty
- アプリケーションランチャー:albert (rofi, dmenu)
- ドック:polybar
- ウィンドウコンポジター (composite):picom-jonaburg-git
なぜ Arch を使うのか#
- いじること自体が楽しみ
- Windows は Linux ではなく、MacOS も単なる Unix 系です
- Linux はオペレーティングシステムのより深い部分を見ることができます
KISS: Keep It Simple, Stupid
まず 「いじる」 ということについてですが、Linux を使う必要があるなら、いじることは避けられません。これはどのディストリビューションを使うかにはあまり関係ありません。この時、比較的クリーンなシステム(例えば Arch)を使う方が手軽に遊べます。
例を挙げると 🌰、一般的な即使用可能なディストリビューションは、リフォームされたモデルルームのようなもので、荷物を持って入居するだけですが、部屋の配線や家具の設定を一度に理解するのは難しいです。もし何かのコンポーネントが壊れた場合、どうすればいいのかわからなくなります(特に自分が修理工になる必要があるとき)。
Arch はまるでスケルトンの家のようで、水道管や電線がすでに用意されています。私がする必要があるのは、イケアの家具リスト(Arch Wiki)を見て、自分が欲しい家具を見つけて、一つずつ自分の小さな家を充実させることです。
この感覚は比類のないもので、選択したさまざまなものが自分の好みに合わせて構成されているようで、まるで本当にそれを所有しているかのように感じます。
クリーンな Arch Linux システム上で、シンプルな WM で自分のデスクトップレイアウトをゆっくり調整し、キーリマッピングソフトやショートカット管理ソフトで自分のワークフローを管理できます。 unixporn を見て、他の人がどのようにデスクトップを美化しているかを見たり、カスタマイズのための多くのオプションを探求したりできます。
次に Linux システムについてですが、私たちが開発しているバックエンドソフトウェアのほとんどは最終的に Linux システムにデリバリーされる必要があります。Linux でコーディングできることは、自然にネイティブな利点があります。
もちろん、Windows や MacOS でも解決策はあります —— 仮想マシン、docker、または vscode remote を使ってサーバー上でコーディングする方法など、さまざまです。
Windows 環境をいじったことがある人は理解できると思いますが、Windows と Unix 系のシステムでは多くの小さな詳細が異なります。さらに重要なのは、Windows は全体的に UTF-8 ではないため、時々奇妙な問題が発生することがあります。
また、Windows の名前が示すように、これはグラフィカルオペレーティングシステムであり、MacOS も同様です。コマンドラインのサポートに関しては、Linux の方が優れています。
Linux is only free if your time has no value
これらはすべて好みの問題です。私は頻繁に k8s の作業を処理する必要があり、普段接触するエコシステムは Linux に近いです。普段 Linux を使わない人は、無理にいじる必要はありません。
利点#
Linux を理解する#
Arch Linux には非常に充実した ArchWiki があり、参照できます。
すべてのことを学ぶにはコストがかかります。たとえ友好的な Windows システムであっても、初めて触れる子供たちは、徐々に操作ロジックを理解するために手を動かす必要があります。
学部時代、私は初めて Linux に触れたのは CSAPP コースの bomb lab で、その時は shell の使い方すらわからず、gdb デバッガを使ってコマンドラインで爆弾を解体する必要がありました。これが Linux に対する直感的な印象でした。
実践の後には理論学習が必要で、それを内面化する必要があります。Linux を学ぶためには、見えるさまざまな小技だけでなく、操作に慣れるための大量の実践が必要です。
次に、「慣れる」と「理解する」間には多くの道があり、この時に理論知識を再度学ぶ必要があります。このように循環しながら、螺旋的に上昇するプロセスです。
Linux を大量に実践するために、日常的に Linux を使用することが一つの選択肢です —— 仮想マシンを使うのではなく、リモートサーバーを使うのでもなく、実際に物理ディスクにシステムをインストールすることから始め、ブートの設定から自分の Linux システムを一歩ずつ構成していきます。
このプロセスでは、予想通り多くの挫折に遭遇することがあり、「難者はできず、できる者は難しくない」という問題に長い時間をかけることがあります。
RTFM、STFW を通じて、最終的に 90% の問題を解決できます。
パッケージマネージャー#
Linux のパッケージマネージャーは非常に手間がかからず、Windows のさまざまなソフトウェアインストールプロセスを振り返ると、「あるソフトウェアの公式サイトにアクセス ➡️ ダウンロードしてインストーラーを入手 ➡️ ダブルクリックしてインストール」となりますが、
Linux では yum
、apt
、pacman
などのパッケージマネージャーを使えば、一行のコマンドでソフトウェアをインストールできます。さらに良いのは、このプロセスが自動化や記録を容易にし、ソフトウェアも比較的新しい状態を保つことができます。
Ubuntu のパッケージマネージャーと比べて、Arch Linux のパッケージマネージャー pacman
はさらに便利です。
この便利さは AUR (Arch User Repository) に由来し、これはコミュニティ主導のソフトウェアリポジトリで、さまざまなソフトウェアのパッケージスクリプトが含まれています。
yay
や paru
といった AUR ヘルパーを使えば、簡単にさまざまなソフトウェアをインストールでき、Ubuntu の PPA をいじる手間から解放されます。
もし私が有名な fd
、ripgrep
、そして私がとても好きなキーリマッピングソフト keyd 1 をインストールする必要があるなら、次のコマンドを使うだけでインストールできます。
yay -S fd ripgrep
yay -S keyd
ちなみに、Windows でも今は
scoop
、chocolaty
、winget
といったパッケージマネージャーがあります。
タイル型ウィンドウマネージャー#
MacOS や Windows の浮動ウィンドウマネージャーとは異なり、Linux には全く新しいウィンドウ管理体験があります —— タイル型ウィンドウマネージャー 2。
一般的に、浮動ウィンドウ管理では一つのデスクトップに複数のウィンドウを開き、ウィンドウ同士は重なり合うことができます。
しかし、タイル型ウィンドウ管理はすべてのウィンドウをデスクトップに密に配置する傾向があり、つまりデスクトップは常に埋まった状態になります。この時、もし何十個ものウィンドウを開いたら、デスクトップ上で何も見えなくなってしまうのでしょうか?
この時、作業スペース(workspace)という概念があります(以下 ws と呼びます)。これは他のオペレーティングシステムにおける仮想デスクトップであり、作業スペース間の切り替えは win+number
を使って迅速に行えます。
一般的に、私はブラウザを ws2 に、インスタントメッセージングアプリを ws3 に、ノートソフトを ws4 に、RSS リーダーを ws6 に、コーディング環境を ws10+ に配置します。これらの設定は個人によって異なり、簡単に設定できます。
タイル型ウィンドウ管理の利点は、作業スペース内で十分に集中できることです。主要なソフトウェアが画面全体を占めることができます。しかし、特定の作業で多くのウィンドウを開く必要がある場合、このデスクトップ管理は少し面倒になることがあります。その時には、各ウィンドウを再配置することもできます。
欠点#
ソフトウェアエコシステム#
Linux デスクトップユーザーが少なく、各種ディストリビューションがあるため、本来少ないユーザー数がさらに細分化されており、大手メーカーは Linux ユーザーを最初に考慮することはありません。特に国産ソフトウェアはそうです。Tencent 系の QQ、Tim、WeChat などは、かつて公式の Linux バージョンがありませんでした。
文書編集に関しては、Microsoft の Office が標準となっており、普段書くさまざまな雑多な文書は Office で作成する必要があります。これは Linux ではできないことです。WPS Office や LibreOffice は Microsoft Office を完全に代替することはできません。
近年、開発コストのため、皆が Electron アプリを受け入れ始め、真の意味で一度のコーディングでどこでも動作するようになりました。これが Linux ソフトウェアエコシステムの未来の解決策かもしれません。
ゲームに関しては、Valve の Steam Deck 上の SteamOS 3 は Arch 系であり、Valve は互換レイヤーのためにかなりの最適化を行っています。将来的には Linux のゲームエコシステムも改善されるでしょう。
しかし現時点では、ソフトウェアエコシステムにおいて Linux は依然として大きな欠落があり、プログラマーのニーズには応えられますが、一般の人々がこの高い敷居のオペレーティングシステムに触れる理由はほとんどありません。
いじりすぎ#
Arch Linux は即使用可能ではなく、多くのコンポーネントをカスタマイズできますが、すべていじる必要があります。
初心者にとって最も厄介なのは、問題を特定することです。千奇百怪な問題に遭遇しなければ、どのコンポーネントに問題があるのかを知るのは難しいです。
私自身、GRUB ブートエラーや X サーバーが起動しないといった問題に直面したことがあり、常に ventoy の USB メモリを持ち歩いており、最新の Arch Live CD イメージが入っていて、いつでもシステムを修復できる準備をしています。
Arch Linux はローリングリリースであり、Ubuntu のポイントリリースとは異なり、Arch Linux は非常に頻繁に更新され、いわゆる「ローリングバグ」の現象があると言われています。
まとめ#
自分に合ったものが最も良いです。Arch Linux は自分に合ったワークフローを構築する手段を提供します。
もし読者がここまで読んで自分で Linux を試してみたいと思ったら、
まずは Ubuntu desktop から始めてみて、次に Manjaro を試してみると良いでしょう。これは Arch 系のオペレーティングシステムで、即使用可能で、Arch エコシステムを簡単に体験できます。
もし直接 Arch Linux を試したい場合は、公式の インストールガイド から始めるか、Arch Linux Studio が公開した ArchTutorial を使用することをお勧めします。
どのディストリビューションでも、問題に直面したときは常に RTFM、STFW、RTFSC を思い出してください。ほとんどの場合、先人が私たちのために道を切り開いてくれています。自分では解決できない場合は、コミュニティの助けを求めるか、リポジトリに issue を提起してください。