More Related Content
Similar to 俺のGentooがこんなに可愛いわけがない (20)
More from Takuto Matsuu (10)
俺のGentooがこんなに可愛いわけがない
- 2. 自己紹介
MATSUU Takuto(松鵜 琢人)
matsuu もしくは tmatsuu
Gentoo Linux Developer(パッケージメンテナー)
CJKパッケージを中心に、他distccやDNS関連など
元ネットワーク屋の現プログラマー(Perl,PHPなど)
日本タイル型ウィンドウマネージャ推進委員会
翻訳、Kindle関連サービスとか
単館系映画は俺にまかせろ
今映画館で上映中のオススメ映画
「冷たい熱帯魚」
「ソウルキッチン」
「フード・インク」
- 4. Gentoo Linuxの特徴
RPM系でもdeb系でもない、独立ディストリビューション
ローリング・リリースを採用、明確なバージョンがない
2011/02/11時点のパッケージ数 14320
FreeBSDのportsにインスパイアされたPortage
バイナリパッケージが存在しない
すべてのパッケージはソースからインストールする
specファイルと各種パッチのみ配布してるイメージ
インストールのたびにコンパイルする
CPUに合わせたコンパイルオプションの最適化
様々なCPUアーキテクチャへの移植が容易
再配布禁止のライセンスにも柔軟に対応
コンパイル時オプションのカスタマイズが可能
GentooはLinux界の極左
- 5. USEフラグによるカスタマイズ
例えばphpでカスタマイズできる項目は・・・
adabas apache2 bcmath berkdb birdstep bzip2 calendar cdb
cgi cjk cli crypt ctype curl curlwrappers db2 dbmaker debug doc
embed empress empress-bcs enchant esoob exif fileinfo filter
firebird flatfile fpm frontbase ftp gd gd-external gdbm gmp hash
iconv imap inifile interbase intl iodbc ipv6 json kerberos kolab
ldap ldap-sasl libedit mhash mssql mysql mysqli mysqlnd nls
oci8 oci8-instant-client odbc pcntl pdo phar pic posix postgres
qdbm readline recode sapdb session sharedext sharedmem
simplexml snmp soap sockets solid spell sqlite sqlite3 ssl
suhosin sybase-ct sysvipc threads tidy tokenizer truetype
unicode wddx xml xmlreader xmlrpc xmlwriter xpm xsl zip zlib
- 12. Gentoo Linuxに関する諸問題と解決策2
確かにコンパイルする時間は取られる
良いCPUと大きめのメモリーを用意しなさい
コンパイル時間を短縮する手段がいくつかある
分散コンパイルシステムのdistcc
コンパイル結果をキャッシュするccache
カーネル再構築を助けるgenkernel
バイナリパッケージをつくって素早く配布できる
同じコンパイルオプションでUSEフラグでよければ
Cgroupを使ってバックグラウンドでコンパイルすれば
邪魔にならない
- 14. ローリング・リリースは諸刃の剣
パッケージのバージョンがどんどんあがる
設定ファイルの書き方が変わったら頑張って追随
新旧の設定ファイルをマージするツールがある
etc-update, dispatch-confなど
ライブラリがアップデートされると依存パッケージが死ぬ
Perl(libperl)のバージョンがあがると・・・
glibcがアップデートされた日には・・・
依存関係が壊れたパッケージを修復するツールがある
バイナリパッケージを作成すればおそらく回避可能
セキュリティアップデート以外はアップデートしない
ライブラリがアップデートされるとどうなるのか、どう解決すれば
いいのか、いい経験になる
- 19. パッケージ(ebuild)の例
DESCRIPTION="This is a sample skeleton ebuild file"
HOMEPAGE="http://foo.example.com/"
SRC_URI="ftp://foo.example.com/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="mysql nls"
src_configure() {
econf $(use_with mysql) $(use_enable nls) || die
}
src_compile() {
emake || die
}
src_install() {
emake DESTDIR="${D}" install || die
}
- 21. それGentooで解決できますよ
バイナリパッケージのバージョンが古い
Gentooはバージョンをどんどん上げていくポリシー
バイナリパッケージのconfigureオプションが物足りない
configureオプションのカスタマイズが可能
バイナリパッケージが存在しない
debian級に豊富なパッケージ群
ソースからインストールして/usr/localが膨らんでいる
簡単に作れるパッケージ
独自のRPM、リポジトリを作成している
それGentooで
RPM同士の依存関係解消のためRPMを沢山作るハメに・・・
必要最低限のパッケージ作成だけでOK