VM用にKernelの再構築を行う

カーネルソースを取得

と、その前に必要なモジュールをインストールしておく

# yum install gcc rpm-build redhat-rpm-config ncurses-devel

どうせなら最新ソースを確認して取得

# cd
# wget http://mirrors.kernel.org/centos/4.5/updates/SRPMS/kernel-2.6.9-55.0.2.EL.src.rpm
# mkdir -p /usr/src/redhat/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
# rpm -i kernel-2.6.9-55.0.2.EL.src.rpm
# cd /usr/src/redhat/SPECS/
# rpmbuild -bp --target=i686 kernel-2.6.spec

カーネルソースを変更

カーネルソースの以下の部分を変更します

# cd ../BUILD/kernel-2.6.9/linux-2.6.9/
# vi include/asm-i386/param.h
**
-#define HZ            1000            /* Internal kernel timer frequency */
+#define HZ            100             /* Internal kernel timer frequency */

vi include/asm-x86_64/param.h
**
-#define HZ            1000            /* Internal kernel timer frequency */
+#define HZ            100            /* Internal kernel timer frequency */

ソースを見るに単純に

#define HZ            1000            /* Internal kernel timer frequency */

を消すだけでもよさそう、後ろに定義が無かったら定義するコードがあるからね

Makefileを変更

カーネルを自分がコンパイルしたものと分かる名前にします。

# vi Makefile
**
-EXTRAVERSION = -prep
+EXTRAVERSION = -55.0.2.EL.vm

-#export        INSTALL_PATH=/boot
+export INSTALL_PATH=/boot

カーネルコンパイル

これはさすがに時間かかるよ
前のconfigから今回のconfigを作ってコンパイルってのりです

# make mrproper
# cp configs/kernel-2.6.9-i686.config .config
# make oldconfig
.....
# make
.....
# make modules_install
.....
# installkernel 2.6.9-55.0.2.EL.vm arch/i386/boot/bzImage System.map

Grubの設定を確認

# vi /etc/grub.conf
default=0     <=新しく追加されているカーネルに設定

...

title CentOS (2.6.9-55.0.2.EL.vm)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.9-55.0.2.EL.vm ro root=/dev/VolGroup00/LogVol00 clock=pit
        initrd /boot/initrd-2.6.9-55.0.2.EL.vm.img

最後に再起動して

# uname -r
2.6.9-55.0.2.EL.vm

OK

カーネルの更新を停止

yum.confの最終行にexclude=kernel*を追加する

# vi /etc/yum.conf
 [main]
+exclude=kernel*

さあて、ようやくRubyを入れますか・・・

玄箱にRuby On Rails

この前、Centインストールしてたのに何で?
って思うかもしれないけど、人生こんなもんです^^;

そういえば、Dibian化した玄箱があったなと、取り出してRailsを動かしてみようとお試しです。

checkinstallをインストール

お手軽にdpkgで管理できるらしいので使ってみようと思う

でインストール

 # aptitude -y install checkinstall 
 ...
 # checkinstall -v

 checkinstall 1.5.3, Copyright 2001 Felipe Eduardo Sanchez Diaz Duran
            This software is released under the GNU GPL.

Rubyをインストール

最新バージョンのRubyここここからダウンロード

 # wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p36.tar.gz
 # tar zxvf ruby-1.8.6-p36.tar.gz
 # cd ruby-1.8.6-p36
 # ./configure --prefix=/usr
 # make
 # checkinstall
 # ruby -v

Gemのインストール

最新バージョンをここからダウンロード

 # wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz
 # tar zxvf rubygems-0.9.4.tgz
 # cd rubygems-0.9.4
 # checkinstall -D "ruby setup.rb"
 # gem environment
RubyGems Environment:
  - VERSION: 0.9.4 (0.9.4)
  - INSTALLATION DIRECTORY: /usr/local/rubygems/
  - GEM PATH:
     - /usr/local/rubygems/
  - REMOTE SOURCES:
     - http://gems.rubyforge.org

あとは、本命のRailsいってみよう!!

Railsのインストール

Gemがあれば簡単簡単って事で、

 # gem install rails --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
ERROR:  While executing gem ... (Gem::GemNotFoundException)
    Could not find rails (> 0) in any repository

むむ!!インストールができない!!
散々待たされた上エラーで終了、チーンですorz
ぐぐってると、どうやら--remoteオプションがいるみたい

Railsのインストール再び

# gem install --remote rails --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-1.2.3
Successfully installed rake-0.7.3
Successfully installed activesupport-1.4.2
Successfully installed activerecord-1.15.3
・・・

おお、今度はいけるかも...
とりあえず、ただいまインストール中...

って、まだまだインストール中...
2日たっても終わってません orz

追伸:
インストールを開始したのは、淀川の花火大会が始まる前、でもまあ動いているみたいなので、しばらく黙ってみて見ることにします
3日目でなお終了してませんorz

5日目でやっと終了した。

# rails
-bash: rails: command not found

何じゃそりゃ!!

ちゃんちゃん。。。

今度リベンジします。orz

VM Player環境にCentOSをインストール

サーバを用意といっても、ほいほいとパソコンを用意するわけにもいかないもんで、VMWare Playerを使います。

VM PLayerをインストール

ここから最新のVM Playerを取得
やるこた一つ、セットアップ動かすだけ

VMX Builderをインストール

ここから取得
VBで書かれているようなので、ランタイムが入っていない環境ならば、ランタイムもセットアップします

このツールは、超お手軽!!
今まで手で書いていたVMXファイルを自動生成してくれるは、qemu-img.exeでディスクイメージの作成もしてくれる

まあ、それだけだけど

VMの起動イメージを作成

VMX Builderを起動して「Create New Virtual Machine」を選択
作成先とマシンの名前を入れる

最低限の必要な設定をする
必要無い気がするけど、

Option
  Host Product    : Player
  Target Platform : 2.x
  
Guest OS
  Guest O/S Family: Linux
  Version         : RedHat Enterprise Linux 4

とかにしておく、
さらに(こっちが大切)
HardwareタブでAddボタンHardDiskを追加

Create New
  Disk Size : 8Gb
  Qemu-img add/or....を選択

でレポートが表示されて仮想ディスクが出来上がる
さらにDVD/CD-Rom DriveとNetwork Adapterも追加しておく

あとは、適当に設定する

Hardware
  Memory    : 256MB
  Floppy    : Connected at Bootをオフ

ここまでで、インストールする仮想PCは完成
ではOSのインストールとまいりましょう

CentOS4.4をインストール

ここでServerCDをダウンロード
(どうせ後から4.5になるけど、4.5はServer CDが無いのでね)
CentOS-4.4.ServerCD-i386.iso

VMX BuilderでCD-ROMをUseISO Image:選択して今さっき落としたisoイメージを設定します
おっと、言い忘れてたけど変更したらセーブしないと反映されません

で、そのままVMX Builderの実行ボタンで仮想PCを起動します(VM Playerから起動しても同じです)

CentOSインストーラーが起動するので、ENTERでインストール開始です
基本はすべてディフォルト、変更したところだけ書いておく

  • 言語の選択を日本語に変更
  • ファイヤーウォールなし、SELinuxを無効に設定
  • インストールするソフトウェアパッケージをカスタマイズで、その他->最小を選択

あとは、待つだけ
インストーラーが終了後再起動を促されるので再起動を行う

不要なサービスを停止

最小だっていってても、不要なサービスが立ち上がります
インストールが終了して起動してきたら、不要なサービスをとめます
※本当に不要かどうかは、各自で判断してください

# chkconfig --list | grep :on

とかしたら、自動起動されるサービスが分かります
起動している中から不要なのを選んで停止

# for name in cups isdn kudzu gpm smartd pcmcia; do \
chkconfig ${name} off
service ${name} stop
done;

fastestmirrorをインストール

yumが、早いミラーを選んでもらうプラグインをインストールしておく

# yum install yum-plugin-fastestmirror

yum.confに「plugins=1」を一行追加

# vi /etc/yum.conf
+plugins=1

パッケージを最新にする

#yum -y update

カーネルもアップデートされるので、再起動する

時間が狂わないようにntpを設定

# yum install ntp

インストールしたらNTPをスタート、あまり大きく時間ずれるとあわせてくれないので、ntpdateで時刻を合わせる

# service ntpd start
# ntpdate ntpサーバー※

ntpサーバー : 近くのNTPサーバーを設定する、プロバイダが提供しているんだったらそこのNTPサーバーが良いかな?

NTPサーバーを追加

# vi /etc/ntp.conf
+server ntpサーバー※
 server 0.pool.ntp.org
 server 1.pool.ntp.org
 server 2.pool.ntp.org


次回から自動起動にしておく

# chkconfig ntpd on
# chkconfig --list ntpd
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

こんなもんかな

ちなみにNTPがちゃんと動いてるかは、ntpq実行して*マークが付いていれば時刻は修正されています。

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 chronos.duth.gr 194.30.249.20    2 u   28   64    3  235.086  58020.8 38492.0
 rs11.lvs.iif.hu 195.111.99.186   2 u   24   64    3  177.979  20139.6 38300.8
 time1.stupi.se  .PPS.            1 u   26   64    3  149.562  20975.5 37237.7
*LOCAL(0)        LOCAL(0)        10 l   25   64    3    0.000    0.000   0.008


で、時刻もOKかと思いきやすごい勢いで狂います。。。
kernel 2.6系だとVMで動かしていると時計が狂うそうです
めんどくさいけど、Kernel再構築の必要があります

そうそう、yumに-yつけないのは、個人的に慣れてしまって間違って実行することがあるのが嫌なので常に自分で確認後y押してます。単なる趣味みたいなもんですが・・・

疲れたので、また今度
なんじゃそりゃ orz