ほんとはこわくない
Gentoo Linux

群馬大J科2年
@gion_U
Gentoo Linuxとは
•  「Gentooとは選択です」
–  "Gentoo Linux ガイドブック" より

•  バイナリパッケージは存在しない
–  (基本的に)

•  ソースからビルド
•  怖そう
–  そんなことはない
ソースからビルド……
% wget http://core.ring.gr.jp/pub/GNU/emacs/emacs-24.3.tar.xz	
% tar xvf emacs-24.3.tar.xz	
% cd emacs-24.3/	
% ./configure --with-x --with-x-toolkit=gtk --with-toolkitscroll-bars --with-png --with-xpm --with-dbus –-with-gsettings	
% make && make install	

•  distro既定のバイナリに満足できない人の例
•  configureに渡すオプション長すぎ
–  もっと長くなるプログラムとかあるよね

•  依存関係は大丈夫?
•  他の環境でもこの設定使いたいときは?
Gentooの力を借りよう
% USE="X dbus gtk3 gsettings png toolkit-scroll-bars xpm"
emerge emacs

•  1コマンドでよしなにやってくれる
•  USEフラグは
–  /etc/portage/make.conf
•  環境に対する設定

–  /etc/portage/package.use
•  各パッケージに対する設定

に書いておけばコマンドラインへの入力は不要
USEフラグ……?
emerge……????
Portage
•  パッケージマネージャ
•  GentooをGentooたらしめるもの
•  ユーザの指示によって「最適化」されたバ
イナリを作成できる
•  emergeはPortageのフロントエンド
•  PortageシステムはPythonで記述
•  パッケージの「レシピ」……ebuild
–  シェルスクリプト(ライク)
CFLAGS/CXXFLAGS
•  コンパイラ(gcc/g++)に渡すオプション
•  各々のCPUに最適化されたバイナリを作
れる
•  gccに"-march=native"というオプション
を渡すとホストのCPUに最適化されたオ
プションに展開される(x86/amd64)
–  distccなどで「異なるCPUのホスト間で」分
散コンパイルする場合は「展開後のオプショ
ン」を渡す必要がある
USEフラグ
•  Portageの肝
•  あるコンセプトのサポートとその依存関係
•  必要/不要な機能をここで選択
–  不要な機能を組み込んでビルドする必要がな
くなる
•  Xが要らない環境とか

–  必要な機能が依存するライブラリ等を依存関
係に組み込んでくれる
•  一緒にビルドしてくれる
その他の利点
•  差分更新
–  「パッケージツリーの更新」と「パッケージ
のアップグレード」をするだけで(殆どの場
合)システムを最新の状態にできる
•  コア部分の変更(glibc, gcc, ...)があると少し手間
がかかったりするかも

•  マルチアーキテクチャ対応
–  ソースベースの強み
欠点
•  ビルドしなくてはいけない
–  ものによっては長時間かかる
•  オフィススイートとかWebブラウザとか

–  バイナリパッケージが用意されているものも
ある
•  勿論自分の環境に合わせた最適化はできない

•  インストーラがない
–  公式ドキュメントがしっかりしてる
こんなひとに
• 
• 
• 
• 

distro配布のバイナリに不満がある
いちいち自前ビルドしてる
Linux(のなかみ)の勉強がしたい!
CPUの熱で暖を取りたい!
こんな人たちに
Gentooどうでしょう
え?
「私はLinux使いではない」?
「他のLinuxを使ってる」?
……でも、Gentooに興味持ちましたよね??
Gentoo Prefix
Gentoo Prefix
•  Gentooシステムを"prefix"で示される
(標準的でない)場所にインストール
–  元々のパッケージシステムと衝突して起こる
問題を回避
–  $HOME以下に構築すればroot権限が不要に
–  fluteで使えるようにしてほしい(願望)

•  システムに近いものは難しい
–  daemonとして動作するものとか
–  X(GUI)のものは細工しないとXごと丸抱え
Gentoo Prefix
•  対応プラットフォーム
–  {x86,amd64,ia64,arm}-linux
–  {x86,x64,ppc}-macos
–  x64-freebsd
•  FBSDには Gentoo/FreeBSD なんてのもある

–  その他もろもろ
•  UNIXベースなら導入はできると思われる
•  開発/保守が放置されてるプラットフォームがある
•  なので導入できても利用できるかはわからない
#gentooinstallbattle
•  というエクストリームスポーツ
–  Gentooインストールバトル!! ‒ Togetter

•  定義
–  @naota344 ‒ Twitter

•  覗いてみる
–  Results for #gentooinstallbattle ‒ Twitter
#gentooinstallbattle
•  大学で敢行する人たち
–  電通大でgentooinstallbattleをやろう ‒
SlideShare

•  うちは?
–  興味あるひとが集まればいいんだけどなぁ、
とか
–  #gentooinstallbattle でなくても関心ある人
たちで集まって何か面白いことがしたかった
–  この勉強会もそこからの思いつきだったり
まとめ
•  強力なパッケージマネージャPortage
•  CFLAGS/USEフラグで
バイナリをオレ色に染め上げろ
•  え? Gentoo使いじゃない?
ばっかおま……Prefixがついてるだろ
•  #gentooinstallbattle ……しよ?
–  (上目遣い)
ご清聴ありがとうございました

...Any questions?

ほんとはこわくない Gentoo Linux