Rails6環境構築をなるべくわかりやすく説明 Cloud9
Cloud9のサービスが良い。 理由は、ローカルPCだと、いろんなものを勉強しているときに、XAMP(ザンプ)やらVagrant(ベイグラント)いれて環境がおかしくなっていることが多い。 また新たに仮想環境入れるとまた環境が汚れてしまう可能性が高いです。
よってクラウド環境のCloud9がおすすめ。 https://aws.amazon.com/jp/cloud9/
登録方法については、指示通りにすればできるので、記載しません。 無料枠月750時間ありますので、初めの1年はどんなに利用しても、無料枠を超えることは無いと思います。
注意!Cloud9 Amazon LinuxにはRails6の環境構築はSQLite3のバージョンの縛りがあり、できません。2019.9現在 この記事では後半Ubuntuを利用して構築しています。
RailsはRubyで動いている。 当たり前の話ですね。 ただ、特定のRubyのバージョンがインストールされて、そのRubyに対してRailsがインストールされているという事を理解しておくのは大切です。 Rubyのバージョンが変わると、当然Railsも動きがおかしくなります。 Cloud9を起動してみると、Railsもデフォルトで入っていました。
Rubyが2.6.3 Railsが5.0.0ですね。
ついでですからRails6の環境を構築していきましょう。 Rails6はRuby2.5以上が必要なようです。いま2.6.3でしたので問題ないですね。
環境周りのパッケージをまとめてinstallしなさい グループインストール
$ sudo yum groupinstall "Development Tools" こんな表示がされたら yを押します。 243M結構ありますね。
rvmでは2.6.3のバージョンを指定しなさい rvmとはRuby Version ManagerといってRubyのバージョンを管理するものです。開発環境に応じてRubyのバージョンを切り替えられます。
$ rvm use 2.6.3
返事 gems配下のruby-2.6.3を利用します。
Using /home/ec2-user/.rvm/gems/ruby-2.6.3
bundlerとrailsのgemは入れないといけない。 Railsも巨大なgemです。
gem install rails gem install bundler #railsのバージョン6.0を指定して、sample_appというRailsプロジェクトを作成しなさい rails _6.0.0_ new sample_app
一応フォルダはできた
けどエラー
調査したらwebpackerとyarnを入れないといけないようだ
yarnはnodeで動いているのでまずnodeをインストール
$ sudo yum install nodejs #公式サイトからyarnの最新版をとってきなさい $curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo //こんな感じで表示される % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 130 100 130 0 0 1171 0 --:--:-- --:--:-- --:--:-- 1171 [yarn] name=Yarn Repository baseurl=https://dl.yarnpkg.com/rpm/ enabled=1 gpgcheck=1 gpgkey=https://dl.yarnpkg.com/rpm/pubkey.gpg $ curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo #yarnをインストールしなさい $ sudo yum install yarn #yarn バージョン確認 $ yarn -v 1.17.3 #package.jsonリスト化されている全ての依存関係をインストール #railsのプロジェクトの中で実行すること $ yarn install
怒られる
=> Run `rails server --help` for more startup options RAILS_ENV=development environment is not defined in config/webpacker.yml, falling back to production environment
入れてなかった webpackerをインストール
rails webpacker:install
config/application.rbに追記
Cloud9はWEBサーバーのIP動的に割り振られる.
よってconfigにIPを設定しておく
config.application.rb
に記載する
#最後がamazon.comになっているものは表示します config.hosts << ".amazonaws.com"
けどrails sでエラー
sqliteが古いと怒られたのでgemを変更3.8以上へ
gem は1.4というのがポイント
Gemfile
# Use sqlite3 as the database for Active Record gem 'sqlite3', '~> 1.4'
$ rails db:create
rails sは通ったけど、今度はSQLiteが古いと言われる
Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8.
調査したらAmazonLinuxだとSQLiteをupdateするのは難しそう。 https://stackoverflow.com/questions/56086629/error-your-version-of-sqlite-3-7-17-is-too-old-active-record-supports-sqlite
もう一度 Ubuntu Serverを選択し、環境を作り直す。
gem install rails gem install bunlder rails 6.0.0 new sample_app
yarnをインストールするためにnodeをインストール
sudo apt-get install nodejs
yarnのインストール まずファイル
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn
$ yarn -v 1.17.3 入ったようなのでpathを設定 公式サイトに従う https://yarnpkg.com/lang/en/docs/install/#debian-stable
vi ~/.bash_profile
export PATH="$PATH:/opt/yarn-1.71.3/bin"
コンソールをログアウトしてから再度ログイン $ yarn --version 1.17.3 //入っている
yarnが入ったので、今度はwebpackerもインストールされるはず
$ rails webpacker:install Done in 7.46s. Webpacker successfully installed 🎉 🍰 //okだ rails s
RAils6環境完成
今回のポイントは、sqlite3の関係で、Amazon Linuxには環境構築できないと言うことだった。 Ubuntu を利用した。
RAils6からはyarnが必要です。 yarnはJavaScriptのパッケージを管理するものです。 Facebook,Googleなどが開発しています。 当然言語はnode.jsです。 なのでyarnのインストールにはnodeのインストールが必要です。 nodeのインストールはNVM(ノード・バージョン・マネージャ)を利用します。
参考サイト https://yarnpkg.com/lang/en/docs/install/#debian-stable