この記事は eeic (東京大学工学部電気電子・電子情報工学科)その2 Advent Calendar 2016 の13日目の記事です。
昨日 (12/12) 分はnakachan94さん担当です。明日 (12/14) 分は62_stormkさん担当です。
書き上げる頃にはすでに12/14になっていますがキニシテハイケナイ。

:pray::pray::pray:ナマステみなさんおはようございます。みなさんは、PCのOS/ディストリビューションとして何を使っていますか?いつかの自己紹介のときにGentoo Linuxと言ったらドン引きされたマンです。
でも、言うほどGentoo Linuxってドン引きするようなものじゃなくね?みたいな気持ちを胸に、この記事を書いています。

Gentoo Linuxってなによ

公式サイトによれば、

Welcome to Gentoo, a flexible, source-based Linux distribution that becomes just about any system you need—and much more.

超意訳すると、あなたが必要とするようなシステムになる、フレキシブルLinuxディストリビューションです。

重要な特徴は、ソースベースであること、つまり、基本的には使うPCでコンパイルを必要とするディストリビューションだということです。
この一文だけでうわあとなる人が多いようですが、ビルド自体はUbuntuのような主要ディストリビューションでも (ビルドサーバーが肩代わりする形で) 行われているものです。それをローカルでやって何が変わるというのでしょうか?

そんなことして何が楽しいのさ

軽い

ぼくの一世代前のPCは増設後メモリ2GBのAthlon 64 X2のような名前のCPUでしたが、Windows Vistaがプリインストールされていて、みなさんだったら想像は付くと思うのですが、重くて使い物にしたくようなPCでした。
そこで、少しでも軽くしようとしてUbuntu Linuxを入れたのですが、それでもeclipseを動かすと普通に重い。
じゃあということで導入したのがGentoo Linuxでした。重量系で噂のGNOME3を入れても驚きの軽さ 1。eclipseも ある程度 スイスイ動く。基本的人権を確保した瞬間でした。

Gentoo Linuxでは、USE flagというしくみで本当に必要な機能のみを導入することができるので軽くしやすいです 2

Linux力や問題解決能力が身につく

UbuntuだとTUIやGUIである程度設定してくれたりしますが、Gentooは自分で必要なものをインストールするタイプなので、この機能にはこういう名前のソフトウェアを使えばいいのだという知識が身につきやすい気がします。

ちなみに、普通に暮らしてたらGentooであっても引っかかりポイントはあまりないのですが、それでもたまに引っかかることが有ります。
その時は人脈やTwitterやぐぐるを駆使して問題解決を目指してみましょう。昨日の自分とは変われますよ?

めんどくさくなったので箇条書きでまとめると、

利点

  • (普段使用時のオペレーションは) 比較的軽い
  • Linux力、CLI力、問題解決能力のような (学科民にとっては) 将来必要になるであろう能力を実践的に身につけることができる
  • firefox-bin, libreoffice-binのようなバイナリパッケージも一部存在する
  • Ubuntuよりもパッケージのバージョンが新しいことが多い
  • 新しいことが多い割に最新のものを強制しないので、ある程度枯れていてなおかつバグの少なそうなバージョンを使用できる 3
  • 暇な時期には無限に遊べる
  • ビルド時の流れるコンソールを見て興奮できる

欠点

  • ビルドが重い 4
  • 他のパッケージのビルドに必要なヘッダファイルなどもインストールされるので他の有名ディストリよりもストレージ消費が大きい
  • Linuxを全く触ったことのない人には厳しいかも
  • 全てにおいて死ぬほど楽をしたい人には向かない
  • パッケージマネージャーの依存解決が遅い 5
  • 万が一ハマると大変
  • (場合によっては) 若干の英語力とggる力が必要になる

といったところでしょうか (他にもある気がするけどぱっと思いつかない)

Gentoo Linuxのインストール方法

基本的なインストールの仕方は公式ハンドブック (AMD64版)に譲ることにします。

ハンドブックはGentoo MinimalインストールCDを使用する形で書かれていますが、GUIを使用できるLiveDVDやUbuntu Install Diskを使用するほうが楽だと思います。

USEフラグの設定はめんどくさいのでflaggieをインストールして使用すると楽です。

MacBookにインストールする

おそらく学科の大多数の人はどうせインストールするならWindows+Mac+Linuxのトリプルブートをしたいと思います [要出典]。
私が試したのは2014年3月頃に買った新品のMacBook AirとWindows 8.1なので、それ以外の時期に買ったものだったりWindows 10だと状況が違うかもしれませんが。
ちなみに、たぶんプリインストールされた最近のWindows機にインストールするより簡単だと思います。

MacでトリプルブートするならrEFIndという固定概念が有りましたが、なぜかrEFIndではWindowsが起動できませんでした。

私がトリプルブートをするときに参考にしたページはDebian EFI mode boot on a Macbook Pro, without rEFItです。Debianと書いてありますがキニシナイ。
ブートローダーの設定のところでこのページのとおりに設定し起動すると (実際にはMacから同等のコマンドを叩きましたが)、無事にトリプルブートが実現できました。
嬉しいことにこの方法で設定するとBootCampのメニューからGentooで再起動を選べたり、
boot_os_selection.png
Altキーを押しながらPCを起動すると3つのOSから選べるようになったり
2016-12-14 01.02.01.jpg
となかなかうれしいことになります。

気が向いたら (画像含め) 加筆します。

セキュアブートが有効になったプリインストールWindows機にインストールする

セキュアブートは死んでください 6

Sakaki's EFI Install Guide/Configuring Secure Bootを参照するといいかもしれません (試す環境がない……)

今あるOSを使いながらGentooを触ってみたいと言う方へ

仮想マシン生活も楽しいですが、Gentoo Prefixというものがあるので、それはそれで楽しくなれるかもしれません。

まとめ

最後は駆け足になってしまいましたが、Gentooは楽しいですよ! あなたもGentooしませんか?

Gentoo Advent Calendar 2016Gentooの優れているところも参照してみてください。

脚注


  1. 個人の感想です。 

  2. もちろん全ての機能で取捨選択ができるわけではありません。 

  3. 全てが最リリース新に追従しているわけではありませんが、一部のパッケージについてはgit HEADに追従することも可能です。 

  4. distccやccacheを使えばある程度ビルド負荷を下げることは出来ます。 

  5. 実際にはビルド時間のほうが長くなることが多いので無視できる。 

  6. 死ねと言っていますがあくまで個人の感想です。