Program LOG

勉強した内容をまとめ中。。。間違ってたら教えて。。。

Windowsでruby開発 - 開発環境構築編

先週、新しいプロジェクトが発足し、そのプロジェクトがruby on railsで開発する事が決定し、
僕自身がPHPエンジニアの為、rubyに関しては、全くのド素人の状態。。。
これはヤバイと、ちょっとずつ勉強を開始し始めました。
まずは、勉強する上で必要な開発環境の構築やIDE選定などを行い、Windowsでの開発環境を整えるべく調査を開始!
その内容を記事として残しておこうと思います。

仮想マシンRubyのインストール

今回はruby用に仮想マシンを構築しておき、その仮想マシンRubyをインストールしていきたいと思います。
Vagrantでは、デフォルト、rubyがインストールされていますが、バージョンが古いので、最新版を入れたいと思います。
ドットインストールで確認した際、rbenvってツールが便利らしいので、
勉強がてらインストールしていきたいと思います。

rbenvとは?

rubyのバージョンを管理し、そのバージョンを切り替えられるツールのようです。
早速入れていきたいと思います。
rbenvを入れるには、gitが必要ななので、gitからインストールします。

[vagrant@localhost /]$ sudo yum -y install git

次に、gitを使用して、rbenv をインストールをします。

[vagrant@localhost /]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Initialized empty Git repository in /home/vagrant/.rbenv/.git/
remote: Reusing existing pack: 1878, done.
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 1883 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1883/1883), 296.99 KiB | 119 KiB/s, done.
Resolving deltas: 100% (1175/1175), done.

次に環境設定です。

[vagrant@localhost /]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
[vagrant@localhost /]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
[vagrant@localhost /]$ exec $SHELL -l

次に、rubyをインストールするんですが、ruby-buildというツールが推奨されているのでインストールします。

[vagrant@localhost /]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

rybyの最新版を調べたいと思います。

[vagrant@localhost /]$ rbenv install --list
・・・中略
  2.0.0-p0
  2.0.0-p195
  2.0.0-p247
  2.0.0-p353
  2.0.0-p451
  2.0.0-preview1
  2.0.0-preview2
  2.0.0-rc1
  2.0.0-rc2

すごい量の一覧が出て来ました。。。。
中から、バージョンを取得して、最新バージョンのrubyをインストールします。

[vagrant@localhost /]$ rbenv install -v 2.0.0-p451

rbenvの設定を行いたいと思います。
まずは、rbenvの再読み込みを行います。

[vagrant@localhost /]$ rbenv rehash

インストールされている一覧を取得して、先ほどインストールした最新版を選択したいと思います。

[vagrant@localhost /]$ rbenv versions
system (set by /home/vagrant/.rbenv/version)
  2.0.0-p451
[vagrant@localhost /]$ rbenv global 2.0.0-p451
[vagrant@localhost /]$ rbenv versions
  system
2.0.0-p451 (set by /home/vagrant/.rbenv/version)
[vagrant@localhost /]$ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-linux]

アスタリスクが付いている方がデフォルトで使用されるバージョンになります。
取り合えず、rubyのインストールが完了しました。

Ruby on Railsのインストール

Rubyのインストールが完了しましたので、Railsのインストールを行います。
Railsに関しては、別途記事を作成していきますので、省略させていただきます。
Railsは「gem」ライブラリでインストールする事が出来ます。
RubyGemsRuby に特化したパッケージングシステムで、ライブラリの作成や公開、インストールを助けるシステムです。
まずは、gemを最新版にアップデートしておきます。

[vagrant@localhost /]$ gem update --system

次にRailsのインストールを行います。
今回は、Rails自体がかなり膨大な量のファイルが展開される為、
ドキュメントのインストールをスキップしてインストールを実行します。
また途中経過を知るために、「-V」オプションもつけてコマンドの実行をしたいと思います。

[vagrant@localhost /]$ gem install rails --no-ri --no-rdoc -V

そうしたら、次にRubyをインストールした際にも行ったrehashをします。

[vagrant@localhost /]$ rbenv rehash
[vagrant@localhost /]$ rails -v

バージョンが確認できたら、Railsのインストールは完了です。

Mysqlをインストールする

Rubyにはsqlliteがセットされているので、こちらを使うことも可能なのですが、
実際には、MySQLを使用する想定なので、MySQLをインストールしておきたいと思います。

[vagrant@localhost /]$ sudo yum install -y --enablerepo=remi mysql-server
[vagrant@localhost /]$ mysql_install_db

次に環境設定を行っておきます。
ここの設定は、ドットインストールにならっておきましょう。
追記で、以下のようにしました。

[vagrant@localhost /]$ sudo vi /etc/my.cnf
・・・以下を追記
character_set_server=utf8
default-storage-engine=InnoDB
innodb_file_per_table
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8

次に起動し、再起動時の起動も設定しておきます。

[vagrant@localhost /]$ sudo service mysqld start
Starting mysqld:                                           [  OK  ]
[vagrant@localhost /]$ sudo chkconfig mysqld on

起動が確認できたら、正常に動作しているかログインして確認すると共に、
Rails用のアカウントを3つ作成しておきたいと思います。

[vagrant@localhost /]$ mysql -u root -p
mysql> create user 'development'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> create user 'tester'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> create user 'production'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

以下のコマンドで作成したユーザーに権限を付与します。

mysql> grant all on *.* to 'development'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to 'tester'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to 'production'@'localhost';
Query OK, 0 rows affected (0.00 sec)

ここまで出来たら、パッケージ化しておこうかと思います。
長くなってしまったので、今回はこのへんで終わりにしたいと思います。
次回は、railsプロジェクトの作成と、apacheとの連携、mysqlの使用についてやっていきたいと思います。

使用環境