自分の手で未来を創るーlav0

自分のために、誰かのために、今ここにないもの、もっと良くしたいもの、何でも自分の手で創っていく。そして、作ったものを公開していきます

Rails 6.0で新規プロジェクト開始

Railsの6.0を導入しアプリケーションを作ってみる。ただ、その中で複数のエラーにぶち当たったのでメモリます。

 

f:id:kslabo51:20200113002308p:plain

 開始前の現在のローカル開発環境の状況はこちら

 

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した際に下記のエラーが発生

f:id:kslabo51:20200112150626p:plain

rails new error

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がない

f:id:kslabo51:20200112151831p:plain

対処)webpackerをインストールするように出ているのでインストール。

 

インストールすると下記のエラーが発生

 

エラー)node.jsのバージョンが低すぎる

f:id:kslabo51:20200112152021p:plain

これが一番引っかかった。もともとローカル開発環境に入っていた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

f:id:kslabo51:20200112232020p:plain

 

エラー)Failed to clone nvm repo

対処)サイトを参考にIUSが提供しているパッケージを使用

①$ yum install https://centos6.iuscommunity.org/ius-release.rpm
②$ rpm -e git perl-Git
③$ git install git2u

 

エラー)Gitがインストールされていない

ここで、②を行ったときに下記のエラーが発生

f:id:kslabo51:20200112232856p:plain

対処)gitがインストールされていなかったのでgitをインストール

$ sudo yum install git

 

再度、②と③を実行した後、nvmをインストール 

f:id:kslabo51:20200112233736p:plain

インストール完了!

 

2)nvmのインストール確認

 $ nvm --version

 

エラー)nvmのコマンドが見つからない

f:id:kslabo51:20200112233937p:plain

対処)コマンドが使えないようなので使えるようにする

 $ source ~/.nvm/nvm.sh 

f:id:kslabo51:20200112234145p:plain

nvmのインストール成功

 

3)インストール可能なバージョンを確認しインストール

 $ nvm ls-remote

ずらずらとたくさん出ます

f:id:kslabo51:20200112234508p:plain

 

最新stableバージョンをインストールする

 $ nvm install stable

f:id:kslabo51:20200112234736p:plain

バージョンを確認するとv13.6.0がインストール完了

 

4)サーバーを立ち上げる

 $ rails s

 

エラー)webpacker入ってなかった

f:id:kslabo51:20200112235742p:plain

対処)webpackerのインストール

 $ rails webpacker:install

 

エラー)yarnがないよと

f:id:kslabo51:20200112235935p:plain

対処)yarnインストール

 $ curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

f:id:kslabo51:20200113000232p:plain

versionを確認したところインストール完了

プロジェクト内にインストール

 $ yarn install

 

完了後、再度webpackerをインストール

f:id:kslabo51:20200113000613p:plain

完了

 

とおもいきや

エラー)サーバー接続が拒否される

どうも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

Releases | Riding Rails

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