投稿

ラベル(BusyBox)が付いた投稿を表示しています

近況〜PCとカスタムLiveCDをメンテしてます

イメージ
近況 100GB の内臓 HDDで適当に切っていたパーティションを切り直し各サイズを変更した。過去は、XP が入っていた HDD にFreeBSD と Gentoo をデュアルブートするためのレイアウトだった。 /dev/sda1 50GB (FreeBSD) /dev/sda5 15GB / /dev/sda6 2GB swap /dev/sda7 ALL /home わずか数週間後に FreeBSD は、削除して  /dev/sda1 は Gentoo の /usr/local に割り当て。これで数年使ってたが、空き領域が減るにつれて気に入らなくなったので思い切って再編成。 /dev/sda1 30GB / /dev/sda2 4GB swap /dev/sda5 ALL /home データを退避させる外付け HDD でも持ってたら楽なんだけど、無いので gparted でリサイズしながら移動。使ったのは以前にカスタマイズしていた SystemRescueCd 。この CD のおかげでめでたく再編成完了。 SystemRescueCd は、3.5.0 がベースで 2013年4月からアップデートを行っていなかったのでついでにやってしまう事にした。 3.8.1 がリリースされているが、大きな変更はされてないようなので、 3.5.0 のままパッケージのみをアップデートする。さすがに 7ヶ月も経過するとパッケージ数の少ない LiveCD とは言え 300 を越える更新があった。 Gentoo の場合、依存性が変わるとブロックされるので定期的にメンテしてないと一発でシステム全体のアップデートが困難になる。ということで、 emerge -uDNav @world が通るまでに丸一日かかってしまった。残り 227パッケージのアップデートをやってカーネルも再構築して、更についでに initram も busybox の init スクリプトもごにょごにょ弄る事にする。 ここから予定 これだけはやっておきたい initram の busybox で ctrl と caps lock の入れ替え。 1. まず、 LiveCD の /etc/conf.d/keymaps を編集する。extended_keymaps に ctrl を追加 ...

BusyBox HTTPD で Drupal 7.10 を使う

イメージ
昨日、BusyBox で Drupal6 の作動方法を紹介しましたが今日は Drupal7 についても少し触れます。尚、ソースを2箇所修正しますので 6.x がサポートされてる間はそちらを利用する事をお勧めします。 Drupal7はindex.phpを隠す処理が施されているため、そのままではBusyBoxではフォームの変数を渡せません。 またoverlayモジュールを切ろうにもsaveボタンを押した後にurlを書き換えられているため設定が反映されない不具合が生じます。そこでindex.phpを常にurlに含むよう "includes/common.inc" を書き換えます。 includes/common.inc 2181行目 --- includes/common.inc.orig 2012-01-25 22:06:54.000000000 +0900 +++ includes/common.inc 2012-01-25 13:54:15.000000000 +0900 @@ -2178,7 +2178,7 @@ } $query = $query ? ('?' . drupal_http_build_query($query)) : ''; $script = isset($options['script']) ? $options['script'] : ''; - return $base . $script . $query . $options['fragment']; + return $base . 'index.php' . $script . $query . $options['fragment']; } } これで index.php がurlに含まれるようになりました。しかしまだ各リンクのurlは "/?=" になったままです。 それを修正するため "modules/overlay/overlay-parent.js" を書き換えます。 modules/overlay/overlay-parent.js 831行目 --- modul...

BusyBox HTTPD で Drupal を動かそう

イメージ
公開しないサーバーでローカルでウェブアプリケーション等を利用したい場合、Apacheのように大規模なサーバーソフトは必要なく小規模な物が欲しい。 そこで小さいウェブサーバーとしてNginx,Lighttpd,Chrokeeが候補に上がりますがBusyBoxも利用価値は高いです。デスクトップ用のネットワークアドレスはDMZの外に置くなど外部から80ポートにアクセス出来ないよう工夫しておきましょう。 まずBusyBoxのhttpdアプレットを有効にしてビルドします。 PHPのCGIを有効にしてビルドします。 MySQL, PostgreSQL, SQLiteのいずれかのデータベースをインストールします php.iniを編集します。 cgi.force.redirect=0 cgi.redirect_status_env = "yes"; これでBusyBoxのHTTPDでPHPを動かす環境が出来上がりました。 busybox httpd -h /srv/www/htdocs とやればサーバーが起動します。デフォルトでは/etc/httpd.confを使います。もっと便利に、そしてシステムと分ける為シンボリックリンクを貼りブートスクリプトを書きます。 busyboxバイナリのインストール先: /bin/busybox httpd 関連の置き場所: /usr/local ドキュメントルート: /srv/www/htdocs # mkdir -p /usr/local/etc/init.d # ln -s ../usr/local/etc /etc/local # mkdir -p /usr/local/sbin # ln -s ../../../bin/busybox /usr/local/sbin/httpd これで下準備が整いました。次にブートスクリプトを書きます。書式はディストリによって違いますのでここではGentooで使用するopenrcのブートスクリプトを紹介します。 ※ Gentooではopenrcを利用しています。openrcをインストールしていないGentooシステムでも書式が違ってくると思います。 # cat > /etc/local/init.d/httpd <<...

Alpine LinuxのAPKBUILDに挑戦

BuildRootでBusyBox+uClibcのシステム構築にトライしていたところ、Alpine LinuxというBusyBoxとuClibcを利用したディストリビューションに出会った。これがなかなか面白い。パッケージ管理はapkというもので $ sudo apk add hogehoge という具合にpkg_addのような使い方をする。ところがパッケージの作成にはGentooのebuildをベースにしたようなabuildというのがあり、この組み合わせが非常に面白い。Gentooに慣れてるせいでdevelやdocなどと分割パッケージするのが億劫なのだがこの際頑張って日本語環境でも整えてやろうかと思った次第。基本的にebuildに似てるんだけどAlpineの標準シェルはbusybox ashなのでbash構文が使えない。abuildの関数も少なくコンソールで打つコマンドをベタ書きすればいいようで覚える事が少ないというデメリットなのかメリットなのか戸惑う状況でもある(笑) 何から手をつけていいのか解らないのでひとまずibus-mozcを入れてみようと思いibusから手をつけてみた。Gentooでいうhogehoge-0.0.1.ebuildにあたるファイルは全てAPKBUILDという同名ファイルに記述する。 http://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package チュートリアルを読みながら進めていくとカレントディレクトリに hogehoge-0.0.1-r0.apk hogehoge-dev-0.0.1-r0.apk hogehoge-doc-0.0.1-r0.apk という3つのファイルが出来ていた。さてどこまで出来る事やら。Alpine Linuxは凄くよく出来たディストリだけどやはりBuildRootでシステム全体を自分好みにビルドしたい。i686で最適化しaportsを持ってきてパッケージ管理が出来れば素晴らしい。と思ったけどRPMも捨てがたい。迷うなぁ。