※当サイトの記事には、広告・プロモーションが含まれます。

Windows 10 HomeのKUSANAGI Runs on DockerでWordmoveしてみるためにRuby2.4系を導入からのRuby on Rails5系の構築への脱線

いよいよWordmoveをしていきたいと思いますが、前回、構築できたローカル環境のKUSANAGIでWordmoveしていきたいと思いましたが、タイトルの通りWordmoveまで行きついてません...。

Wordmoveをインストールするために

まずは、仮想マシン側にWordmoveコマンドが使えるようにWordmoveをインストールしていく必要があります。

まずは、Rubyをインストール、rubygemsをインストール、でWordmoveがインストールできる、の流れです。

⇩  下記サイトによるとRubyをインストールするのはローカルマシンで良いらしい

wordmoveを使ってWordPressサーバのデータを開発機に再現 - Qiita

⇩  下記サイトによるとDockerのコンテナ内にインストールしてるようです 

Docker for Macで始めるお手軽WordPress環境の様々なカスタマイズ – OTTAN.XYZ

で、毎回、分からなくなるわけです、結局、インストール場所はどこ?ということになるわけで。

OSは何ですか

一番のネックはここですかね、 KUSANAGI Runs on Docker で作成した仮想マシンに直にdockerコンテナが格納されたので、OS(CentOSUbuntu)が入っているのかどうかも分からない。

いや、仮想マシン自体にはCoreOSでわけの分からないBoot2Docker 17.05.0-ce (TCL 7.2)ってのが搭載されているらしい。前まで、boot2dockerコマンドだったのが非推奨になり、docker-machineコマンドになったらしいけど、内部はBoot2Dockerなんかい!紛らわしいわい!

 

ホストOSとDockerコンテナの同期

できるらしい。 ホストとコンテナのファイルシステムを相互同期できるらしい。

  • docker-sync
  • unison

の2種類のやり方があるようです。

docker-syncを使わないホスト・コンテナ間での爆速ファイル同期 - Qiita

docker-syncでホスト-コンテナ間を爆速で同期する - Qiita

ですが、WordmoveはWordPressがインストールされている場所でwordmove initコマンドを実行する(Movefileを作成する)必要があるんでした。はたして、ホストOSにインストールしたRubyのコマンドが、dockerコンテナで使えるのか試したいと思います。

結論:まだ、Wordmoveまでたどり着いてないので保留ということで。

RubyWindowsにインストールするには

Rubyをインストールした場合は、管理ツールでバージョン管理するのが良いようです。

Windowsの場合は選択肢はなく、uru(Unleash Ruby) 一択のようです。

※ uru は、Chocolateyでパッケージ化されていないため、直接ダウンロードする。

⇩  下記サイトが詳しいので参考にさせていただいてます。

初心者必見!Ruby開発環境構築おすすめの方法【Mac/Windows別】 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト

uru - Windows用のRuby環境セレクター

 

uruをインストール

jonforums / uru / wiki / Downloads — Bitbucket にアクセスします。Windowsのものを選択します。(curlコマンドからのダウンロードは不具合が出たので普通にリンクをクリックしてダウンロードをオススメします。)

f:id:ts0818:20170529103241j:plain

今回は練習のために、コマンドでインストールするため右クリックで『リンクのアドレスをコピー(E)』してます。面倒な場合は直接ダウンロードしましょう。

f:id:ts0818:20170529103556j:plain

保存したい場所にフォルダを作っておきます。自分はCドライブの容量が心もとないので、E:¥toolsというフォルダを作成してます。

ConEmuを起動しgit bashcurlコマンドが使えるので)を開きます。コマンドを入力します。

気をつけたいのはcurlコマンドで指定するurlの末尾に『/』がついてるとエラーになります。

macはwgetがないので、curlを使う。 - Shinichi Nishikawa's

cd /E/tools
curl -O https://bitbucket.org/jonforums/uru/downloads/uru-0.8.3-windows-x86.7z

f:id:ts0818:20170529104315j:plain

フォルダにダウンロードされました。 7zに圧縮されているので展開(解凍)する必要があります。

f:id:ts0818:20170529104132j:plain

⇩  下記サイトを参考に7-zipをインストール

7-ZipをWindows10にインストールする方法 | パソコン@エンジニアの休日

ダウンロード | 7-Zip でダウンロードできます。

コマンドラインバージョンは7zで圧縮されているので、必然的にexeタイプもインストールする必要があります。 

f:id:ts0818:20170529112028j:plain

『ダウンロード』 をクリックしてファイルがダウンロードされたら、E:¥toolsに配置します。(curlコマンドでダウンロードすると展開ができなかったです)

f:id:ts0818:20170529114053j:plain

コマンドで7-zipを使うために、まずは、exeを実行してインストールします。

7-Zip File Manager』を起動します。

f:id:ts0818:20170529124008j:plain

『7z1700-extra.7z』を選択し、『展開』をクリックし、『OK』。

f:id:ts0818:20170529123817j:plain

展開されます。

f:id:ts0818:20170529124009j:plain

名前が長いので、『7za』にリネームしましょう。(フォルダ名は何でも好きに決めて大丈夫そうです。)

f:id:ts0818:20170529130906j:plain

 

『E:¥tools¥7za』 を環境変数に追加する必要があります。

 前に知らずに使って痛い目を見たsetxコマンドでリベンジ。

setx PATH "%PATH%;E:\tools\7za"

SETX コマンドで環境変数を永続的に設定する - Qiita

今回も失敗!Docker Toolboxのパスが消えてる!

%PATH%ってところがユーザー環境変数ではなく、システム環境変数と判定されちゃうみたいですね、駄目だコリャ。

変更前

f:id:ts0818:20170529132346j:plain

変更後

f:id:ts0818:20170529132347j:plain

setxは使わないほうが良いのかしら。

ConEmuを新しく起動してgit bashで『7za』と入力して、7-zipの譲歩が表示されればOKです。

f:id:ts0818:20170529132348j:plain

curlコマンドでおかしくなってた

uru の圧縮ファイルも展開(解凍)しようとしたらエラーになってしまう。 

jonforums / uru / wiki / Downloads — Bitbucket のファイルをコマンドを使わずダウンロードして上書きしたところ、展開(解凍)できました。

cd /E/tools
7za x -y uru-0.8.3-windows-x86.7z

f:id:ts0818:20170529132349j:plain

『uru_rt.exe』ファイルが展開されました。 

f:id:ts0818:20170529132350j:plain

『uru』フォルダを作って、そこに『uru_rt.exe』を配置しました。(場所はどこでも大丈夫そうです)

f:id:ts0818:20170529132351j:plain

環境変数を設定します。こりずに、コマンドから実行しました。 

 setx PATH "%PATH%;C:\Program Files\Docker Toolbox;E:\tools\7za;E:\tools\uru"   

f:id:ts0818:20170529132352j:plain

そしたら、ConEmuを新しく起動し、git bashを開きます。

cd /E/tools/uru
uru_rt admin install

f:id:ts0818:20170529132353j:plain

上手くいってるのか分からんですが、uru_rtコマンドが使えてるようです。

f:id:ts0818:20170529132354j:plain

uruは、Rubyの管理などをしてくれるらしいですが、Rubyのインストールはしてくれないようなので、Rubyを自分でインストールする必要があります。

RubyInstallerとRubyInstaller2

なんでも、RubyInstallerはメンテナンスしていた人が忙しすぎて更新が止まったそうで、Ruby2.4以降はRubyInstaller2 を使うようです。

RubyInstaller2でWindows環境にRuby 2.4 + Rails 5.0.2をインストールする - Qiita

 

Git for WindowsとMsys2は共存できないので

Ruby on Rails5系で必要なライブラリ(Nokogiriやsqlite3のように、Cのライブラリを利用するgemをインストールする場合)で、Msys2が必要なようです。共存できないようなので致し方ないということで、Git for Windowsをアンインストール。

git bashはすべて閉じておきます。

f:id:ts0818:20170529132355j:plain

が、しかし、『現在のプログラムのアンインストールまたは変更が完了するまでお待ちください』 が3時間以上進展なし、流石におかしい...。

f:id:ts0818:20170529184152j:plain

shin'nosukeさんのアレグロモデラート:現在のプログラムのアンインストールまたは変更が完了するまで、待てない

⇧  下記サイトによると、『Process Explorer』というツールでプロセスの親子関係が分析できるようです。なんでも、Windowsの場合コマンドだと、Linuxのpsのようなものを再現するのが難しいようです。

Process Explorer でダウンロードします。『Download Process Explorer』をクリックします。

f:id:ts0818:20170529185646j:plain

ダウンロードしたものを適当な場所に展開します。(怒られたので)

f:id:ts0818:20170529190018p:plain

 

f:id:ts0818:20170529194802j:plain

『procexp64.exe』をダブルクリックすると初回のみ、同意を求められるので『agree』。

f:id:ts0818:20170529195127j:plain

起動しました。 『UninstallMoniter.exe』『Uninst.exe』を右クリックして『Kill Process』したところ、アンインストールできるようになりました。

f:id:ts0818:20170529195126j:plain

Windowsの高機能タスクマネージャ「Process Explorer」: 小粋空間

 

Msys2のインストール

git bashが亡くなったいま、使えるのはコマンドプロンプト(もしくはPowerShell)ということで、ここからはコマンドプロンプトを使う感じです。

MSYS2 installation · msys2/msys2 Wiki · GitHub にアクセスして、『Downloading』の『64-bit』をクリックします。

f:id:ts0818:20170529195128j:plain

『msys2-base-x86_64-20161025.tar.xz』をクリックしてダウンロードします。

f:id:ts0818:20170529195129j:plain

ダウンロードした圧縮ファイルをE:¥toolsに移動しておきます。

f:id:ts0818:20170529195130j:plain

コマンドプロンプトで、圧縮ファイルの場所まで移動したら、7-zipで展開(解凍)していきます。

CD (or CHDIR)/カレントディレクトリ/ドライブの変更

cd /d E:\tools

f:id:ts0818:20170529195131j:plain

そしたら、展開。

7za x -y msys2-base-x86_64-20161025.tar.xz

f:id:ts0818:20170529204029j:plain

『msys2-base-x86_64-20161025.tar』ができるので、また展開。(一気に展開する方法が分かりません。 )

f:id:ts0818:20170529204030j:plain

 

7za x -y msys2-base-x86_64-20161025.tar

f:id:ts0818:20170529205256j:plain

 『msys64』フォルダの中に「msys2_shell.cmd」があるはずなのでダブルクリックでshellを起動させます。

f:id:ts0818:20170529205435j:plain

Msys2の更新を行います。

pacmanのバージョンによって変わってくるみたいです。

MSYS2における正しいパッケージの更新方法 - Qiita

f:id:ts0818:20170529211400j:plain

pacman -Syuu

途中で、下記のような警告が表示された場合、Alt-F4 あるいはクローズボタンでMSYS2 (mintty)のウィンドウを一旦閉じてから、再度立ち上げて、同じコマンドを再度実行する必要があるようです。

警告: terminate MSYS2 without returning to shell and check for updates again
警告: for example close your terminal window instead of calling exit

f:id:ts0818:20170529205437j:plain

『msys2.exe』を実行しました。

f:id:ts0818:20170529205436j:plain

pacman -Syuu

f:id:ts0818:20170529211350j:plain

もう一回、やってみたら更新するものないって言われたのでOKかな?

f:id:ts0818:20170529211359j:plain

 

 

RubyInstaller2を使ってRuby 2.4をインストール

https://github.com/larskanis/rubyinstaller2/releases にアクセスします。

f:id:ts0818:20170529211351j:plain

下の方にスクロールします。『rubyinstaller-2.4.1-1-x64.exe』をダウンロードしました。

f:id:ts0818:20170529211352j:plain

『I accept the License』にチェックを入れて、『Next >』をクリックします。

f:id:ts0818:20170529211353j:plain

インストール場所を決めて『Install』。

f:id:ts0818:20170529211354j:plain

インストールが始まります。

f:id:ts0818:20170529211355j:plain

『Finish』をクリック。

f:id:ts0818:20170529211356j:plain

MSYS2のインストール(選択肢1)と、MSYS2のアップデート(選択肢2)は完了しているので、ここでは3を選択して実行すれば良いようです。

f:id:ts0818:20170529211357j:plain

で、エラー。1、2、3どれ選んでも、Msys2のインストーラーが起動する。いままでMsys2をインストール、アップデートしてきたのに、msys2無いって言われる、何でや!もしや、E:¥tools¥msys64を環境変数に追加する感じか?

f:id:ts0818:20170529211358j:plain

パス追加したけど、変化なし...。

ダメ元で『msys2_shell.cmd』開いて更新できるものが残ってるかチェックするも何もない状態。 

f:id:ts0818:20170529211401j:plain

 

原因判明

Cドライブに配置しないといけなかったみたいです。

MSYS2は公式サイトからインストーラーを取ってきます。作業環境が64bit windowsなので64bit版を選びました。推奨どおり C:\msys64 にインストールしました。

ffmpegをwindows向けにビルドした方法 - Qiita

f:id:ts0818:20170529222603j:plain

rubyinstaller(rubyinstaller-2.4.1-1-x64.exe)を再度実行し、3を選択します。 

f:id:ts0818:20170529222604j:plain

 なんか、もう一回聞かれるけど、終了してるっぽいんで、普通に閉じていいと思います。(終了したら自動で閉じるか、終わったよって言ってくれればいいのに。)

f:id:ts0818:20170529223213j:plain

ConEmuを起動して、コマンドプロンプトRubyのバージョン確認。(インストールされたみたいです。) 

f:id:ts0818:20170529223214j:plain

 

Railsのインストール

インストール場所が分からないけど、とりあえず、Cドライブ直下に移動しインストールすることにしました。そして、nokogiriエラー。

f:id:ts0818:20170529224359j:plain

 ⇩  下記サイトを参考にsqlite3とnokogiriのgemをインストール

RubyInstaller2でRuby2.4 with Rails5の環境を作る~Nokogiriでエラー~ - Qiita

 

sqlite3 

ridk exec pacman -S mingw-w64-x86_64-sqlite3    

f:id:ts0818:20170529224402j:plain 

gem install sqlite3 --platform ruby

f:id:ts0818:20170529224403j:plain

nokogiri 

ridk exec pacman -S mingw-w64-x86_64-libxslt

f:id:ts0818:20170529224400j:plain

 

gem install nokogiri --platform ruby -- --use-system-libraries --with-xml2-include=c:/msys64/mingw64/include/libxml2 --with-xslt-dir=c:/msys64/mingw64

f:id:ts0818:20170529224401j:plain

再度、gem install rails コマンドを実行します。

gem install rails

バージョンの確認をしてみましょう。

f:id:ts0818:20170529231619j:plain

Ruby on Rails 5.1.1 インストール完了! 

 

Railsでサンプルアプリ

アプリを作って確認。

rails new rails-sandbox
cd rails-sandbox
rails s

f:id:ts0818:20170529231620j:plain

上手くいくかと思いきや、rails s でエラー。(rails s はサーバーの起動みたいです)

f:id:ts0818:20170529231621j:plain

RubyInstaller2でWindows環境にRuby 2.4 + Rails 5.0.2をインストールする - Qiita

⇧  上記サイトを参考にさせていただきエラー修正にトライ。

C:¥Ruby24-x64¥lib¥ruby¥gems¥2.4.0¥gems¥nokogiri-1.6.6.4-x64-mingw32¥lib¥nokogiri というフォルダまで移動します。

f:id:ts0818:20170529231622j:plain

C:¥Ruby24-x64¥lib¥ruby¥gems¥2.4.0¥gems¥nokogiri-1.6.6.4-x64-mingw32¥lib¥nokogiri というフォルダの下に 2.4 というフォルダを作成します。

f:id:ts0818:20170529231623j:plain

C:¥Ruby24-x64¥lib¥ruby¥gems¥2.4.0¥gems¥nokogiri-1.7.2¥lib¥nokogiriフォルダのnokogiri.soというファイルをコピーします。(nokogiri-1.7.2のバージョンは人によって違うかもしれません。)

f:id:ts0818:20170529231624j:plain

C:¥Ruby24-x64¥lib¥ruby¥gems¥2.4.0¥gems¥nokogiri-1.6.6.4-x64-mingw32¥lib¥nokogiri¥2.4にペーストします。

f:id:ts0818:20170529231625j:plain

そしたら、コマンドプロンプトで再度、rails s でサーバーを起動しましょう。

f:id:ts0818:20170529231626j:plain

サーバーが起動しました!ブラウザで『http://localhost:3000/』にアクセスします。

f:id:ts0818:20170529231627j:plain

Ruby on Railsが起動してます。

Ctrl + Cでサーバーは止められるようです。

今回もハマりにハマってしまい、何故か、Ruby on Railsに脱線しましたが、次回は、Msys2にGitを導入していかねばですね。Git for Windowsが亡くなったので、git bashに変わるものを導入していかねばです。

 

⇩  フォルダのダウンロードは無理っぽいのかな? 

windowsのコマンド(DOS/PowerShell)でファイルをダウンロードする方法について | あいしんくいっと

今回はこのへんで。