Ubuntuいいね!

Ubuntu -> Arch Linux -> Gentoo Linux -> Ubuntu

私が最初に触ったLinuxはUbuntu14.04であった。このころからUbuntuはGUIが優秀でWindowsやOSXのような操作感で使用できた。Ubuntuは非常に安定していたので特に何も考えることなく使っていたが、いつの間にかUbuntuではつまらなくなってしまっていた。

そこで手を出したのがArchLinuxである。インストールが初めての場合は多少面倒に感じるかもしれないが、慣れてしまえば当たり前のことをしているだけなので問題ない。パッケージマネージャにはpacmanを使用しており、aptと同じような感覚で使うことができる。ただ、非公式パッケージをインストールするには大抵の場合コンパイルする必要があるため、補助ツールは用意されているので手間はかからないものの時間はかかってしまう。その点を除けばなかなか良い選択肢であることに違いない。ただ、GUIで使おうと思うと日本語環境の導入が面倒で、理想的な日本語環境となるとUbuntuのデフォルトのようになってしまうので、これではArchにする意味がなくなってしまう。また、x86にしか対応していないのも少々問題である。私はRaspberryPiもサーバーとして使用しているがこれはarmアーキテクチャなのでArchは対応していない。私は手間を減らすためにすべての端末を同じディストリビューションに揃えたいのでこれは私自身の要件を満たさない。自分でコンパイルすればなんとかなるのかもしれないが、pacmanのバイナリパッケージもx86のものしかないので結局コンパイルスパイラルとなってしまう。

次に考えたのがGentooLinuxである。これはバイナリパッケージが提供されておらず、ソースコードからコンパイルすることで最適化によるパフォーマンスを出そうというものである。前述の通りコンパイル時間が長いことは明らかで、8コア16スレッドのCPUをもってしてもOSのインストールに2時間も要してしまった。Ubuntuであれば30分もあればすべてが終わる。ソフトウェアをアップデートするときも毎回コンパイルする必要があるのでなかなか面倒である。しかもサーバー用の計算機にはそれほど高性能なものを使っていないので、このようなコンパイル地獄は現実的ではない。また、コンパイルが必要になるということはいわゆる普通のdependenciesだけでなくdevDependencies(開発用の依存関係)まで満たす必要がある。ここまで来ると依存関係ツリーがかなり煩雑なことになり、一度にすべての依存関係を解決することが難しくなる。結果何らかの機能を削ぎ落としたりする必要も出てくる。

最終的に落ち着いたのがUbuntuである。このころにはUbuntuは20.04LTSになっていた。Ubuntuは様々なアーキテクチャをサポートしており、安定性も高い。また、バイナリパッケージ方式なのでインストールも高速だ。RaspberryPiのような非力な環境でも十分に運用可能である。このようにして私のデスクトップ環境はUbuntuに戻ってきたのである。

ただ、ArchLinuxがサーバー用途に良いのではないかということも付け足しておく。先程ArchLinuxは日本語環境の構築が面倒で、非公式パッケージをインストールする際はコンパイルに時間がかかると述べた。しかし、サーバー用途であれば日本語環境の構築は不要で、加えて非公式パッケージを使用するのはGUI特有のアプリケーションの場合が多かったのでサーバーに必要なパッケージは公式のバイナリを使える。一般人であればサーバーはデスクトップ環境よりも非力であると思うので、このような環境で最小限の構成のArchを動かせるのは大きな利点ではないかと思う。ただRaspberryPiには使えないことは前述のとおりだ。

見た目なんて関係ない!!!

WindowsやMacには独特のUIがあり、このような洗練された見た目を好み、Linuxのちょっと古くさいUIを敬遠しているかもしれない。また機能面で優れたLinuxのディストリビューションを見た目で諦めているかもしれない。しかし、LinuxのGUIというのはCUI環境にディスプレイマネージャのサービスが動いているだけなのである。例えばディスプレイマネージャの一つであるGNOMEは拡張機能を導入することでUIの部品を改変したり、外観を変更することができる。以下に私のメイン環境のデスクトップ画像を載せるが、Macのように見えたかもしれない。これはUbuntuである。Mac風のスタイルとアイコン、ドックを追加する拡張機能を導入したのだ。

結局どうやって選べばいいのさ

私は以下の点が重要であると考える

  • サポートされるアーキテクチャ

    たいていx86だが、RaspberryPiのように違うものもある。

  • パッケージの配布方式(バイナリまたはソースコード)

    ソースコード配布だとコンパイルに時間がかかる。非力な計算機では現実的ではない。

  • 完全にフリーかどうか

    FreeBSDのようなフリーさを気にするかもしれない。

  • コミュニティの規模・情報量・ドキュメントの充実度

    どれもLinuxではあるので共通するものはあるが、独自の問題を抱えている場合もあるので心配ならば気にするほうが良い。

  • リリース頻度・安定性

    メインのデスクトップ環境やサーバーに使おうと思うのなら私なら安定性を求める。

  • デスクトップかサーバーか

    サーバーはデスクトップよりも単純であり、シンプルな構成にしやすいのでカスタマイズのしがいがある。

試そうよ!

Linuxのいいところの一つに無料であるということがある。気になるディストリビューションがあれば手軽に試せるのでいろいろ触ってみて今以上にいい環境を見つけるのも楽しみである。