環境
macOS Catalina 10.15.5
Rails 6.0.3
Railsチュートリアルとそれに付随するいろいろを書いていきます。
Githubに慣れたいので、チュートリアルは第6版に準拠しています。
3.1 セットアップ
リスト 3.2に沿ってGemfileを変更。
前回の反省を生かしてgem 'puma'
を'4.3.4'
から'4.3.6'
にしました。
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem 'rails', '6.0.3'
gem 'puma', '4.3.6'
gem 'sass-rails', '5.1.0'
gem 'webpacker', '4.0.7'
gem 'turbolinks', '5.2.0'
gem 'jbuilder', '2.9.1'
gem 'bootsnap', '1.4.5', require: false
group :development, :test do
gem 'sqlite3', '1.4.1'
gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
gem 'web-console', '4.0.1'
gem 'listen', '3.1.5'
gem 'spring', '2.1.0'
gem 'spring-watcher-listen', '2.0.1'
end
group :test do
gem 'capybara', '3.28.0'
gem 'selenium-webdriver', '3.142.4'
gem 'webdrivers', '4.1.2'
gem 'rails-controller-testing', '1.0.4'
gem 'minitest', '5.11.3'
gem 'minitest-reporters', '1.3.8'
gem 'guard', '2.16.2'
gem 'guard-minitest', '2.4.6'
end
group :production do
gem 'pg', '1.1.4'
end
$ bundle update
しましたが下記のエラーが出ました。
An error occurred while installing pg (1.1.4), and Bundler cannot
continue.
エラーに下記の内容があったため、pg_config
がないのが問題ではないか?と考えました。
(こちらを参考にしました。→ https://elastictechdays.info/rails-postgresql-bundle-install-error/ )
current directory:
/Users/user/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/pg-1.1.4/ext
/Users/user/.rbenv/versions/2.7.0/bin/ruby -I
/Users/user/.rbenv/versions/2.7.0/lib/ruby/2.7.0 -r
./siteconf20201103-5783-kv6db3.rb extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
pg_config
はどこにあるのか?といろいろ調べましたが、
$ brew install postgresql
でpostgresql
を作るのが最適なようです。
(こちらを参考にしました。→ https://qiita.com/youcune/items/5b783f7fde45d0fd4b35 )
さっそく$ brew install postgresql
を実行して再度$ bundle update
しましたが、やはり同様のエラーが出ました。
先ほどの参考サイトを確認したところ、postgresql
をビルドする時に参照するパスを変更していたので、
$ brew install postgresql
の内容を確認したところ
下記のように、/usr/local/Cellar/postgresql/13.0
がインストールされていました。
==> Installing postgresql
==> Pouring postgresql-13.0.catalina.bottle.tar.gz
==> /usr/local/Cellar/postgresql/13.0/bin/initdb --locale=C -E UTF-8 /usr/local/
そのため以下のように$ bundle config build.pg
を実行し、パスを変更しました。
$ bundle config build.pg --with-pg-config=/usr/local/Cellar/postgresql/13.0/bin/pg_config
You are replacing the current global value of build.pg, which is currently "--with-pg-config=/usr/pgsql-9.3/bin/pg_config"
無事$ bundle install
が通りました。