開発

Gehirn RS2「仮想root」について

2011年10月9日

※この記事は Gehirn RS2 β版時代のものです。

正式版の Gehirn RS2 では rs2 install fakeroot / rs2 use fakeroot という rs2コマンドで利用することができます。

仮想root

ユーザー権限の中でfakechroot,fakeroot,chroot,debootstrapを使ってユーザディレクトリ内に全く別な環境を構築、仮想的にrootとして動ける機能です。Gehirn RS2はあくまでレンタルサーバーですのでVPSのroot権限とは異なります。あくまで擬似的なものです。

この擬似rootでも、本来root権限のないレンタルサーバーでapt-get(aptitude) install で簡単に様々なライブラリやソフトウェアをインストールすることができます。

nginxなどもインストールできますし、mongodbや最新版のrubyやPythonを試したりできるような、レンタルサーバーとVPSの間とも言える機能を提供します。

なおこの機能が使えるのはPRODUCTION MODEL以降の s2, s3, s4サーバーとなっています。s1サーバーは TEST TYPEですのでお使いになれません。

ではその仮想root環境を構築していきましょう。

使い方

—Gehirn RS2 SSHログイン直後—

起動したソフトウェアやデーモンは、SSH接続を切ってしまうと終了してしまうので、screenを最初に起動することでSSH切断後もプロセスを維持することができます。

 $ screen
 $ cd ~/
 $ touch fakeroot.state
 $ PATH=/sbin:/usr/sbin:$PATH fakeroot -i $(pwd)/fakeroot.state -s $(pwd)/fakeroot.state
 $ mkdir root
 $ fakechroot
 $ fakeroot
 $ debootstrap --include=zsh --variant=fakechroot squeeze root http://ftp.jp.debian.org/debian/
 $ export HOME=/root
 $ chroot root/

上記で、ユーザー用のdebian squeeze環境が構築されます。

–ここからchroot環境–

(#) cd /root
(#) id
uid=0(root) gid=0(root) groups=0(root),5000

となっています。

〜この時点でディスク使用量は276MB〜

–nginxのインストール–

(#) apt-get install nginx
(#) vi /etc/nginx/sites-enabled/default

ポートを8083、rootを /home/[ユーザー名]/public_html←RS2実環境のパス

(#) /etc/init.d/nginx restart

上記で http://[ユーザー名].gehirn.co.uk:8083/ にアクセスすると、自分のnginx環境に接続されます。

–rubyのインストール–

(#) apt-get install ruby1.9

〜ruby入れるとディスク使用量約1.1GB〜

Control+A, Control+D でscreen環境を抜け出せます。
SSH切断後、再度ログインしたときは screen -x でchroot環境が戻ってきます。

exit exit exitで夢を抜けだしてしまったら

 $ cd ~/
 $ PATH=/sbin:/usr/sbin:$PATH fakeroot -i $(pwd)/fakeroot.state -s $(pwd)/fakeroot.state
 $ fakechroot
 $ fakeroot
 $ export HOME=/root
 $ chroot ~/root/

で夢に戻ってこれます。

—Python3.0ソースインストール—

(#) wget http://www.python.org/ftp/python/3.0/Python-3.0.tar.bz2
(#) tar jxvf Python-3.0.tar.bz2
(#) cd Python-3.0/
(#) ./configure
(#) make
(#) make install

gccmakeがなかったら apt-get install build-essentialすると入ります)

(#) python3.0 -V
(#) which python3.0
(#) /usr/local/bin/python3.0

上記にインストールしたものはchroot環境では /usr/local/bin/python3.0にありますが、RS2の実環境から見ると /home/ユーザー名/root/usr/local/bin/python3.0にインストールされています。

いろいろ遊べると思いますので試してみてください。

ちょっと工夫は必要だけど apache2+passengerとかも入りましたよ^^

Pocket

You Might Also Like