はじめに
Windows上にrbenvでバージョン切り替え可能なruby開発環境を構築する手順をまとめました。
以下は実施した際の前提条件になります。
- Windows10 Pro
- 64bit
- メモリ8G
- Docker for Windows
- CentOS 7.4
Docker for Windowsの導入
rbenvはWindowsでは利用できなさそうなので、Windows上にDockerでLinux環境を構築して、その中でrbenvを使って開発環境を構築します。
インストーラの入手
- 以下からDLできる
-
https://docs.docker.com/docker-for-windows/install/
安定版(Stable)実験版(Edge)がある、ここでは安定版を選択する
-
https://docs.docker.com/docker-for-windows/install/
インストール
- インストーラを起動してウィザード通り進める
-
Hypver-Vが有効になっていないと、有効にして再起動するか聞いてくるのでOKする
-
”Hardware assisted virtualization and data execution protection must be enabled in the BIOS" というエラーが出た場合、BIOSで当該項目を有効化する
※機種依存なのであれこれ探す必要あり -
再起動後、サービスをスタートするか聞いてくるので、開始させる
-
タスクトレイのクジラのアイコン上で「Docker is running」と表示されていれば起動完了
-
コマンドプロンプトにて docker version をたたいて動作確認
-
Dockerの基本操作
- 以下に良くまとまっているので、実際に試して感覚を掴む
https://www.ogis-ri.co.jp/otc/hiroba/technical/docker/part1.html
あれやりたいときはどうするんだコマンド
- コンテナを終了せずに抜ける
- Ctrl + p Ctrl + q
- 現在の変更内容をイメージとしてリポジトリに保存
- docker commit コンテナID リポジトリ名
- イメージをDocker Hubに保存
- docker push リポジトリ名
※Docker Hubに予めアカウントとリポジトリを作っておく
- docker push リポジトリ名
CentOSのイメージ導入
イメージはいろいろある、ひとまずDocker社公式のリポジトリから取得する
-
以下コマンドでcイメージ取得
- docker pull centos
-
コンテナを開始
- docker run -it centos
-
バージョンを確認してみる
- cat /etc/redhat-release
※この時(11/30)は「CentOS Linux release 7.4.1708 (Core)」でした
- cat /etc/redhat-release
使いやすい設定にする
- ターミナルのサイズなどを調整
- ターミナル上のフォルダ表示色を変える
デフォルトではlsのフォルダ表示色が黒地に青なので耐えがたい視認性。以下の設定を追加し青地に白へ変更。- ファイル
~/.bashrc - 追加設定
export LS_COLORS="di=01;44" - 以下に詳しい https://cheaparchitec.wordpress.com/2016/04/11/dockerquickstartterminal%E3%81%AE%E8%A6%8B%E6%A0%84%E3%81%88%E3%82%92%E6%95%B4%E3%81%88%E3%82%8Bwindows/
http://spiral.world.coocan.jp/tips/computer/lscolor.html
- ファイル
- viをvimに変える
- ファイル
~/.bashrc - 追加設定
alias vi='vim'
- ファイル
- タイムゾーンを日本にする
- ファイル
~/.bashrc - 追加設定
export TZ="Asia/Tokyo"
- ファイル
- 日本語を表示できるようにする
- 前準備
yum -y reinstall glibc-common
localedef -v -c -i ja_JP -f UTF-8 ja_JP.UTF-8; echo ""; - ファイル
~/.bashrc - 追加設定
export LANG="ja_JP.UTF-8"
- 前準備
rbenvのインストール
以下が参考になりました。ありがたや。
CentOSにrbenvをインストール
gccのインストール
- yum install gcc -y
makeのインストール
- yum install make -y
bzip2のインストール
- yum install bzip2 -y
gitのインストール
- yum install git -y
rbenvをgitからcloneする
- git clone https://github.com/rbenv/rbenv ~/.rbenv
rbenvのコンパイル
- cd ~/.rbenv && src/configure && make -C src
パスを通す
echo 'PATH=$HOME/.rbenv/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
ruby-build(rbenvのプラグイン)をclone
- git clone https://github.com/rbenv/ruby-build ~/.rbenv/plugins/ruby-build
※rbenv installコマンドを利用するために必須
動作確認
- rbenv -v
- rbenv install -l
rubyのインストール
ビルドに必要なパッケージのインストール
- yum install -y openssl-devel readline-devel zlib-devel
rbenvでrubyのインストール
- rbenv install 2.4.2
切り替え
- rbenv global 2.4.2
パスを通す
echo 'PATH=$HOME/.rbenv/shims:$PATH' >> ~/.bashrc
source ~/.bashrc
動作確認
- ruby -v
別のバージョンも入れてみる
- rbenv install 2.3.3
切り替えと確認
- rbenv global 2.3.3
- ruby -v
所感
4年落ちのデスクトップPCでも、特にストレスなく使えました。
きちんとdocker imageにタグをつけて管理していけば、切り戻しも簡単に行えるので、実用性は高いと思います。
無料でこんなにいろいろできるなんて、すごい時代だなぁ。
以下は細かい点。
-
dockerの操作感はgitに似ている気がします。なれると使いやすい。
-
rbenvは言うまでもなく便利。あとrehashは不要になっている様です。
18/02/06追記
3ヶ月ほど、簡単なスクリプト開発などで使用してみた感想は以下です。
- vimが使いこなせない身としては、開発環境というより実行/検証環境になりがち。
- VSCodeでコードを書いて、Power Shellでファイルを送り込むというスタイルに落ち着いた。
- Docker for Windowsのアップデートは、安易にやらないほうが良いかもしれない。
※私の環境では 17.12.0-ce-win47 辺りにアップデートした後、PCがクラッシュしてDockerの再インストールを余儀なくされました。
今は 17.09.1-ce-win42 で問題なく利用できています。