UbuntuにRuby on Railsをインストールしてみた(5.2.1.1)

スポンサーリンク
スポンサーリンク
UbuntuにRuby on RailsがインストールされたRuby
この記事は約14分で読めます。
スポンサーリンク
スポンサーリンク

Ubuntu Desktopに、WebアプリケーションフレームワークであるRuby on Railsをインストールしてみました。

この記事では、Ruby on Railsをインストールしてから新規アプリケーションを作成し、ローカルサーバーを起動させて動作確認を行うまでの流れについて紹介しています。

Railsアプリケーションの新規作成やサーバーの起動の際にエラーが発生したので、時間がかかりましたが、最終的には正常に動作させることができました。

スポンサーリンク
スポンサーリンク

インストールした際の環境について

  • Ubuntu Desktopのバージョン:18.10
  • Rubyのバージョン:2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
  • Ruby on Railsのバージョン:5.2.1.1
Ruby on Railsをインストールする際には、Rubyがインストールされている必要があります。「ruby -v」コマンドを実行することで、Rubyのバージョンが表示されるため、インストールされていることを確認することができます。

Ubuntu DesktopにRubyをインストールする方法については、こちらの記事「rbenvを利用してUbuntuにRubyをインストールしてみた」にて紹介しています。

rbenvを利用してUbuntuにRubyをインストールしてみた
Ubuntu DesktopにRubyをrbenvを利用してインストールしてみたので、この記事ではその際の手順について紹介します。 何度もエラーが発生したため時間がかかりましたが、最終的には正常にRubyをインストールすることができま...

Ruby on Railsをインストールしてみた

はじめに、Ruby on Railsをインストールします。

ターミナル(端末)を開き、「gem install rails」コマンドを実行します。

インストールが完了するまで、2分半ほどかかりました。

「Building native extensions. This could take a while…」の部分の処理が一番時間がかかっていました。

実行結果

anlovegeek@anlovegeek-VirtualBox:~$ gem install rails
Fetching: concurrent-ruby-1.1.3.gem (100%)
Successfully installed concurrent-ruby-1.1.3
︙
Parsing documentation for rails-5.2.1.1
Installing ri documentation for rails-5.2.1.1
Done installing documentation for concurrent-ruby, i18n, thread_safe, tzinfo, activesupport, rack, rack-test, mini_portile2, nokogiri, crass, loofah, rails-html-sanitizer, rails-dom-testing, builder, erubi, actionview, actionpack, activemodel, arel, activerecord, globalid, activejob, mini_mime, mail, actionmailer, nio4r, websocket-extensions, websocket-driver, actioncable, mimemagic, marcel, activestorage, thor, method_source, railties, bundler, sprockets, sprockets-rails, rails after 87 seconds
39 gems installed

インストールが完了したので、「rails -v」コマンドを実行してバージョンを確認しました。

このように、バージョンが表示されたので、正常にインストールされていたことがわかりました。

anlovegeek@anlovegeek-VirtualBox:~$ rails -v
Rails 5.2.1.1

Ruby on Railsの動作確認をしてみた

アプリケーションを新規作成する

新規アプリケーションを作成し、動作確認をしてみました。

「rails new helloworld(任意のアプリ名)」コマンドを実行すると、「helloworld(アプリ名)」ディレクトリにアプリケーションが作成されました。

しかし、「An error occurred while installing sqlite3 (1.3.13), and Bundler cannot
continue.」というエラーメッセージが表示されました。

実行結果

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.
Run `bundle install` to install missing gems.

「Bundler cannot continue」エラーへの対処

先ほどのエラーメッセージには、「bundle install」コマンドを実行する前に「gem install sqlite3 -v ‘1.3.13’ –source ‘https://rubygems.org/’」コマンドの実行が成功するか確認するように書かれていたため、実行してみました。

結果的にこのようなエラーが発生し、コマンドの実行に失敗しました。

実行結果

anlovegeek@anlovegeek-VirtualBox:~/helloworld$ gem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/'
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.

current directory: /home/anlovegeek/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13/ext/sqlite3
/home/anlovegeek/.rbenv/versions/2.5.3/bin/ruby -r ./siteconf20181203-18962-18x5bja.rb extconf.rb
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).
︙
Results logged to /home/anlovegeek/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/sqlite3-1.3.13/gem_make.out

SQLite3のインストールエラーへの対処

エラーメッセージには、「sqlite3.h」が欠けていていると書かれていました。

また、「brew install sqlite3」、「yum install sqlite-devel」、「apt-get install libsqlite3-dev」コマンドのどれかを実行するよう書かれていたので、「sudo apt-get install libsqlite3-dev」コマンドを実行しました。

権限がないなどの理由でエラーが発生することを防ぐため、sudoコマンドにしました。

パスワードの入力を求められたので、入力しました。

実行結果

anlovegeek@anlovegeek-VirtualBox:~/helloworld$ sudo apt-get install libsqlite3-dev
[sudo] anlovegeek のパスワード:
パッケージリストを読み込んでいます... 完了
︙
提案パッケージ:
sqlite3-doc
以下のパッケージが新たにインストールされます:
libsqlite3-dev
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
646 kB のアーカイブを取得する必要があります。
この操作後に追加で 2,191 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu cosmic/main amd64 libsqlite3-dev amd64 3.24.0-1 [646 kB]
646 kB を 1秒 で取得しました (1,103 kB/s)
以前に未選択のパッケージ libsqlite3-dev:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 162296 個のファイルとディレクトリがインストールされています。)
.../libsqlite3-dev_3.24.0-1_amd64.deb を展開する準備をしています ...
libsqlite3-dev:amd64 (3.24.0-1) を展開しています...
libsqlite3-dev:amd64 (3.24.0-1) を設定しています ...

先ほど実行に失敗したコマンド「gem install sqlite3 -v ‘1.3.13’ –source ‘https://rubygems.org/’」を実行しました。

今回は、実行に成功しました。

実行結果

anlovegeek@anlovegeek-VirtualBox:~/helloworld$ gem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/'
Building native extensions. This could take a while...
Successfully installed sqlite3-1.3.13
Parsing documentation for sqlite3-1.3.13
Installing ri documentation for sqlite3-1.3.13
Done installing documentation for sqlite3 after 0 seconds
1 gem installed

次に、「bundle install」コマンドを実行し、gemのインストールを行いました。

これでアプリケーションの作成が完了しました。

実行結果

anlovegeek@anlovegeek-VirtualBox:~/helloworld$ bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies......
Using rake 12.3.1
︙
Installing web-console 3.7.0
Bundle complete! 18 Gemfile dependencies, 79 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

ローカルサーバーを起動

Railsアプリケーションの作成が完了したので、「rails s」コマンドを実行してローカルサーバーを起動させてみました。

エラーが発生

JavaScriptのコードをRubyから実行するための「JavaScriptランタイム」が見つからないとのエラーメッセージが表示され、サーバーの起動に失敗しました。

「ExecJS」GitHubページに利用可能なランタイムの一覧があると書かれていたので、アクセスしてみました。

実行結果

anlovegeek@anlovegeek-VirtualBox:~/helloworld$ rails s
Traceback (most recent call last):
49: from bin/rails:4:in `<main>'

︙

/home/anlovegeek/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/execjs-2.7.0/lib/execjs/runtimes.rb:58:in `autodetect': Could not find a JavaScript runtime.
 See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

「gem install execjs」コマンドを実行して、「ExecJS」をインストールしました。

実行結果

anlovegeek@anlovegeek-VirtualBox:~/helloworld$ gem install execjs
Successfully installed execjs-2.7.0
Parsing documentation for execjs-2.7.0
Installing ri documentation for execjs-2.7.0
Done installing documentation for execjs after 0 seconds
1 gem installed

nodejsをインストール

「sudo apt install nodejs」コマンドを実行して、Node.jsをインストールしました。

実行結果

anlovegeek@anlovegeek-VirtualBox:~/helloworld$ sudo apt install nodejs
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
fonts-liberation2 fonts-opensymbol gir1.2-geocodeglib-1.0
︙
以下のパッケージが新たにインストールされます:
libc-ares2 libhttp-parser2.8 libuv1 nodejs nodejs-doc
アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
5,632 kB のアーカイブを取得する必要があります。
この操作後に追加で 24.7 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
︙
update-alternatives: /usr/bin/js (js) を提供するために自動モードで /usr/bin/nodejs を使います
libc-bin (2.28-0ubuntu1) のトリガを処理しています ...

ローカルサーバーが起動した

JavaScriptランタイムのインストールが完了したので、もう一度「rails s」コマンドを実行して、ローカルサーバーを起動させてみました。

今回はエラーが発生せず、ローカルサーバーが起動しました。

anlovegeek@anlovegeek-VirtualBox:~/helloworld$ rails s
=> Booting Puma
=> Rails 5.2.1.1 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.0 (ruby 2.5.3-p105), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

ブラウザを開き、アドレスバーに「localhost:3000」と入力して確定すると、Ruby on RailsやRubyのバージョンが表示されます。

これでRuby on Railsのインストール、新規アプリケーションの作成、ローカルサーバーの起動をすべて行うことができました。

UbuntuにRuby on Railsがインストールされた

タイトルとURLをコピーしました