LoginSignup
5
3

More than 3 years have passed since last update.

Ruby on Railsの環境構築した時に出たエラーとか

Posted at

はじめに

サーバーサイドの知識があまりなかったため、Railsをなんとなーく導入してみようと思い、なんとなーく環境構築を勧めていたら、無知も相まって色々と悩んだのでメモを残しておく。今回予め、Gitlab,Redmineあたりを勉強ついでに導入しており、その関係でRails側の設定やインストール工程を一部省いたりもしたため、rubyとかbundlerとかpostgresqlとかをrailsのためにインストールし直したりはしていない。

Railsを導入するにあたって参考にしたサイト

環境

  • OS (CentOS7)
  • ruby (2.4.1)
  • bundler (1.17.3)
  • gem (3.0.4)
  • rails (5.2.3)
  • postgresql (9.2.24)

本題

bundler command not found: spring

Bundle complete! 18 Gemfile dependencies, 60 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`
         run  bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with `bundle install`

rails new 'アプリ名' -d postgresqlを実行した時に出たエラー。
単純にspringというコマンドがなく、次の工程に進めないという話なのだけど、なぜ存在しないのかが分からなかった。
結論から言うとbundlerのconfigに問題があり、developmentとtestグループがBUNDLE_WITHOUTに設定されていたため、Gemfileの特定の行を通っていなかった。
参考URL(http://ruby.studio-kingdom.com/bundler/bundle_config/)

.bundle/config
---
BUNDLE_PATH: "vendor/bundle"
BUNDLE_WITHOUT: "development:test"

ひとまず以下の様に修正

.bundle/config
---
BUNDLE_PATH: "vendor/bundle"
BUNDLE_WITHOUT: "test"

これでspringコマンド含め、諸々インストールされた。

Could not find a JavaScript runtime

JSのランタイムがないとかなんとか。nodejsインストールで解決した。
参考URL(http://djandjan.hateblo.jp/entry/2018/07/25/224929)

Address already in use

正しくは

Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE) 

と出力されていた。
多分3000番ポートが既に使用されているので、ポートの使用状況を lsof -i:3000 で確認してみたら、どうやらGitlabで使われてるっぽい...のでRailsのポートを変更することにした。
以下のコマンドでひとまず解決。

$ rails s -p 3001

Linux上ではひとまず起動したようなので、よしこれでページアクセスできるわ!と思い、ブラウザーにアドレス入力。エンターキーに渾身の力をこめてターンッしたら想定していたページが表示されない。このサイトにアクセスできませんとのこと。
これについては、下のURLに詳しいことが書いてあった。
参考URL
結果

$ rails s -b 0.0.0.0 -p 3001

これでアクセス"は"できるようになった。

あとファイアウォールのポートの設定忘れてるとアクセスできないので注意。

role "ユーザー名" does not exist

データベース側の設定ができておらんのでアクセスできてもページの表示ができなかった。
まずはユーザーが存在しないところから。下記URLの通りにすれば作成できた。ユーザー名はRails sを実行しているユーザー名にすればいい思う。(多分)
自分の場合はrootでやっていたので、

$ sudo su – postgres
$ createuser -s -r root

で作成は完了。
参考URL(https://kirohi.com/rails_pg_error_role_doesnotexist)

データベースが存在しない。

下記URLの通り設定していきましょう。"Rails の設定とか"の辺りに詳しく書いてある。
データベースの名前はエラーページに表示されている通り。(***の部分はrails new で作成したアプリの名前)
***_development
***_test
***_production
参考URL

余談

改めて記事にしてみて、アドレスの指定のところとか、そもそもDBまわりの知識があまりないとかちらほらあったので改めて調べ直したら記事にして考えを整理したいと思う。

また、もし誤った情報があれば、ご指摘いただけると幸いです。

5
3
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
5
3