前提
Dockerを使用してRails+Postgresqlで作成したアプリを、AWS上にデプロイする作業を行なっております。
作業にあたり、以下のサイトの内容に従い進行しております
https://qiita.com/gyu_outputs/items/b123ef229842d857ff39
作業工程の途中でエラーが発生してしまい、行き詰まってしまっている状態のため、
エラーの解消をしたいです。
【補足】
上記サイトでは、データベースはMySQLを使用して紹介しているため、
その部分をPostgresqlに置き換えて作業しています。
ローカルのPostgresqlは14.3を使用しているため、EC2上で以下のサイトを参考にPostgresqlをインストールしました。
https://zenn.dev/uotohotaru/articles/0730f90dbf7a6d
実現したいこと
同サイトにおける以下の部分の手順に、「$ bundle install」を行いgemをインストールするとあるのですが、この部分でエラーが発生しているため、エラーを解消したいです。
なお、ここまでの手順では特にエラー等はなく進められています。(MySQLの部分だけはPostgresqlとして置き換えて作業していますが)
https://qiita.com/gyu_outputs/items/b123ef229842d857ff39#%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E4%B8%8A%E3%81%AE%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%A7bundler%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B
環境
【ローカル】
Ruby 3.1.2
Rails 7.0.4
PostgreSQL 14.3
bundler 2.3.7
※Rails、PostgreSQLはDockerコンテナを使用して起動しています。
【EC2内】
Ruby 3.1.2
Rails 7.0.4
PostgreSQL 14.3
bundler 2.3.7
発生している問題・エラーメッセージ
現状でbundle installすると、以下のようなエラーが発生します。
[ec2-user@ip-##-##-## アプリのディレクトリ]$ bundle install Fetching gem metadata from https://rubygems.org/.......... Resolving dependencies.... Using rake 13.0.6 Using concurrent-ruby 1.1.10 〜〜中略〜〜 Using jbuilder 2.11.5 Fetching pg 1.4.4 Installing pg 1.4.4 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/pg-1.4.4/ext /home/ec2-user/.rbenv/versions/3.1.2/bin/ruby -I /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0 -r ./siteconf20221226-19471-dh4bhh.rb extconf.rb Calling libpq with GVL unlocked checking for pg_config... no checking for libpq per pkg-config... no Using libpq from checking for libpq-fe.h... no Can't find the 'libpq-fe.h header ***************************************************************************** Unable to find PostgreSQL client library. Please install libpq or postgresql client package like so: sudo apt install libpq-dev sudo yum install postgresql-devel sudo zypper in postgresql-devel sudo pacman -S postgresql-libs or try again with: gem install pg -- --with-pg-config=/path/to/pg_config or set library paths manually with: gem install pg -- --with-pg-include=/path/to/libpq-fe.h/ --with-pg-lib=/path/to/libpq.so/ *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/home/ec2-user/.rbenv/versions/3.1.2/bin/$(RUBY_BASE_NAME) --with-pg --without-pg --enable-gvl-unlock --disable-gvl-unlock --enable-windows-cross --disable-windows-cross --with-pg-config --without-pg-config --with-pg_config --without-pg_config --with-libpq-dir --without-libpq-dir --with-libpq-include --without-libpq-include=${libpq-dir}/include --with-libpq-lib --without-libpq-lib=${libpq-dir}/lib --with-libpq-config --without-libpq-config --with-pkg-config --without-pkg-config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include=${pg-dir}/include --with-pg-lib --without-pg-lib=${pg-dir}/lib To see why this extension failed to compile, please check the mkmf.log which can be found here: /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/pg-1.4.4/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/pg-1.4.4 for inspection. Results logged to /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/pg-1.4.4/gem_make.out /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:95:in `run' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:47:in `block in build' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0/tempfile.rb:317:in `open' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:26:in `build' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:161:in `build_extension' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:195:in `block in build_extensions' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `each' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `build_extensions' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/3.1.0/rubygems/installer.rb:853:in `build_extensions' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/rubygems_gem_installer.rb:71:in `build_extensions' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/rubygems_gem_installer.rb:28:in `install' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/source/rubygems.rb:204:in `install' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer/gem_installer.rb:54:in `install' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer/parallel_installer.rb:186:in `do_install' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer/parallel_installer.rb:171:in `install_serially' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer/parallel_installer.rb:97:in `call' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer/parallel_installer.rb:71:in `call' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer.rb:259:in `install_in_parallel' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer.rb:209:in `install' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer.rb:89:in `block in run' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/process_lock.rb:12:in `block in lock' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/process_lock.rb:9:in `open' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/process_lock.rb:9:in `lock' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer.rb:71:in `run' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/installer.rb:23:in `install' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/cli/install.rb:62:in `run' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/cli.rb:255:in `block in install' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/settings.rb:131:in `temporary' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/cli.rb:254:in `install' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/cli.rb:31:in `dispatch' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/cli.rb:25:in `start' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/exe/bundle:48:in `block in <top (required)>' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors' /home/ec2-user/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.7/exe/bundle:36:in `<top (required)>' /home/ec2-user/.rbenv/versions/3.1.2/bin/bundle:25:in `load' /home/ec2-user/.rbenv/versions/3.1.2/bin/bundle:25:in `<main>' An error occurred while installing pg (1.4.4), and Bundler cannot continue. In Gemfile: pg
試したこと
エラー文の、
Please install libpq or postgresql client package like so:
sudo yum install postgresql-devel
を実行し、インストールされたかと思い、再度bundle installを実行しましたが、エラー状況は変わりませんでした。
また、上記のコード内に「問題を回避するために --skip-broken を用いることができます。」とあるので、
$ sudo yum install postgresql-devel --skip-broken
を試したのですが、同じくbundle installはエラーのままでした。
また、エラー文に「Can't find the 'libpq-fe.h header」とあり、libpq-fe.hというファイルが見つからないためにエラーが起きていると考え、調べましたが、「sudo yum install postgresql-devel を実行すると解決する」といった内容のものしか見つけられず、どのようにエラー解消を進めたら良いかわからない状態です。
調べたサイト参考:https://ryotatake.hatenablog.com/entry/2019/04/07/libpq-fe
以上、ご回答お待ちしております。
回答1件
あなたの回答
tips
プレビュー