2007年02月20日
Live CD で distcc 出来そうな気配
先日、distccKNOPPIXの入手を断念したばかりだが、そんな難しいことを考えなくても良いことがだんだんわかってきた。素のKNOPPIXにもdistccが装備されているのである。そしてなんともっと身近なGentoo Live CDにもdistccが実装されているらしい事がわかった。
考えてみれば、私がGentooのインストールに使ってみたのは、50MB程度のminiインストールCDだったから、必要最低限のツールしか入ってなかったのだ。一時は諦めかけたBootable CDによる一時的なdistcc分散コンパイル計画は、現実味を帯びてきた。
さて、遠回りした結果ようやく思いついた、KNOPPIX、もしくはGentooのLiveCDを使ってdistccを行おうという計画だが、確認しておかなければならないことがある。
まず第一はgccのバージョンについてだ。 これについてはGoogleで検索してみたりしたのだが、そんな手間をかけずとも、一目瞭然でわかる有名なサイトがあった。DistroWatch.comである。
ありがたいことに、Gentoo 2006.1のgccバージョンは4.1.1であり、KNOPPIX 5.1.1のgccも4.1.1という事が直ぐに比較できる。これでgccのバージョンについての課題はクリアだ。
次の課題はdistccがKNOPPIXに入っているかどうかだ。これは実際にKNOPPIX 5.1.1をダウンロードして、CD-Rに焼いてBootして確認してみた。distccはインストールされており、コマンドで操作できることが確認できた。これでGentoo 2006.1 のLiveCDが無理だった場合でも、KNOPPIXという最終手段があることが分かった。
いよいよ本題の、Gentoo 2006.1 LiveCDについての検証だ。 KNOPPIXと同様にBootableになっているので、CDブートできる。そのまま放置しておくと、Gentooのデスクトップ環境が表示される。どうやら"gentoo"というユーザー名でオートログインしている様だ。デスクトップ上には、コマンドラインのインストーラー、及びグラフィカルなインストーラーを起動するアイコンがある。
ただしこのgentooユーザーでログインした状態では、管理者権限がないため設定の変更などは出来ない。つまりdistccの設定なども出来ないのだ。これは非常に困った。しかし回避方法を見つけたので安心して欲しい。
CTRL + ATL + F1キー押下で、仮想コンソールTTY1を表示させる。rootでログインした状態にあるので、rootのパスワードを変更(設定)してしまえばよいのだ。
#passwd
ついでにgentooのパスワードも変更しておこう
#passwd gentoo
更についでに、gentooをwheelグループに登録してしまおう。
#gpasswd -a gentoo wheel
パスワード等の変更が反映されたか確認してみる。
まずは、CTRL + ALT + F7キーを押して仮想コンソールTTY1を抜け、X-Windowのデスクトップ画面に戻ろう。
各種root権限が必要な機能にアクセスし、rootパスワードにて設定変更等が行なえるか確認する。ネットワーク設定等は、root権限が無いと行なえないので確認してみて欲しい。
ターミナルでユーザー:gentooからsuできることを確認しよう。同様にsudo出来ることを確認してみて欲しい。これらが出来るようになったら、gentoo Live CDは自分の支配下に置いたと同じだ。
distccに関わる設定ファイルを、suになってからviで開いて編集し保存(RAM上なので電源を切れば戻る)してみる。うまく出来る事が確認できた。distccをサービスとして登録したりしてみたが問題無さそうだ。どうやらGentoo Live CDでdistccの分散コンパイルマシンを一時的に準備することが出来そうだ。最近はCD-Rも安くなった(というよりもDVD-Rの方が断然安いが)ので、マシンの分焼いても良いだろう。まぁ取り合えず一台で試してみてからの方が無駄が無いかな。700MBのCD-RWが安く手に入ればそちらの方が後々便利かも知れない。エコロジーという観点からも。
取り合えず今回は、CDブートでdistcc環境が作れそうだという話まで。また余裕が出来た時に実際の分散コンパイル作業を行なってインプレしてみたいと思う。 ちょっと心が躍ってきた感じがする。
投稿者 sasapurin : 14:34 | コメント (0) | トラックバック
2007年02月19日
distccKNOPPIX
一体どこにカテゴライズしたらいいのかわからなくなったけれど、素直にKNOPPIXを作っちゃおう。Gentoo Linuxのコンパイル環境をより効率的に行うために、distccという分散コンパイルの仕組みがあるのを知ったが、問題はdistccをどこで動かすかである。LAN内にGentooマシンがゴロゴロ転がっていれば、emergeしてしまえば直ぐに分散コンパイル環境は整うが、実際はそうは行かない。Windowsマシンありの、BSDマシンありの、Gentoo以外のLinuxありのでしょう。
Windowsマシン上ならば、cygwinを入れて、その上にdistccを入れて分散コンパイルに参加させると言う方法もある。はたまた他のLinuxマシンでも、例えばDebianならaptでdistccを導入出来る。FreeBSDならばPortsで導入可能なことも確認した。
しかし課題は、gccのバージョン揃えである。distccの為に安定稼動している他のマシンのgccを入れ替えるとか言うのもかなり無茶だし手間とも言える。ならば一台Gentoo Baseにvimとdistccをemergeした状態で、Ghotstを取ってそれを複数台のマシンに復元して回るか。不可能ではないが現実的ではない。現状のシステムに変更を加えずに一時的に分散コンパイルに参加させたいのだ。
そうなれば、やっぱりここは1CD Linuxなディストリビューションの出番だろう。例えばKNOPPIXならば、必要な時だけCDブートして使用すれば良い。作業が終わればCDを取り出してリブートすれば、元通りに戻る。KNOPPIXをカスタマイズしてdistccを組み込むことも、gccを入れ替えることも、要らないパッケージを削除して自分流を作り出すことも技術的には可能である。普段はWindowsで稼動しているマシンを、Gentooのインストールの時にだけ、Linuxマシンとして稼動させることが可能だ。やっぱりこれしかない。
もしかしたら既にdistccを目的にKNOPPIXを作っている人が要るんじゃないかと思ったり。Googleで"distcc KNOPPIX"を検索してみた。そしたら「もしかして:distccKNOPPIX」と言われた。distccKNOOPPIXという単語がGoogleのキャッシュにある様だ。かなり期待できる。
行き着いたのは、distccKNOPPIXのHPだったが残念ながら英語である。gccのバージョンを選んでからISOファイルもダウンロードできる様だ。それ以外はGoogleでも日本語の情報はほとんど見つからない。どうやらここからは試行錯誤が必要になりそうだ。もしくは苦手な英語との格闘かな。
distccKNOPPIX is a directly bootable and self-configuring Linux system on a small iso (~55MB) running adistccddaemon. It is a simple remastering ofDamn Small Linuxrunning a distccd daemon and some general cleaning up/removal of unneeded packages/apps. It's obvious target is for those who have other machines at their hands, and for some reason or an other can not get a distccd daemon running on it. Damn Small Linux is a remastering ofKNOPPIX
distccKNOPPIXはdistccdデーモンを走らせる小さいiso(~55MB)の上の直接ブート可能な、自己を構成するリナックスシステムです。 それは、distccdデーモンを走らせるDamn Smallリナックスの簡単な再習得と不要なパッケージ/アプリケーションの何らかの一般的な掃除/取り外しです。 目標が彼らの手においてある理由で他のマシンを持っている人々のためのものであることが明白であるか、またはdistccdデーモンはもう一方でそれで動くことができません。 Damn SmallリナックスはKNOPPIXのリマスタリングです。
なるほど期待できそうだからダウンロードしてみるか、と思いきや、カートに追加とか、まるでネット通販みたいな仕組みだぞ?ががーん、出てきた。4.99CADってカナダドルって意味か?金払って買うにしても海外だと、やっぱり怖いから買えない。せめて日本語でちゃんとしたところが決済処理してくれないと。
残念ながら自分で作るしかなくなったのでは無いだろうか。KNOPPIXのカスタマイズを学習しないといけなさそうだ。ゴールが見えたと思いきや、それは全然違うゴールであった。だれか日本人の知識ある人が作ってくれないかなぁ。 KNOPPIXについてはもう少し詳しく調べてみるつもり。
とりあえず後で必要となりそうなソースの配布元を備忘録。
- distcc http://distcc.samba.org/
- ccache http://ccache.samba.org/
投稿者 sasapurin : 01:29 | コメント (0) | トラックバック
2007年02月17日
Vine Linux 4.0 のxorg.conf
何年ぶりだか、Gentoo Linuxをインストールしてみた。知人が最近UNIX系の知識を使う会社に転職したそうで、しきりにGentooはいいよと電話でいわれるからだ。たしかにGentooはBSDっぽいところがあって、個人的には使い易いと感じる。
ただし、問題はインストールにかかる手間と時間だ。手間は多少かかっても許せるが、時間が異常にかかるのはなんとも言えない弱点だ。基本的にコンパイル処理が発生する頻度が高く、マシンスペックが低いと数日がかりである。とりあえずCPUのクロックが2GHz位で、メモリーが512MB以上あれば、一日位で何とかなるかも知れない。 非常に見通しの良いシステムを作れる仕組だが、現実的なことを考えると、マシンスペックが必要異常に欲しくなる。本来は型遅れなマシンでも動く軽さという魅力を備えているというのに。
と、悲観的なことを書いたけれど、Gentooには美味しい機能というか仕組を簡単に実装することが出来るので、処理の速いGentooマシンを持っていれば、同一ネットワーク上で分散コンパイルすることが出来るのです。この仕組さえ仕込んでしまえば、emergeの時にかかるコンパイル処理を他のマシンに助けてもらえるので、比較的古いマシンでも再利用することが出来そうです。詳しくは"distcc"や"Gentoo 分散コンパイル"等のキーワードで検索してみてください。
実際、GentooでWebサーバを組んだら、かなり無駄なものを削ぎ落とした環境が作れるなとマジに思った。それ位Gentooのemergeは魅力的なパッケージ管理ツールである。
それはさておき、興味本位というか、以前はマシンがしょぼ過ぎて途中で断念したX-Windowをいれてみようと、ThinkPad X31 にGentooのベースシステムをインストールした後で、emerge xorg-x11を実行してみた。おそらく3時間かからない位でコンパイルが終わっていた。さすがにPentium-Mだけあって、計算速度は桁違いである。(最近のCore Duoなんかだともっと速いんだろうな)
しかし、肝心のXorgのコンフィグが上手く設定出来ない。なんか5年以上前にFreeBSDでXFree86と格闘したのを思い出した。一週間位かかってXの立ち上げに成功した時の達成感。でも今はそれほど固執する理由もないので、てっとり早く同じXorgを使っているVine Linux 4.0のxorg.confを参考にすることにした。
ベースシステムを入れ終わったら、とにかくまずvimをインストールして(nanoはめちゃ使いづらい)、sshを有効にしちゃえば、X-Windowが動いているUNIXマシン、若しくはWindows上でPuttyやTeraTermPro辺りから設定すれば、コピペも出来るからかなり作業効率が上がる筈だ。急がば回れとはこのことだなと思ったり。
という訳で自分の為に、Vine Linux 4.0(by ThinkPad X31)のxorg.confをテキストファイルで上げておく。xorg.conf.txtをダウンロード