Linux Install Memo

Archive for 9月, 2009

□Vine5でFirefox3.5をカスタマイズする

by on 9月.25, 2009, under MEMO

□Vine5でFirefox3.5をカスタマイズする

もう速度を意識するなら、専用ブラウザにするしかないでしょ。

まずはソースを取ってくる

mkdir /usr/src/firefox/
cd /usr/src/firefox/
apt-get source firefox
rpm2cpio firefox-3.5.2-3vl5.src.rpm | cpio -id

で、できたところでいったんソースからコンパイル

rpmbuild –rebuild firefox-3.5.2-3vl5.src.rpm

> libpng-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> libjpeg-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> zlib-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> libIDL-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> gtk2-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> gnome-vfs2-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> libgnome-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> pango-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> nspr-devel >= 4.8 は firefox-3.5.2-3vl5.i386 に必要とされています
> nss-devel >= 3.12.3 は firefox-3.5.2-3vl5.i386 に必要とされています
> gecko-devel-unstable = 1.9.1.2 は firefox-3.5.2-3vl5.i386 に必要とされています
> libXt-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> libXrender-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> startup-notification-devel は firefox-3.5.2-3vl5.i386 に必要とされています
> autoconf213 は firefox-3.5.2-3vl5.i386 に必要とされています
> freetype2-devel は firefox-3.5.2-3vl5.i386 に必要とされています

だと。

というわけで、さっくり必要なものをインストール。

apt-get -y install libpng-devel
apt-get -y install libjpeg-devel
apt-get -y install zlib-devel
apt-get -y install libIDL-devel
apt-get -y install gtk2-devel
apt-get -y install gnome-vfs2-devel
apt-get -y install libgnome-devel
apt-get -y install pango-devel
apt-get -y install nspr-devel
apt-get -y install nss-devel
apt-get -y install gecko-devel-unstable
apt-get -y install libXt-devel
apt-get -y install libXrender-devel
apt-get -y install startup-notification-devel
apt-get -y install autoconf213
apt-get -y install freetype2-devel

で、入ったところでもう一度

rpmbuild –rebuild firefox-3.5.2-3vl5.src.rpm

いけるらしい。

ではソースをいじりましょ。

rpm -ivh firefox-3.5.2-3vl5.src.rpm

とすると、/usr/src/vine/firefoxの中にソースが展開されるけど、
まだtarボールなので、さらにspecsファイルを使って展開する

rpmbuild -bp firefox35-vl.spec

で、 /usr/src/vine/BUILD/firefox-3.5.2/ の必要なファイルをいじったら

rpmbuild -bc firefox35-vl.spec

コンパイルエラーがなければ

rpmbuild -ba firefox35-vl.spec

で、RPMファイルを作成して、できたらインストール…

だったけど、やりたいことは

/usr/lib/firefox-3.5/components/nsBrowserContentHandler.js

このJavaScriptファイルに書いてあるということがソース展開で
判ったので、とりあえずメモ程度にしておく。

Leave a Comment more...

□最近のUSBメモリでのインストール方法

by on 9月.16, 2009, under MEMO

最近はUSBメモリにisoイメージを焼いてインストールする方法が簡単でお勧めだが、よくはまるのが、USBに焼いてブーとさせるまではいいものの、いざインストールが出来ない、ということがある。

というのも、自分でVine5とかFedora11とかをインストールしようとしてはまったのだが、結論から言うとFedoraのLiveUSB-Createrで焼いたときのUSBメモリのボリュームシリアル番号が、実際の番号と違うところに気がつくまで結構時間がかかった。

USBにisoイメージを焼いたら、ついでにUSBメモリのボリュームシリアル番号(A814-83D5、みたいなの。WinでC:\>vol E:とかでみれる)を控えてからブートして、TAB押してブートパラメータを確認&変更すること。

久しぶりにはまったので、一連の作業をメモっとく。

追加1.
Vine5の場合には、どうやってもUSBメモリからインストールできなかった。
まぁDELLのPowerEdge2850におなじみMegaRAID(PERC/4C)が入っている環境なので、以前のPlamoとかSlackWareと同様に/dev/sdaとか/dev/hda以外からのインストールがまだ出来ないのだろう。
仕方がないので、結局isoイメージをDVDに焼いて、本体のドライブはCDなので、ブレードサーバーのPowerEdge1850のおまけでついてきた(っていうかつけた)USBなDVDドライブから起動してインストールした。

追加2.
で、コレの本題はXvfbを動かしたいのだけど、Vine5で「全てインストール」とやってもXvfbは入ってない。
ぐぐってみて
apt-get install XOrg-Xvfb
とやっても、対応したXOrg-Xvfbがないらしい。
ま、Xvfbが入ればいいので
apt-get install Xvfb
とやったら無事に入った。(^-^;

追加3.
Adobe Flash Player 10をインストールしたい。
apt-get install install-assist-flash-plugin
だけでよかった。
もうここまで来ると、Winと変わらん…

追加4.
続いて本題のFirefoxだが、デフォルトのウィンドサイズが3.5になって、コマンドラインオプション(-height -width)が使えなくなったらしい。これで悩んだが、もじら組で聞いてみたらヒントとなるポインタを教えてもらった。
localstore.rdfの中で
screenX="0"
screenY="0"
width="1040"
sizemode="maximized"
height="1024" />
こんな風に書くと、起動時のウィンドウ位置とかサイズを指定できる。

追加5.
話は変わって、PHPは5.3.0がはいるけどこれはPostgreSQLのライブラリが組み込まれていない。
apt-get install php5-pgsql
これでOK。もー簡単すぎ。

追加6.
で、本題のFirefoxをcronで自動的に起動してWEBキャプチャするという技だけど、よくある話で
Vineもご多分に漏れず、通常ログインとは環境変数が異なるのでうまく起動してくれない。
というわけで、exportで見た環境変数の中から、必要そうなものを抜き出して /etc/contab の
冒頭に追記しておいた。これできちんと起動するようになった。

追加7.
どうも時々WEBキャプチャができていないことがある。
調べてみると、音が出ないよー、pulseaudio動いていないのー!?といってFirefoxがふんばっているらしい。
確かにそんなデーモン動いていないし…と、調べてみたらとりあえずサウンドカードがなくても動かしておけば
いいのかも?ということで、rc.localに書いて起動させることにした。

追加8.
WEBキャプチャができないのは「追加7」だけが原因ではないらしい。
Firefoxはブラウザが強制終了すると、前の接続状態を覚えているので、下手に「とろい」ページや音を鳴らす
ページで踏ん張っていた場合、何度でもここを表示しようとしたり、セッション復活しますかー、と聞いてくる。
コレをとめるべく、というよりももうキャプチャだけが目的だから「*.sqlite*」を全て消すことにした。
これで毎回すっきりとFirefoxが起動するだろう。

追加9.
すっきり起動するようになったけど、どうしてもキャプチャにムラがある…
調べてみたら、Firefoxを10個起動して15秒でどこまでキャプチャできるか試してみたら、じっさいのところ
5枚までは完璧、6枚目が70%くらいしか読み込めていなかった。
コレがXeon-3.2GHz/2GB-MEM/36GBの限界ということか!?
Xeonを双発にしてみるとか、HDDをRAIDにするとかいろいろやっても、費用対効果が薄いだろうし、
結局は複数台用意するしかないのかな。
一台で30秒で10枚、っていうことは、毎分20枚、毎時1200枚、毎日28800枚かぁ…。

追加10.
しばらく動かしていたら、ものの10分程度でまた全然キャプチャできなくなった。
この状態でいろいろ調べてみると、どうもFirefoxそのものが起動できていないみたい。
どうもセッションとキャッシュの類を毎回バンバン消した方がいいみたい。
10秒間隔だときついけど15秒間隔なら五回ぶん回してキャプチャしても、最後まできちんと
キャプチャできたから、30秒ごとなんてしなくてよくなれば、かなり高速化できるようになった。
一台で15秒で10枚、っていうことは、毎分40枚、毎時2400枚、毎日57600枚…。
だけど、そのほかのオーバーヘッドもあるから、まぁ一日5万枚キャプチャできればいいかな。

すでにURLは50万個ぐらい溜め込んでいるから、それでも10日かけて処理するのか。
もう一台あれば一週間かからずに処理できるかなー、Vineのインスコは終わってるけど
CPUがXeon-2.8GHz×1個だからなぁ、二個一にしてCPUを二個積みにしてRAID-0で
速度を稼ぐようにすればさらに増しになる…かな!?

追加11.
ついにやっちまった、寝ていたDELL2850二台をRAID0でVineインストールして、三台構成
でキャプチャすることに。最初の一台が、いろいろなオーバーヘッドで毎時1500枚ちょいしか
キャプチャ生成できないので、三台にしても毎時4500枚…はいかないだろうなぁ。
事実、三台にしてみてわかったけど、PostgreSQLで作業中フラグを立てるためにテーブル
ロックしてたらガチでぶつかってしまっている…少しずらさないといけなから、毎時4000枚程度
を見込むことにしよう。それでも一日あたり96000枚…まぁ10万枚(=10万URL)/Dayいける
んだからいいことにしよう。

それよりも電源が問題だョ。┐(´∀`)┌ヤレヤレ

追加12.
さぁこれでどんどんキャプチャ、と思ったらどうもつっかえているみたい。
むむむ、と様子を見てみると後から追加した二台(Xeon-2. 8GHZ×1, 2GB-MEM, RAID-0)は
15秒おきにキャプチャだと微妙に間に合わないらしい…うーん。
というわけで、また計測スクリプト(言ってみればこれ用のベンチマークソフトか)で計測すると
とりあえず20秒おきなら問題ないみたい。
ま、これでも初号機の7/8の速度で処理すると考えれば妥当なところか。
合計で毎時4200〜4300枚だから、一日10万枚(10万URL)はいけるって事だな。

しばらく稼働させて問題なければ、ちゃんとしたサービスにするか!?

たぶん最後の追加.
計算を間違えてた。
まだ一日あたり7万枚強しか処理できないや。(^-^;;;

追加13.
やっぱり最後にならなかった…けど、ほとんどその後の改善レポート。
いらないサービスをとめまくり。
atd
avahi-daemon
bluetooth
cpuspeed
cups
haldaemon
iscsi
iscsid
netfs
nfs
nfslock
と、これらをとめたら
haldaemon
はXvfbの動作に必要らしいので復活。

さらにヤフオクでポチッて、Xeon-2.8GHzの二台をそれぞれXeon-3.4GHzに変更。
UPSがオーバーロードで悲鳴を上げている…どれだけ電気食うんだよ。

それぞれの処理速度は以下の通り。
cap1(Xeon-3.2GHz×1、2GB-MEM、36G-RAID1) 毎時1215枚
cap2(Xeon-3.4GHz×1、2GB-MEM、36G×2-RAID0) 毎時1380枚
cap3(Xeon-3.4GHz×1、2GB-MEM、36G×3-RAID0) 毎時1434枚
合計で、毎時4029枚、毎日96696枚(約9.6万枚)ってことで。

CPUを変えただけでかなり改善したなー。
ついでに、残りの二台も全部三台構成のRAID0にするか!?そうすると約10万枚/日に届きそうだな。
それともCPU二個積みにするか!?
ま、いずれにしてもたぶんコレで本当にラストの追加。

今後はサービスとして提供する方向で検討…のつもりだけと…電気とトラフィックの大飯ぐらいだしなぁ。

Leave a Comment more...

何かお探しですか?

下記に探しているキーワードを入力してください:

ただし、もし探し物が見つからなくてもがっかりしないでください。
それは『あなたがドキュメントを作りなさい』というお告げなのです。

リンクリンクリンク!

きっとあなたにとって役立つリンクです...