0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初心者がRailsサーバー立ち上げるための環境構築で苦戦した話

Posted at

#概要
progateの手順通りにすすめていくと、見事にハマって全然手順どおりに行かず。。。
ようやく「Yay! You're on Rails!」の画面を拝むことができたので、
環境構築で躓いた部分を備忘録として書き残します。初心者が環境構築で挫折してしまう気持ちがわかりました。。。

#環境
・macOS Catalina ver10.15.7
・ruby ver2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
・rbenv ver1.1.2
・Rails ver6.0.3.4
・homebrew ver2.5.12
・yarn ver1.22.10
・nodebrew v8.9.4
・node.js v15.3.0

#ハマったことろ
1.Homebrewインストール
2.rbenv / ruby-buildインストール
3.webpackerインストール
4.nodebrew / node / yarnインストール

###1.HomeBrewインストール
以下のエラーでインストール失敗。

Error: RPC failed; curl 56 OpenSSL ssl_read: SSL_ERROR_SYSCALL

上記の文をコピペして検索すると、色々対策案が出てきます。(ネットの通信速度が原因?)
バッファを増やすことで改善するようですが、自分の場合は時間開けて、
再インストールしたらできました。

###2.rbenv ruby-buildインストール
インストール自体は問題なしでしたが、「PATHを通す」作業で少しハマりました。
自分が使っているシェルによって少し手順が変わります。
ざっと調べた感じ、「bash」「zsh」の2択でしょうか。
ちなみに、macOSを 「Catalina」 にアップデートすると、
デフォルトシェルが bash から zsh になっているようです。
[ パスを通すとは? : https://qiita.com/soarflat/items/d5015bec37f8a8254380 ]

まず使っているシェルの確認のために以下のコマンドをターミナルに打ちこみます。

$ echo $SHELL

出力結果が/bin/zshの場合
以下のコマンド入力をして、PATHを通します。

$ echo 'eval "$(rbenv init -)"' >>  ~/.zshrc
$ source ~/.zshrc

何をしてるか簡単に説明すると、.zshrcというファイルに、
eval "$(rbenv init -)"という文言を追記しています。
source ~/.zshrcでファイルの更新をしているようなイメージです。

出力結果が/bin/bashの場合
以下のコマンド入力をして、PATHを通します。

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

つまりは、シェルによって、編集するファイルが異なるということですね。
ちなみに.zshrc(.bash_profile)っていうのは、
設定ファイルと言われているもので、.zshrc(bash_profile)だと、
ターミナル起動時に読み込まれるファイルになっています。このファイルに環境変数、
今回の場合だとPATHを登録しておくことで、登録したディレクトリ直下のスクリプトが、
絶対パスを指定しなくても実行できるようになります。
[ 参考先:https://web-nari.net/2019/01/12/bash-profile/ ]

残るはRubyとRuby on railsのインストールを実施。
Railsコマンドでアプリケーションの作成まではすんなりと行きましたが、
最後のRailsサーバー立ち上げで、webpackerが見つかりませんと言われて
インストール失敗。。。
どうもRails6でwebpackerが標準となり、
webpackerがインストールされてないとエラーが出るようです。
webpackerってなんだよ。。。

###3.webpackerインストール
webpackerとはなんぞやというのは、こちらのページを参考にしました。

インストールは以下のコマンドで実行できます。

$ rails webpacker:install


、、、うまくいかずまたエラーです。第4項に続きます。

###4.nodebrew / node / yarnインストール
今度はyarnnodeと言われるものをインストールしろといわれました。
node.js関連のものみたいです。こいつらのインストール方法を調査。
こちらに行き着いたんですが、自分はXcodeが入っていなかったので、
nodeのインストールはnodebrewでやることにしました。
ちなみにnodebrewは、node.jpのver管理ツールです。
nodebrewはhomebrewでインストールできるみたいです。(ややこしい、、、)
手順はこちらを参考にさせていただきました。

$ brew install nodebrew

次にセットアップして、PATHを通します。

$ nodebrew setup
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zshrc
$ source ~/.zshrc

※~/.zshrcの部分は環境に応じて変更してください。
いよいよnodeのインストールです。
インストールできるVerを確認して、Ver指定をしてインストールします。
自分はとりあえず最新Verをインストールしました。

$ nodebrew ls-remote
↑Ver確認
$ nodebrew install-binary v15.3.0
↑この場合はv15.3.0をインストール
$ nodebrew use v15.3.0
↑最後に使用するVerを指定するしておく必要があるらしい

お次はYarnです。
公式ではnode.jsベースのパッケージマネージャーからのインストールは非推奨みたいです。nodebrewもnode.jsベースと言うことになると思うので、
YarnはHomeBrewでインストールします。
[ Yarn公式:https://classic.yarnpkg.com/ja/docs/install#alternatives-stable ]

$ brew install yarn --ignore-dependencies

--ignore-dependenciesをつけると、yarnだけをインストールすることができます。
通常のインストールすると以下のパッケージがインストールされます。
・icu4c
・node
・yarn
nodebrewでnodeはインストールしているので、homebrewでもインストールしてしまうと、
依存関係のエラーになってしまうようです。

しかしこのままだとicu4cもインストールされていないので、インストールします。

$ brew install icu4c

ここまでくればwabpackerも問題なくインストールできると思い、
再度挑戦するも次はこんなエラーが発生。

Error: An exception occurred within a child process:
  RuntimeError: /usr/local/opt/node not present or broken
Please reinstall node. Sorry :(

入れたはずのnodeが見つからないと言っています。
/usr/local/opt/nodeのディレクトリにないと言っているので、
このディレクトリに、先ほど入れたnodeが存在するようにする必要があります。
手順は、
1.ディレクトリの作成
2.シンボリックリンクの設定
になります。
[ 手順はこちらを参考させていただきました。 ]

1.ディレクトリの作成

$ mkdir /usr/local/opt/node

2.シンボリックリンクの設定
/usr/local/opt/nodeにアクセスすると、
nodebrewで入れたnodeが存在するディレクトリへリンクするように設定します。

$ ln -s ~/.nodebrew/current/ /usr/local/opt/node/

そして再度、

$ rails webpacker:install


以下の表示がでて成功です。

Webpacker successfully installed 🎉 🍰

この状態で再度rails sを実行すると、、、

スクリーンショット 2020-11-29 23.38.34.png

無事成功です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?