#経緯
Ruby on Rails で 「Action Text」を実装した Web アプリケーションを開発する為に、試用版のテストアプリを作りました。「RDBMS」は馴染みのある「MySQL」を採用しています。今回の記事では、いくつものエラーに苦しみながら開発環境を構築する、ありがちな一例をご紹介します(本番環境は後日、別の記事にまとめる予定です)。ちなみに Docker を活用すると、こうした苦労が激減すると思います。
※各ツールの最新バージョンは、2020年8月30日時点です。
#やる事
- 必要なツールのバージョン策定とインストール
- web アプリケーション作成
- 「Action Text」の実装
- 開発環境でアプリの動作確認
- 開発環境で他のアプリへの影響を確認
#必要なツール(◎ = 実装済み、★ = エラーに関与)
- ◎ **「macOS Catalina」**10.15.4 (最新は10.15.6)
- ◎ **「homebrew」**2.4.14 (最新)
- ◎ **「rbenv」**1.1.2 (最新)
- 「Ruby」 2.6.6 (安定?)
- ★ 「nodebrew」 1.0.1(最新?)
- ★ 「node.js」 11.5.0 (安定?)
- ◎ ★ 「openssl」 1.0(?)→1.1
- ◎ ★ **「MySQL」**5.6.46(最新は8系)
- ◎ ★ 「ImageMagick」 6.9.11-28 (最新) → 6.9.10-97 (安定?)
- ★ 「Ruby on Rails」 6.0.3 (最新)
- ◎ **「bundler」**1.17.2(安定?)
- ★ 「mysql2」 5.3 (最新) → 4.10 (安定?)
- 「webpacker」4.3.0(最新?)
- **「image_processing」**1.11.0(最新?)
#作業手順(▲ = エラーに関係している箇所)
-
ターミナルで作業用のフォルダへ移動
-
Rubyインストール
-
▲ nodebrewインストール
-
▲ node.jsインストール
-
gemfile 作成と編集
-
▲ Railsと必要な gem(webpacker, mysql2, image_processing)のインストール
-
▲ ImageMagickインストール(homebrew からインストールした事で最新版にアップデートされてしまった)
-
Rails アプリ作成
-
scaffold で必要なファイルを一括作成
-
Action Text の実装
-
▲ model と controller と view などのファイルのコード書き換え
-
▲ データベースのセットアップ
-
▲ localhost サーバー起動と動作確認
-
▲ 既存のアプリの開発環境の動作確認
#発生したエラーの整理
- エラー① ... インストール先のフォルダが見つからなかった。(手順3)
- エラー② ... 環境パスを通す為のシェルの種類が違った。(手順4)
- エラー③ ... openssl が必要なバージョンではなかった。(手順6)
- エラー④ ... サーバー接続後、「mysql2」のバージョンが不適切でアクセス不能のエラー。(手順6, 13)
- エラー⑤ ... ActionText 投稿フォームのタイトルで使用する、データベースのカラムの型(string)の上限容量の不足。(手順11, 12)
- エラー⑥ ... 既存のアプリからサーバー接続時、openssl のパスが通らなかった。(手順13, 14)
- エラー⑦ ... 既存のアプリからサーバー接続時、 ImageMagick のバージョンが不適切で起動できなかった。(手順13, 14)
#エラー解決で参考にした記事
【エラー①, ②(nodebrew と node.js)】
【エラー③, ④, ⑥(mysql2 と openssl)】
- 「またお前か mysql2 gemのインストール失敗」(2019年11月15日)
- 「Railsの環境構築時にLibrary not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib」 (LoadError)で苦しんだ(2020年02月09日)
- 「【Rails】MySQL2がbundle installできない時の対応方法」(2019年04月11日)
- 「rails のサーバー立ち上げようとしたらセグフォした件」(2018年9月22日)
【エラー⑤(Ruby on Rails6系 と MySQL5系)】
- 「RailsでiPhoneの絵文字対応する方法」(2014年10月20日)
- 「Mysql2::Error: Index column size too large. The maximum column size is 767 bytes」(2019年12月21日)【別の解決手段】
- 「MySQL に関わる Rails6.0 以降の変更点」(2019年05月02日)【因果関係】
【エラー⑦(ImageMagick と rmagick)】