• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
今最もアツイdistribution Gentoo Linuxについて

今最もアツイdistribution Gentoo Linuxについて






Total Views
Views on SlideShare
Embed Views



18 Embeds 2,697

http://d.hatena.ne.jp 1986
http://okochang.blogspot.com 508
http://okochang.hatenablog.jp 46
http://okochang.blogspot.jp 36
http://webcache.googleusercontent.com 28
http://nuevospowerpoints.blogspot.com 17
http://twitter.com 12
https://twitter.com 11
http://s.deeeki.com 11
http://wholesaler23.vinoreka.com 10
http://www.slideshare.net 8
http://coderwall.com 8
http://a0.twimg.com 5
http://www.techgig.com 5
http://lingr.com 2
http://hatenatunnel.appspot.com 2
http://mundo-powerpoints.blogspot.com 1
http://b.hatena.ne.jp 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.


11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Hello friend,

    how are you today i hope that every things is ok with you as is my pleasure to contact you after viewing your profile today and it interest me in having communication with you if you will have the desire with me so that we can get to know each other better and see what happened in future.i will be very happy if you can write me through my email for easiest communication and to know all about each other,here is my email [ favorfumba100@yahoo.in ] favour to hear from you as i wish you all the best for your day.please do not come to this site always do all you can to write direct to this my private email address_-________________________ [ favorfumba100@yahoo.in ] and i believe that we can bring out
    peace and love and also good understanding in our togetherness. in my nest mail to you i will tell you all about my self with my picture
    thanks. and remember to send your private email address to me

    yours new friend.favour
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    今最もアツイdistribution Gentoo Linuxについて 今最もアツイdistribution Gentoo Linuxについて Presentation Transcript

    • 今最もアツイdistributionGentoo Linuxについて ナマエダケデモ オボエテ カエッテクダサイ
    • 自己紹介● 松鵜 琢人(まつう たくと) ○ matsuu(twitter) ○ tmatsuu(はてな)● Gentoo Linux Developer● タイル型ウィンドウ マネージャ推進委員会● 最近は翻訳にも少しずつ手を出しています● ネットワーク屋を経てWeb系プログラマー● 勉強会に積極的に参加してる(つもり)● 単館系映画好き。映画館で年間100本以上見る
    • Gentoo Linuxとは● Daniel Robbinsが創設したディストリビューション ○ http://www.gentoo.org/● 2002年3月31日にGentoo Linux 1.0がリリース● 日本で広がるきっかけはSoftwareDesign 2002年7月号● RedHat系でもDebian系でもSlackware系でもない独自路線● Portageと言われるソースベースのパッケージシステム ○ rpmでいえばspecファイルのみ配布しているイメージ ○ 各マシンでバイナリをコンパイルして生成● 様々なCPUアーキテクチャをサポート ○ 移植が容易 ○ ARMやPlayStation3でも動作可能● 柔軟性が高いためメタディストリビューションと呼ばれる ○ Gentoo Prefixプロジェクト ○ Google ChromeOSもGentoo(Portage)がベース● 現在日本人のGentoo Developerは3人(ぐらい)
    • GentooJPとは各種のプロジェクトの実施、 メーリングリスト・IRCチャンネルの開設などをとおして、 gentoo.orgが配布するGentoo Linuxの日本での普及・発展を支援し、 ユーザー間の情報交換の円滑化を図ることを目的として2002年12月1日設立。主な活動は以下のとおり。 ● ドキュメント、GMN等の翻訳作業 ● ebuild公開の場の提供 ○ ebuildJP ( http://ebuild.gentoo.gr.jp/ ) ● ユーザ交流のサポート ○ IRC ( #gentoo-ja at irc.gentoo.org(freenode) ) ○ GentooJP wiki ( http://wiki.gentoo.gr.jp ) ○ メーリングリスト ○ 飲み会 ● オープンソースカンファレンスへの出展
    • Linux(FreeBSD)と私● Turbo→Vine→Kondara→(Solaris)→FreeBSD● portsの仕組みを備えたLinuxがあるといいな● SD誌の記事でGentooを知る● 2003年7月からGentoo Linux Developerに ○ パッケージメンテナンス担当 ■ CJK関連(atokx3, ■ DNS関連(unbound,MyDNS,maradns) ■ AIDE,libev,distcc,puppet,redmine,awesome等 ○ 最近サボってますごめんなさい
    • Gentoo Linuxの名前の由来● ジェンツーペンギン● 小さくてすばしっこい● エプソン品川アクアスタジ アムで会える● 海洋堂がジェンツーペン ギンのフィギュアを作って た ○ 今は入手困難?
    • Gentooのマスコットキャラクター● Larry the Cow● 乳がみえるけど雄 牛● ジェンツーペンギン はマスコットキャラ ではない
    • Gentooの強み その1● 新しいパッケージを積極的に取り込む ○ 14804パッケージ(2011/08/05現在)● バージョンはどんどん上げていく ○ ローリングアップデート● パッケージ作成コストが低い● すべてのパッケージをソースからインストールする● カスタマイズ性が高い● ライセンス問題、商用アプリ対応可能 ○ 再頒布しないので多くのライセンス問題を回避できる ○ 商用アプリもパッケージシステムで対応可能 ■ ATOK X3 for Linuxは対応済● 様々なCPUアーキテクチャに対応している
    • Gentooの強み その2● WebアプリもPortageのシステムで管理・デプロイできる ○ webapp-configコマンドで● Perlモジュールのパッケージを自動生成するg-cpanコマンド ○ パッケージに含まれていないPerlモジュールも対応できる ○ g-cpanの他にもいくつかある ■ g-ctan(TEXLive) ■ g-octave(GNU Octave) ■ g-pypi(Python) ■ g-cran(R) ■ hackport(Haskell)● rpmやdebでしか配布されていないパッケージも対応可能 ○ Flash Player,Adobe Reader,google-talkplugin
    • ソースからインストールってどういうこと?● configure && make && make installを自動化● rpmで言えば、src.rpmのbuildとrpmインストールを 一気にやるイメージ● configure時オプションをカスタマイズできる ○ --enable-foo, --with-barなど● コンパイル時オプションをカスタマイズできる ○ CFLAGS, LDFALGSなど● 基本パッケージなどもない、すべてコンパイル ○ 依存関係も含めてすべて自動でインストールさ れるので手間はかからない 
    • USEフラグによるカスタマイズ ● 例えばphpでカスタマイズできる項目は・・・adabas apache2 bcmath berkdb birdstep bzip2 calendar cdbcgi cjk cli crypt ctype curl curlwrappers db2 dbmaker debug docembed empress empress-bcs enchant esoob exif fileinfo filterfirebird flatfile fpm frontbase ftp gd gd-external gdbm gmp hashiconv imap inifile interbase intl iodbc ipv6 json kerberos kolabldap ldap-sasl libedit mhash mssql mysql mysqli mysqlnd nlsoci8 oci8-instant-client odbc pcntl pdo phar pic posix postgresqdbm readline recode sapdb session sharedext sharedmemsimplexml snmp soap sockets solid spell sqlite sqlite3 sslsuhosin sybase-ct sysvipc threads tidy tokenizer truetypeunicode wddx xml xmlreader xmlrpc xmlwriter xpm xsl zip zlib
    • 現在対応しているアーキテクチャalpha, amd64, amd64-fbsd, arm, hppa, ia64, m68k, mips, ppc, ppc64, s390, sh, sparc, sparc-fbsd, x86, x86-fbsd以下はPrefixppc-aix, x86-freebsd, x64-freebsd, sparc64-freebsd, hppa-hpux, ia64-hpux, x86-interix, mips-irix, amd64-linux, arm-linux, ia64-linux, x86-linux, ppc-macos, x86-macos, x64-macos, m68k-mint, x86-netbsd, ppc-openbsd, x86-openbsd, x64-openbsd, sparc-solaris, sparc64-solaris, x64-solaris, x86-solaris, x86-winnt, x86-cygwin
    • パッケージ管理のコマンド RedHat Debian Gentoo (yum) (aptitude) (emerge)パッケージの yum install foo aptitude install foo emerge fooインストールパッケージの yum update aptitude update emerge --syncアップデート aptitude upgrade emerge -u worldパッケージの yum remove foo aptitude remove foo emerge -C fooアンインストールパッケージの yum search foo aptitude search foo emerge -s foo検索
    • Gentooの弱み● インストーラーが存在しない● バージョンはどんどん上げていく ○ ライブラリのバージョンがあがると動かなくなる可能性● パッケージはすべてソースからコンパイルする ○ 時間がかかる ○ パッケージのインストールに失敗することがある● OSの商用サポートは期待できない ○ 海外では昔は商用サポートがあったが今はない● Gentoo対応の商用パッケージなんて聞いたことがない● 開発者不足 ○ バージョンアップが停滞しているパッケージがちらほら ○ Linux界の極左であるため、内ゲバが絶えない ■ 最近はそんなことないよ
    • インストーラーがないってどういうこと?● パーティションの設定からGRUBのインストールま で手動でインストール作業を行う● たしかに最初は大変かもしれない ○ 公式ドキュメントが充実している ○ 公式ドキュメントどおりにやれば大丈夫 ○ 勉強になる● 新人教育にGentooインストールはマジオススメ
    • バージョンアップは諸刃の剣● バージョンアップによってプログラムが動作しない● ライブラリのバージョンが上がるとそれを利用しているソフトウェ アが起動しなくなる● 最近影響がでかかったアップデート ○ dev-libs/icu (International Components for Unicode) ○ webkit,libreoffice,gnome,sqlite,libxml2,boostなどが利用 ○ アップデート祭り● revdep-rebuildなどのライブラリのアップデートによって壊れたソ フトウェアを検出するツール● etc-updateやdispatch-confなどの設定ファイルの差分を確認・ マージするツール● ライブラリは無理にアップデートしないという選択肢もある
    • 共有ライブラリのバージョンについて● libtool方式の場合 libhoge.so.x.y.z ○ 0:0:0から始まる(current:revision:age) 1. ライブラリのソースが変更された→r++ 2. インタフェースが追加or削除or変更された→c++, r=0 3. インタフェースが追加された→a++ 4. インタフェースが削除された→a=0● 例えばlibhoge.so.3.12.1が・・・ ○ 3.13.1になった→ソースは変更されたが仕様変更なし ○ 4.0.0になった→一部仕様が削除された ○ 4.0.1になった→一部仕様が変更された ○ 4.0.2になった→一部仕様が追加(+変更)された● http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
    • 時間がかかる問題の対策● ccacheを使う ○ http://ccache.samba.org/ ○ コンパイル結果をキャッシュするccacheを使う ○ 2回目以降のコンパイルが劇的に早くなる● distccを使う ○ http://www.distcc.org/ ○ ネットワーク越しに分散コンパイルする ○ PCが2台以上あるならコンパイル時間が短縮できる ○ クロスコンパイル環境にも対応● バイナリパッケージを作る(binpkgs) ○ ただし全く同じ設定のサーバが複数台ある場合のみ意味が ある
    • ccache● コンパイル結果をキャッシュ、過去にコンパイルしたことがあるも のはキャッシュを再利用して高速化● C/C++/Objective-C/Objective-C++に対応● 使い方 # cp ccache /usr/local/bin/ # ln -s ccache /usr/local/bin/gcc # ln -s ccache /usr/local/bin/g++ # ln -s ccache /usr/local/bin/cc # ln -s ccache /usr/local/bin/c++● あとは普通に $ gcc hoge.c● 2回目以降のコンパイルで効果を発揮● GCCにしか対応していない
    • distccについて● ソースコードのコンパイルを他のサーバに丸投げすることでコンパイル 時間の短縮を図るプログラム● C/C++/Objective-C/Objective-C++に対応● gccの互換性に注意● 使い方# cp distcc /usr/local/bin/# ln -s distcc /usr/local/bin/gcc# ln -s distcc /usr/local/bin/g++# ln -s distcc /usr/local/bin/cc# ln -s distcc /usr/local/bin/c++● あとは普通に$ gcc hoge.c● ccacheを組み合わせて動作させることも可能(pumpモード除く)
    • distccのイメージ
    • Gentooのセキュリティ対応● セキュリティアドバイザリを発行している ○ GLSA(Gentoo Linux Security Advisory)● GLSAの発行までの流れ ○ Bugzillaにセキュリティの報告があがる ○ なんとかして直す ■ 直せない場合は放置もしくはパッケージ削除 ○ 直ったらGLSAを発行するか協議(vote)する ■ これが最近グダグダ ■ 他のディストリビューションがSAを発行したら発行? ■ 小物アプリなら大丈夫ですよ ○ GLSAが発行されたものだけアップデートするツールがある ■ glsa-check ○ が、上記のとおりなのであまり意味ないこ
    • Gentooが向いている人● バイナリパッケージのコンパイルオプションに不 満がある● ソースからインストールしたものが1つ以上ある● Linux kernel 3.0をインストールした● 新しいものが好き● 苦労は買ってでもしたい● Linuxのコマンドを勉強したい● マゾ気質
    • Gentooはサーバ用途に向いている?● うーん、どうでしょうね● 新しいソフトウェアの台頭 ○ Hadoop、Cassandra、nginxなど● いきなり実環境へ導入されることも多い● 各ディストリビューションでパッケージが用意され ていない● ソースからインストールしてる?● 自前でRPMパッケージつくってる?● だったらGentooでいいじゃない
    • Gentooパッケージの作り方● 後発であるが故にとてもわかりやすいパッケージ● 拡張子は.ebuild● 中身はbashスクリプト● 主な設定内容 ○ ソースファイルの場所をSRC_URI変数に書く ○ DEPEND,RDEPENDに依存関係を書く(省略可) ○ src_unpack()にソースの解凍方法を書く(省略可) ○ src_prepare()にパッチを適用する(省略可) ○ src_configure()にconfigure関連の設定を書く(省略可) ○ src_compile()にmake関連の設定を書く(省略可) ○ src_install()にmake install関連の設定を書く(省略可)● 極端な話、SRC_URIを書くだけでパッケージがかける(ものもあ る)● http://packages.gentoo.org/
    • ebuildのサンプル(skel.ebuild)
    • ebuildのサンプル(ibus-tutcode-1.0.0.ebuild)
    • そろそろGentooを使いたくなってきたよね?
    • Gentooを試す● まずはインストール用CDのisoイメージをダウンロード (121MB) ○ http://www.gentoo.org/main/en/where.xml● 日本語のインストールハンドブックを参考に ○ http://www.gentoo.org/doc/ja/handbook/index. xml● CDで起動するとプロンプトが表示される● インストールの難易度の高さを味わうのも一興● VMwareやVirtualBoxなどでとりあえず試してみては いかが?
    • Amazon EC2にAMIイメージあります● 東京リージョンにGentooのAMIを作成しました
    • AMIイメージ利用の上での注意点● rootでログインしてください ○ ssh -i yourkey.pem root@xxx.xxx.xxx.xxx● syslogdとcrondをインストール ○ emerge --sync ○ emerge syslog-ng ○ rc-update add syslog-ng default ○ emerge vixie-cron ○ rc-update add vixie-cron default● syslogd例 ○ syslog-ng, rsyslog, sysklogdなど● crondの例 ○ vixie-cron, dcron, fcron, cronie, bcronなど● smallインスタンス以上を推奨
    • ちょっと試してみたい人用に● Amazon EC2上にテスト用インスタンスを作成しました ○● SSH鍵はここに置いています ○ http://厳冬鍵.縮.jp/ ○ chmod 600 gentoo20110806.pem ○ ssh -i gentoo20110806.pem root@● これはsmallインスタンスです● テスト用なので好き放題触ってOK● poweroffやウイルス等を仕込むはヤメてね● 今日中にシャットダウンします
    • 他人が作ったAMIは信用してはいけない● AMIを一発で作ることができるスクリプトを用意しました ○ https://gist.github.com/870789● Amazon AMI Linuxのインスタンスを1つ作る ○ x86版Gentoo Linuxを作りたい場合は32bitを選択 ○ amd64版Gentoo Linuxを作りたい場合は64bitを選択● X.509証明書と秘密鍵をダウンロード ○ https://aws-portal.amazon.com/gp/aws/developer/account/index.html? action=access-key● スクリプトと証明書と秘密鍵をAMIインスタンスにscpで転送して 実行● sudo sh create_gentoo_ami.sh ○ AMIのできあがり
    • その他の選択肢(VPS編)● さくらのVPSはOSを入れ替えることができる ○ http://vps.sakura.ad.jp/ ○ Gentooがインストールできることを確認済 ○ インストールの半自動化スクリプトがある ■ http://blog.kiyoya.shi-ba.org/post/1203448287 ○ 改良版はこちらに ■ https://github.com/matsuu/gentoo-sakura-vps/● 海外にはGentooを選べるVPSサービスもあるよ
    • この夏は Gentooライフを満喫しませんか?