インストール「Ruby on Rails」with Ubuntu 18.04 on Windows Subsystem for Linux (WSL)
Ubuntu 18.04 on Windows Subsystem for Linux (WSL)にRuby on Railsを入れていきます。
環境
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS" $ uname -a Linux W10DESK 4.4.0-17134-Microsoft #137-Microsoft Thu Jun 14 18:46:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux
参考
下準備
エラーがおこったときにその都度インストールしたものをまとめてある。エラーの詳細は後ほど解説。
$ sudo apt install -y git $ sudo apt install autoconf $ sudo apt install build-essential $ sudo apt install -y libssl-dev libreadline-dev zlib1g-dev $ sudo apt install sqlite3 $ sudo apt install libsqlite3-dev
apt show [パッケージ名]
でパッケージの詳細がみれる。リンク先は公式Ubuntu Packages。
- autoconf : configureスクリプトを動かすため。
- build-essential : GCCとかMakeとか入ってる。
- libssl-dev : SSLの開発用ライブラリ
- libreadline-dev : ヒストリ機能などを提供するライブラリ
- zlib1g-dev: データの圧縮および伸張を行うためのフリーのライブラリ
- libsqlite3-dev : sqlite3の開発ファイル群
インストール:
rbenvのインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ exec $SHELL -l
インストール後の確認
$ rbenv --version rbenv 1.1.1-39-g59785f6
rubyのインストール
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build $ rbenv install 2.5.1 $ rbenv rehash $ rbenv global 2.5.1
インストール後の確認
$ rbenv versions * 2.5.1 (set by /home/sikeda107/GitRepository/Hello/.ruby-version) $ ruby --version ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
railsのインストール
$ gem install rails $ rails --version /home/sikeda107/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.1/lib/rails/app_loader.rb:53: warning: Insecure world writable dir /home/sikeda107/.rbenv/versions in PATH, mode 040777 Rails 5.2.1 $ gem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/'
解説: sqlite3
This module allows Ruby programs to interface with the SQLite3 database engine (http://www.sqlite.org). You must have the SQLite engine installed in order to build this module. Note that this module is only compatible with SQLite 3.6.16 or newer.
方法が2つあるのでお好みでインストールしてどうぞ。
方法1: mini_racerの利用
$ rails new [アプリ名] $ cd [アプリ名] $ vi Gemfile
gem 'mini_racer', platforms: :ruby
の#を外す。i
で挿入モードへ移行し、カーソル移動して、#を消して、Esc
を押して、:wq
で上書き保存する。
source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '2.5.1' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' (省略) # See https://github.com/rails/execjs#readme for more supported runtimes gem 'mini_racer', platforms: :ruby (<-これ) # Use CoffeeScript for .coffee assets and views gem 'coffee-rails', '~> 4.2' (省略)
Gemをインストールする。
$ bundle install $ rails server
ブラウザにてhttp://localhost:3000/
でアクセス。
解説: mini_racer
Minimal embedded v8 engine for Ruby
方法2: node.jsの場合
$ cd $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - $ sudo apt-get install -y nodejs $ rails new [アプリ名] $ cd [アプリ名] $ rails server
解説:Node.js公式サイト
Node はスケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です。
ブラウザにてhttp://localhost:3000/
でアクセス。
エラー集
$ rbenv install 2.5.1 したい
エラー1: どうやらビルドツールMakeがないようだ。
$ rbenv install 2.5.1 Downloading ruby-2.5.1.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2 Installing ruby-2.5.1... BUILD FAILED (Ubuntu 18.04 using ruby-build 20180822-6-g44f0f53) Inspect or clean up the working tree at /tmp/ruby-build.20180829023552.2797 Results logged to /tmp/ruby-build.20180829023552.2797.log 省略) checking if make is GNU make... ./configure: line 27342: make: command not found no checking for safe null command for make... configure: error: no candidate for safe null command
解決コマンド: まだ解決してない。
$ sudo apt install autoconf $ sudo apt install build-essential
エラー2 : libssl-dev libreadline-dev zlib1g-devの3つが必要らしい。
$ rbenv install 2.5.1 ERROR: Ruby install aborted due to missing extensions Try running `apt-get install -y libssl-dev libreadline-dev zlib1g-dev` to fetch missing dependencies.
解決コマンド:ここで解決
$ sudo apt install -y libssl-dev libreadline-dev zlib1g-dev $ rbenv install 2.5.1 成功!
$ rails new Hello したい
エラー1: sqlite3のgemがないらしい。
$ rails new Hello /home/sikeda107/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/sqlite3-1.3.13/gem_make.out An error occurred while installing sqlite3 (1.3.13), and Bundler cannot continue. Make sure that `gem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/'` succeeds before bundling. In Gemfile: sqlite3 run bundle exec spring binstub --all Could not find gem 'sqlite3' in any of the gem sources listed in your Gemfile.
解決コマンド:まだ解決してない。そして、libsqlite3-devが必要らしい。
$ gem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/' Building native extensions. This could take a while... /home/sikeda107/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/ext/builder.rb:76: warning: Insecure world writable dir /home/sikeda107/.rbenv/versions in PATH, mode 040777 ERROR: Error installing sqlite3: ERROR: Failed to build gem native extension. current directory: /home/sikeda107/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13/ext/sqlite3 /home/sikeda107/.rbenv/versions/2.5.1/bin/ruby -r ./siteconf20180829-1505-1fcp7sr.rb extconf.rb /home/sikeda107/.rbenv/versions/2.5.1/lib/ruby/2.5.0/mkmf.rb:1553: warning: Insecure world writable dir /home/sikeda107/.rbenv/versions in PATH, mode 040777 checking for sqlite3.h... no sqlite3.h is missing. Try 'brew install sqlite3', 'yum install sqlite-devel' or 'apt-get install libsqlite3-dev' and check your shared library search path (the location where your sqlite3 shared library is located). *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir (省略) --without-sqlite3-lib=${sqlite3-dir}/lib To see why this extension failed to compile, please check the mkmf.log which can be found here: /home/sikeda107/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/sqlite3-1.3.13/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /home/sikeda107/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13 for inspection. Results logged to /home/sikeda107/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/sqlite3-1.3.13/gem_make.out
解決コマンド: ここで解決。
$ sudo apt install libsqlite3-dev $ gem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/' $ rails new Hello 成功!
この画面がみれればOK!!