Rails 6.0で新規プロジェクト開始
Railsの6.0を導入しアプリケーションを作ってみる。ただ、その中で複数のエラーにぶち当たったのでメモリます。
開始前の現在のローカル開発環境の状況はこちら
Rails6.0を導入する
①インストールできるRubyのバージョンを確認(今回は2.6.4)
$ rbenv install --list
②Ruby 2.6.4をインストール
$ rbenv install 2.6.4
③プロジェクトを作り移動
④そのプロジェクトのrubyを2.6.4に切り替える
$ rbenv local 2.6.4
⑤最新のRailsをインストール(6.0.2.1)
$ gem install rails -v '6.0.2.1'
⑥Rails newしてアプリケーションの作成
$ rails _6.0.0_ new アプリケーション名
エラー対応
上記⑥の後、エラーがラッシュしたのでそれについて手順を記述していきます。
1)Rails 6.0でアプリケーションをnewした際に下記のエラーが発生
sassc (2.2.1)のエラーはgem file内に
gem 'sassc', '~> 2.1.0'
を追記してbundle update 後、bundle installを実行したところ消えました。
Could not find gem 'sqlite3 (~> 1.4)'の方は出来上がったアプリケーションのGem fileを確認したところGem file内にはあったのでbundle install の実行で消えました。
2)その後Rails sした際にNode.jsのバージョンエラーが発生
Rails sすると下記のエラーが発生
エラー)webpackerがない
対処)webpackerをインストールするように出ているのでインストール。
インストールすると下記のエラーが発生
エラー)node.jsのバージョンが低すぎる
これが一番引っかかった。もともとローカル開発環境に入っていたNode.jsのバージョンはnode.js v0.10.48だったので全然対応していない
対処1)
①sudo yum remove nodejs npm
②curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
③sudo yum install -y nodejs
エラー)適切なバージョンのnode.jsがインストールできない
対処1の方法では、一旦、古いバージョンのNodeは削除でき、10xをインストールするには③をやりなさいとターミナルに表示されます。そこで③をやるのですが、どうしてもインストールで持ってくるのは古いバージョンのもの。
サイトをいろいろ調べているときに、node.jsのrpmが複数できてしまい、古いバージョンが優先されているのではないかという意見がありました。確かに
$ ll /etc/yum.repos.d/ | grep node
上記コマンドで確認すると複数できていました。
対処2)古いrpmの削除
古いrpmを削除しインストールしてみました。
エラー)でも、それでもいざ、インストールの段階になると古いものをインストールしようとする。これでだいぶはまりました。。。
解決しnode.jsのバージョンアップした方法
これは、nvmを使用する!です。これに関してもエラーが出つつだったので順番に書いていきます。
1)nvmのインストール
$ curl -o-https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
エラー)Failed to clone nvm repo
対処)サイトを参考にIUSが提供しているパッケージを使用
①$ yum install https://centos6.iuscommunity.org/ius-release.rpm
②$ rpm -e git perl-Git
③$ git install git2u
エラー)Gitがインストールされていない
ここで、②を行ったときに下記のエラーが発生
対処)gitがインストールされていなかったのでgitをインストール
$ sudo yum install git
再度、②と③を実行した後、nvmをインストール
インストール完了!
2)nvmのインストール確認
$ nvm --version
エラー)nvmのコマンドが見つからない
対処)コマンドが使えないようなので使えるようにする
$ source ~/.nvm/nvm.sh
nvmのインストール成功
3)インストール可能なバージョンを確認しインストール
$ nvm ls-remote
ずらずらとたくさん出ます
最新stableバージョンをインストールする
$ nvm install stable
バージョンを確認するとv13.6.0がインストール完了
4)サーバーを立ち上げる
$ rails s
エラー)webpacker入ってなかった
対処)webpackerのインストール
$ rails webpacker:install
エラー)yarnがないよと
対処)yarnインストール
$ curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
versionを確認したところインストール完了
プロジェクト内にインストール
$ yarn install
完了後、再度webpackerをインストール
完了
とおもいきや
エラー)サーバー接続が拒否される
どうもSqliteのバージョンの問題の様子
$ rails s -b 0.0.0.0 で強制的に立ち上げ
そこから接続すると下記のようなエラー
Your version of SQLite (3.6.20) is too old. Active Record supports SQLite >= 3.8.
対処)
サイトを参考にやってみるがどうもうまくいかないようす
参照させていただいたサイト
[初心者向け] Rails 6.0.0でプロジェクトを立ち上げる方法 - Qiita
Rails 6: compiling error · Issue #153 · sass/sassc-ruby · GitHub
yumでのnodejsのバージョンアップにはまった話と解決方法 - Qiita
【俺用メモ】 CentOS6にNode.jsをインストールする - Qiita
JavaScript - 仮想環境下でnvmのインストールがうまくいかない。|teratail
git のインストール (CentOS 6) - Let's Encrypt 総合ポータル
【Node.js】nvmをインストールして設定するまでの方法
Rails6サーバー起動時webpackerエラー(Node.jsアップデート, yarnインストール) - Qiita