作成環境:Amazon Linux
Rails6で動かす
※先に言っておきますが、Rails6では動かせませんでした。Rails5で動かしたい方は下へどうぞ。
①rubyのバージョンを確認します。
ec2-user:~/environment $ ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
2.6.3が入ってますね。
②railsのバージョンを確認します。
ec2-user:~/environment $ rails -v Rails 5.0.0
③バージョン5が入っているので、最新にします。
ec2-user:~/environment $ gem install rails
最新になりました。(2020/04/16現在)
ec2-user:~/environment $ rails -v Rails 6.0.2.2
④アプリケーションを作成します。アプリケーション名は適当にRailsAppとします。
時間が少しかかるので待ちます…。
ec2-user:~/environment $ rails new RailsApp
⑤作成が終わったらRailsを起動してみます。
ec2-user:~/environment $ cd RailsApp ec2-user:~/environment/RailsApp (master) $ rails s
下記のようなエラーがでました。
Webpackerがインストールされていないとのことです。
/home/ec2-user/.rvm/gems/ruby-2.6.3/gems/webpacker-4.2.2/lib/webpacker/configuration.rb:95:in `rescue in load': Webpacker configuration file not found /home/ec2-user/environment/RailsApp/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_sysopen - /home/ec2-user/environment/RailsApp/config/webpacker.yml (RuntimeError)
⑥なのでWebpackerをインストールします。
が、Yarnがないと言われました。
ec2-user:~/environment/RailsApp (master) $ rails webpacker:install Yarn not installed. Please download and install Yarn from https://yarnpkg.com/lang/en/docs/install/
⑦Yarnをインストールします。
ec2-user:~/environment/RailsApp (master) $ npm install -g yarn
Yarnがインストールできました。
/home/ec2-user/.nvm/versions/node/v10.19.0/bin/yarn -> /home/ec2-user/.nvm/versions/node/v10.19.0/lib/node_modules/yarn/bin/yarn.js /home/ec2-user/.nvm/versions/node/v10.19.0/bin/yarnpkg -> /home/ec2-user/.nvm/versions/node/v10.19.0/lib/node_modules/yarn/bin/yarn.js + yarn@1.22.4 added 1 package in 0.444s
⑧再度、Webpackerのインストールを実行します。
ec2-user:~/environment/RailsApp (master) $ rails webpacker:install
Webpackerがインストールできました。
(省略) ・ ・ Webpacker successfully installed
⑨railsを起動してみます。
ec2-user:~/environment/RailsApp (master) $ rails s
今度は上手くいったようです。
=> Booting Puma => Rails 6.0.2.2 application starting in development => Run `rails server --help` for more startup options Puma starting in single mode... * Version 4.3.3 (ruby 2.6.3-p62), codename: Mysterious Traveller * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://127.0.0.1:8080 * Listening on tcp://[::1]:8080 Use Ctrl-C to stop
⑩ブラウザで確認してみます。画面上部にある「Preview」→「Preview Running Application」をクリックします。
以下のエラーが出ました。
⑪これを解決するには以下のファイルにホストを指定してあげます。
ファイル:/RailsApp/config/application.rb
module RailsApp class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 6.0 # Settings in config/environments/* take precedence over those specified here. # Application configuration can go into files in config/initializers # -- all .rb files in that directory are automatically loaded after loading # the framework and any gems in your application. config.hosts << "cfd5be313ae648ceaf0b2094042dd3f6.vfs.cloud9.ap-northeast-1.amazonaws.com" #←追加 end end
⑫一度railsを停止して再起動します。
今度は以下のエラーになりました。
SQLiteのバージョンがRails6に対して古過ぎるということですが、どうも現在のAmazon Linuxではこの現象を回避できないようなので、Railsのバージョンは上げずにいきます。
Rails5で動かす
※Rails6で環境を作ってしまった方は、一度環境を削除して新しく環境を作り直したほうが早いです。
①rubyのバージョンを確認します。
ec2-user:~/environment $ ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
2.6.3が入ってますね。
ec2-user:~/environment $gem install rails
②railsのバージョンを確認します。
バージョン5ですね。
ec2-user:~/environment $ rails -v Rails 5.0.0
③アプリケーションを作成します。アプリケーション名は適当にRailsAppとします。
時間が少しかかるので待ちます…。
ec2-user:~/environment $ rails new RailsApp
作成後、railsのバージョンを確認するとなぜかちょっと変わります。
ec2-user:~/environment $ rails -v Rails 5.0.7.2
④gemfileのsqlite3の部分を以下のように書き換えます。
gem 'sqlite3','~> 1.3.6'
⑤bundle installを実行します。
ec2-user:~/environment $ bundle install
⑥railsを起動します。
ec2-user:~/environment/RailsApp (master) $ rails s
ようやく実行できました。
コメントを残す