windowsXPで、VMware PlayerとCentos5.3を使って、Railsの開発環境を構築する

会社で構築する機会があったので、構築メモを残します。
(20110621 部分的に修正しました。)


使ったもの

ということで作業をしていきます。途中、再起動を行ないます。作業状態を保存する必要のある作業を止めてからorいつでも保存できる、という状態になってから行ってください。

vmwareのインストール

  • VMware-player-3.1.2-301548.exeをダブルクリックしてインストールします。
  • インストールウィザードにしたがって、進めていけば完了です。
  • 再起動を求められますので、再起動してください。

centosのインストールの前に

いくつか設定をホストOS側で行う必要があります。

CPUの省電力機能の無効化
  • コントロールパネルから、電源オプションを開きます。(クラシック表示だと見つけやすいです。)
  • 電源設定タブの電源設定を「常にオン」にしておきます。
時刻同期のための設定
  • コントロールパネルから、システムを開きます。
  • 詳細設定タブの「起動と回復」の「設定」ボタンをクリックします。
  • 起動のオプションを手動で編集するには、、、とあるところの「編集」ボタンをクリックします。(boot.iniの編集です。注意深く編集してください。)
  • [operating systems]の下に、/usepmtimerを追記します。(以下は、杉田の例)http://support.microsoft.com/kb/833721
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
vmplayerの設定

準備
エクスプローラのウィンドウ上部のメニューから、ツール > フォルダオプションを開きます。

    • 表示タブの詳細設定の中の「ファイルとフォルダの表示」で「すべてのファイルとフォルダを表示する」にチェックを入れます。
    • C:\Documents and Settings\All Users\Application Data\VMware\VMware Player フォルダを開きます。
  • config.iniを編集して、以下の内容を「追記」します。
host.noTSC="TRUE"
ptsc.noTSC="TRUE"
mks.noBeep="TRUE"
  • 追記したら、保存して閉じます。

windowsを再起動をします。

vmwareへのcentosのインストール

ディスクの用意
  • vmware playerを起動します。
  • 新規仮想マシンの作成をクリックします。
  • 後でOSをインストールを選択して、次へ
  • ゲストOSを「centos」、バージョンを「centos」(64bitでないもの)を選択して、次へ
  • 仮想マシン名を「centos5.3」と入力して、次へ
  • ディスク容量の指定は、変更しないで、次へ
  • 完了を押して、設定を完了します。
centosのイメージの読み込み
  • VMwarePlayerの中にcentos5.3というイメージが作成されています。これを選択して、「仮想マシンの再生」をクリックします。
  • cdがない、といわれるので、「ctrl+alt」キーを押して、vmwareからフォーカスを外し、isoイメージ(CentOS-5.3-i386-bin-DVD.iso)を選択し、再起動します。
  • 再起動し、boot: と表示されていたら「enterキー」を押します。
  • CDのテストは、skipします。
centosのインストール
  • nextをクリックして先へ進みます。
    • VMware Toolsがどうのこうのというようなメッセージが表示されますが、気にせず先へ進みます。(後でインストールします。)
  • 言語で「日本語」を選択します。
  • キーボードも「日本語」を選びます。
  • パーティションはデフォルトのままでOK
  • ネットワークもデフォルトのままでOK
  • 時刻は、「アジア/東京」。システムクロックでUTCを仕様のチェックは「外し」ます。
  • rootのパスワードはお好みのパスワードを。
  • ソフトウェアインストールはデフォルトのままでOK。
  • 「次へ」を押してインストールを進めます。
  • centosを再起動します。
centosの最初の設定(ようこそ)
  • ススムをクリックして先へ進みます。
  • ファイアウォールは以下の項目にチェックを入れて先へ進みます。警告が出ますが、OKです。
    • SSH
    • Samba
    • Secure WWW (HTTPS)
    • WWW (HTTP)
  • SELinuxの設定は「無効」にします。警告が出ますが、OKです。
  • 日付と時刻は無視して先へ進みます。 1. ユーザーは、「admin」を作成しておきます。
  • サウンドカードは無視して先に進みます。
  • 追加のCDは無視して終了をクリックします。
  • centosを再起動します。
centosの設定(VMware Toolsのインストール)
  • rootでログインします。
  • VMwareプレーヤーのウィンドウ上部のメニューから、仮想マシン > VMware Toolsのインストールをクリックします。
  • centosに戻ります。
  • centosのメニューから アプリケーション > アクセサリ > Gnome端末 を開きます。
  • 以下shell上で操作
mkdir ~/src
cd ~/src
cp /media/VMware\ Tools/VMwareTools-[その時のVMwareToolsのバージョン].tar.gz .
tar xzvf /VMwareTools-[その時のVMwareToolsのバージョン].tar.gz
cd vmware-tools-distrib
./vmware-install.pl
# 以下、ひたすらにエンターキー
# ディスプレイサイズの選択は、設定したいサイズを選択。(選択肢なくてもOK)
  • centosを再起動します。

centosの設定(基本設定)

ここから先の設定は、vmware内でも、sshクライアントを使用してもOKです。

時刻の設定
sed -i "s/server 0\.rhel\.pool\.ntp\.org/#server 0\.rhel\.pool\.ntp\.org/g" /etc/ntp.conf
sed -i "s/server 1\.rhel\.pool\.ntp\.org/#server 1\.rhel\.pool\.ntp\.org/g" /etc/ntp.conf
sed -i "s/server 2\.rhel\.pool\.ntp\.org/#server 2\.rhel\.pool\.ntp\.org/g" /etc/ntp.conf
echo "restrict 130.69.251.23" >> /etc/ntp.conf
echo "server 130.69.251.23    # ntp.nc.u-tokyo.ac.jp" >> /etc/ntp.conf
echo "server 133.31.180.6     # sutntp.sut.ac.jp / ntp.sut.ac.jp" >> /etc/ntp.conf
echo "server 130.34.11.117    # ntp1.tohoku.ac.jp" >> /etc/ntp.conf
echo "server 130.34.48.32     # ntp2.tohoku.ac.jp" >> /etc/ntp.conf
/etc/init.d/ntpd start
/sbin/chkconfig ntpd on
rootになれるユーザーの制限
echo "SU_WHEEL_ONLY        yes" >> /etc/login.defs
echo "auth       required     pam_wheel.so use_uid group=wheel" >> /etc/pam.d/su
adminをグループに所属させる
usermod -G wheel admin
sudo 設定
visudo

wheel ALL=(ALL) ALL
がコメントアウトされている行のコメントアウトを外す。

root パスワードの修正

rootでログインしているときに

passwd
rootアカウントでのリモートログイン(SSH)の不許可
sed -i "s/#PermitRootLogin yes/PermitRootLogin no/g" /etc/ssh/sshd_config
/etc/rc.d/init.d/sshd reload
.bashrc
su - admin
cd
cp ~/.bashrc ~/.bashrc.original
echo "alias rm='rm -i'" >> ~/.bashrc
source ~/.bashrc
PATH を通す
su - admin
sed -i "s/\$HOME\/bin/\$HOME\/bin:\/sbin:\/usr\/sbin/g" ~/.bash_profile
source ~/.bash_profile
"make install"したソフトウェアを管理できるツールPacoのインストール
su - admin
cd ~/src
wget http://downloads.sourceforge.net/paco/paco-2.0.6.tar.gz
tar zxvf paco-2.0.6.tar.gz
cd paco-2.0.6/
./configure --disable-gpaco
make
sudo make install
sudo make logme

使い方 => http://d.hatena.ne.jp/rx7/20081011/p2

不要なサービスを停止
/etc/init.d/apmd stop
sudo /etc/init.d/atd stop
sudo /etc/init.d/auditd stop
sudo /etc/init.d/autofs stop
sudo /etc/init.d/avahi-daemon stop
sudo /etc/init.d/bluetooth stop
sudo /etc/init.d/cups stop
sudo /etc/init.d/firstboot stop
sudo /etc/init.d/gpm stop
sudo /etc/init.d/hidd stop
sudo /etc/init.d/ip6tables stop
sudo /etc/init.d/kudzu stop
sudo /etc/init.d/mcstrans stop
sudo /etc/init.d/netfs stop
sudo /etc/init.d/nfslock stop
sudo /etc/init.d/pcscd stop
sudo /etc/init.d/portmap stop
sudo /etc/init.d/restorecond stop
sudo /etc/init.d/rpcgssd stop
sudo /etc/init.d/rpcidmapd stop
sudo /etc/init.d/xfs stop
sudo /etc/init.d/xinetd stop
sudo /etc/init.d/yum-updatesd stop

sudo chkconfig apmd off
sudo chkconfig atd off
sudo chkconfig auditd off
sudo chkconfig autofs off
sudo chkconfig avahi-daemon off
sudo chkconfig bluetooth off
sudo chkconfig cups off
sudo chkconfig firstboot off
sudo chkconfig gpm off
sudo chkconfig hidd off
sudo chkconfig ip6tables off
sudo chkconfig kudzu off
sudo chkconfig mcstrans off
sudo chkconfig netfs off
sudo chkconfig nfslock off
sudo chkconfig pcscd off
sudo chkconfig portmap off
sudo chkconfig restorecond off
sudo chkconfig rpcgssd off
sudo chkconfig rpcidmapd off
sudo chkconfig xfs off
sudo chkconfig xinetd off
sudo chkconfig yum-updatesd off
locate で検索できるように
updatedb
Sambaの設定

以下の例は 一般ユーザ(admin)のホームディレクトリ をWindowsと共有するようにする設定です。

yum install -y samba
/etc/init.d/smb start
cp /etc/samba/smb.conf /etc/samba/smb.conf.back
vi /etc/samba/smb.conf

smbpasswd -a admin # パスワードの設定

/etc/init.d/smb restart

chkconfig --add smb
/sbin/chkconfig smb on

/etc/samba/smb.conf

[global]
  charset = CP932
  unix charset = UTF-8
  display charset = UTF-8
  client code page = 932
  coding system = SJIS
  workgroup =Mshome
  dns proxy = no
  max log size = 1000
  syslog = 0
  security =user
  socket options = TCP_NODELAY
  encrypt passwords = yes
  passdb backend = tdbsam
  unix password sync = yes
  passwd program = /usr/bin/passwd %u
  passwd chat = *New*password* %n\n *Re*new*password* %n\n *success*
[homes]
   comment = Home Directories
   browseable = no
   writable = yes

Rails開発のための設定

ちょっとだけかいつまんで

yumをいくつかインストール

sudo yum -y install rdoc #(<=mysql(gem)インストール時に必要)
sudo yum install -y readline-devel #ruby script/console

rubyのインストール(例として、ruby-1.8.6-p383)
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p383.tar.gz
tar zxvf ruby-1.8.6-p383.tar.gz
cd ruby-1.8.6-p383
./configure --enable-shared --prefix=/usr --with-readline-dir=/usr/local
make
sudo paco -D make install
cd ../readline
ruby extconf.rb
make
sudo paco -D make install
rubygemsのインストール(例として、1.3.5)
cd ~/src
wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
tar zxvf rubygems-1.3.5.tgz
cd rubygems-1.3.5
sudo paco -D ruby setup.rb
gemのインストール
sudo gem install rails --version 1.2.3 --include-dependencies
sudo gem install mysql -- --with-mysql-lib=/usr/lib/mysql
mysqlの設定

/etc/my.cnfの設定

[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

my.cnfの再読込をすぐにしたい場合は、

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
アプリ用のDBを作る
mysql -u root -e "create database hogehoge;"