※2016年10月に別のブログに書いたものを移行した記事です
新人SEである私が考えたベスト・プラクティスを実践してみるのが、今回のテーマです。
環境構築編では、環境を整えるところまで行います。
仮想開発環境を整える
開発PCのOSはWindowsかMacで、サーバーのOSはLinuxというのはよくある話だと思います。そのまま開発を行うと、開発環境と本番環境が異なり、不具合が起きてしまいます。それを防ぐために、仮想開発環境を使います。
WindowsやMacのPC上に、VirtualBoxやVMWareなどの仮想マシンをいれ、その上にCentOSなどをインストールします。開発中のアプリケーションはCentOSで動かしつつ、WindowsやMacのエディタで開発を行う、ということが可能になります。
仮想環境の構築については、Vagrant + Virtualboxで仮想環境構築 | イチとゼロ - mokuoの技術ブログを御覧ください。
今回は、CentOS7を使いたいと思います。
yumアップデート
仮想OSにログインしたら、yumは最初にアップデートしておきましょう。
$ sudo yum -y update
$ sudo reboot
言語設定
現在の言語設定を確認
$ localectl status
System Locale: LANG=de_DE.UTF-8
VC Keymap: de
X11 Layout: de
設定できる言語を確認し、英語(UTF-8)に設定
$ localectl list-locales | grep en
$ sudo localectl set-locale LANG=en_US.utf8
英語になった。
$ localectl status
System Locale: LANG=en_US.utf8
VC Keymap: de
X11 Layout: de
反映するには、仮想マシンを再起動する必要がある。
Rubyのインストール
Rubyのパッケージマネージャーである、rbenvを使います。
rbenvを利用することで、Rubyのバージョンを簡単に切り替えることができます。
gitコマンドをインストール
まず、gitコマンドをインストールしておきます。
$ sudo yum -y install git
rbenvのインストール
rbenvのソースを、GitHubからチェックアウトする
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Cloning into '/home/vagrant/.rbenv'...
remote: Counting objects: 2542, done.
remote: Total 2542 (delta 0), reused 0 (delta 0), pack-reused 2542
Receiving objects: 100% (2542/2542), 461.53 KiB | 263.00 KiB/s, done.
Resolving deltas: 100% (1597/1597), done.
パスを通す
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
設定を反映
$ source ~/.bash_profile
rbenvが使える状態になっているか確認
$ rbenv --version
rbenv 1.0.0-33-gc7dcaf1
ruby-buildのインストール
rbenvでRubyをスムーズにインストールするために、ruby-buildをインストールする。
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/home/vagrant/.rbenv/plugins/ruby-build'...
remote: Counting objects: 6981, done.
remote: Total 6981 (delta 0), reused 0 (delta 0), pack-reused 6981
Receiving objects: 100% (6981/6981), 1.35 MiB | 322.00 KiB/s, done.
Resolving deltas: 100% (4151/4151), done.
rbenvでインストール可能なバージョンを確認する。
$ rbenv install -l
バージョンを指定してインストールする。今回は、2.3.0を指定。
$ rbenv install 2.3.0
Downloading ruby-2.3.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
Installing ruby-2.3.0...
Installed ruby-2.3.0 to /home/vagrant/.rbenv/versions/2.3.0
インストールされたか確認
$ rbenv versions
\* system (set by /home/vagrant/.rbenv/version)
2.3.0
インストールしたバージョンを使用するように切り替える
$ rbenv rehash
$ rbenv global 2.3.0
Rubyのバージョンが変わったか確認
ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
もしくは、
$ rbenv version
2.3.0 (set by /home/vagrant/.rbenv/version)
参考サイト・文献
- rbenv/rbenv: Groom your app’s Ruby environment
- Ruby を使うなら「rbenv」で複数バージョンを切り替えられるようにしておこう - HAM MEDIA MEMO
- たのしいRuby 第5版
- rbenv/ruby-build: Compile and install Ruby
Rubyの環境でBoxファイルを作成しておく
今後使用するかもしれないので、Rubyの環境までで、一旦Boxファイルを作成しておく。
$ vagrant status
Current machine states:
default poweroff (virtualbox)
The VM is powered off. To restart the VM, simply run `vagrant up`
$ vagrant package default --output centos72-ruby231.box
Railsのインストール
Rubyに特化したパッケージマネージャーである、RubyGemsを使って、Railsをインストールする
RubyGemsをアップデート
$ gem -v
2.5.1
$ gem update --system
$ gem -v
2.6.7
Railsをgemでインストール
$ gem install rails
$ rails -v
Rails 5.0.0.1
MariaDBのインストール
今回は、データベースにMariaDBを使用する。
yumレポジトリを追加する。
下記サイトから、OSなどを選択するだけで、repoファイルの中身を作成してくれる。
MariaDB - Setting up MariaDB Repositories - MariaDB
MariaDB.repoファイルを作り、中身を貼り付ける。
$ cd /etc/yum.repos.d/
$ sudo vim MariaDB.repo
yumでMariaDBをインストール
$ sudo yum -y install MariaDB-server MariaDB-client MariaDB-devel
MariaDBの自動起動を設定
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
$ systemctl list-unit-files | grep mariadb
mariadb.service enabled
参考サイト
- yum による MariaDB のインストール - MariaDB Knowledge Base
- How To Install MySQL / MariaDB on CentOS 7 | Liquid Web Knowledge Base
Railsの環境でBoxファイルを作成しておく
今後使用するかもしれないので、Railsの環境までで、一旦Boxファイルを作成しておく。
Vagrantfileがあるディレクトリで
$ vagrant package default --output centos72-rails5-mariadb.box
Railsアプリケーションの作成
ホストOSのテキストエディタで開発する場合は、共有フォルダの中につくる
今回は、テストフレームワークとしてRSpecを使うので、Test::Unitをスキップする。
また、DBにMySQLを指定。
$ cd data/
$ rails new gtd_console -d mysql -T
必要なGemパッケージをインストールする
作成したRailsアプリケーションの中に、Gemfileができている。
Gemfileの以下の箇所の、コメントアウトを外します。
\# gem 'therubyracer', platforms: :ruby
\# gem 'bcrypt', '~> 3.1.7'
必要なGemパッケージは、RubyGems.org | your community gem hostで検索することができる。
今回は、Gemfileに以下を追加。MariaDBを使うので、mysql2も記述する。
gem 'mysql2', '>= 0.3.18', '< 0.5'
gem 'i18n', '~> 0.7.0'
テスト用のGemパッケージ
Gemfileに書いたパッケージをインストール
$ bin/bundle install
ここまでで、環境が整いました。
開発編では、実際にRailsアプリケーションを作成し、開発を進めて行きたいと思います。