Error with install gem pg - ruby-on-rails

I'm trying to run "bundle install", the only database gem I have in my Gemfile is pg, so I'm getting the following errors.
bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
...
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Using config values from /Applications/Postgres.app/Contents/MacOS/bin/pg_config
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
sh: /Applications/Postgres.app/Contents/MacOS/bin/pg_config: No such file or directory
checking for libpq-fe.h... yes
...
creating extconf.h
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling gvl_wrappers.c
compiling pg.c
compiling pg_connection.c
compiling pg_errors.c
compiling pg_result.c
linking shared-object pg_ext.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [pg_ext.bundle] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/marklalich/.bundler/tmp/14076/gems/pg-0.17.1 for inspection.
Results logged to /Users/marklalich/.bundler/tmp/14076/extensions/universal-darwin-13/2.0.0/pg-0.17.1/gem_make.out
An error occurred while installing pg (0.17.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.17.1'` succeeds before bundling.
I can't find anything online, please someone help!
Thanks!!

I had the same problem and the fix for me was setting the bundle config settings first:
bundle config build.pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Don't get hung up on the pg gem. Doing the bundle install after doing this bundle config fixed the "make failed" problem for me.
For reference, This was the answer that helped https://stackoverflow.com/a/9235107/3546680 but it was user944938's answer that gave me the correct path to put in. Thanks and hope it helps someone else too!

How did you install postgres. You can install postgres using postgres app from postgresapp.com. Place it into application directory and configure the path of pg gem. gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

Related

gem install eventmachine -v '1.2.7' error

I am new to Ruby on Rails and I'm trying to create a website using the same. I have added a few gems to my gem file and trying to bundle them, but encounter this error.
An error occurred while installing eventmachine (1.2.7), and Bundler cannot continue.
Make sure that gem install eventmachine -v '1.2.7' --source 'https://rubygems.org/' succeeds before bundling.
I have tried doing gem install eventmachine -v '1.2.7' but get this error:
ERROR: Failed to build gem native extension.
current directory: /.rvm/gems/ruby-3.0.0/gems/eventmachine-1.2.7/ext
make "DESTDIR=" clean
current directory: /.rvm/gems/ruby-3.0.0/gems/eventmachine-1.2.7/ext
make "DESTDIR=" compiling binder.cpp In file included from
binder.cpp:20: ./project.h:119:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
^~~~~~~~~~~~~~~ 1 error generated. make: *** [binder.o] Error 1
Can someone please help?
#include <openssl/ssl.h>
You seem to be missing the c++ development source necessary for ruby to install openssl.
Install libssl-dev and try the gem installation again. You may be missing other development libraries as well.

How to fix ' Failed to build gem native extension' error with bootsnap with Windows

I am using Windows, and I just installed Ruby on Rails, ruby is version 2.6.3p62 (2019-04-16 revision 67580) [x64-mingw32], rails is version 6.0.0.
When running rails new blog (following this tutorial) bundle install runs.
I have tried reinstalling Ruby, changing its version, and even removing bootsnap and running something else, but even when trying to install the puma gem I get the same error.
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.5/ext/bootsnap
C:/Ruby26-x64/bin/ruby.exe -I C:/Ruby26-x64/lib/ruby/2.6.0 -r
./siteconf20191028-6188-1rw29js.rb extconf.rb
creating Makefile
current directory:
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.5/ext/bootsnap
make "DESTDIR=" clean
current directory:
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.5/ext/bootsnap
make "DESTDIR="
generating bootsnap-x64-mingw32.def
compiling bootsnap.c
linking shared-object bootsnap/bootsnap.so
C:/Ruby26-x64/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
bootsnap.o:bootsnap.c:(.text+0x557): undefined reference to `__strcat_chk'
C:/Ruby26-x64/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
bootsnap.o:bootsnap.c:(.text+0xa07): undefined reference to `__chk_fail'
collect2.exe: error: ld returned 1 exit status
make: *** [Makefile:261: bootsnap.so] Error 1
make failed, exit code 2
Gem files will remain installed in
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.5 for inspection.
Results logged to
C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/bootsnap-1.4.5/gem_make.out
An error occurred while installing bootsnap (1.4.5), and Bundler cannot
continue.
Make sure that `gem install bootsnap -v '1.4.5' --source
'https://rubygems.org/'` succeeds before bundling.
Actually, Bootsnap won't work on Windows anyway, so I'd recommend just removing it from Gemfile. If you want to leave it for production environment, perhaps you should include it conditionally with something like:
gem 'bootsnap' unless (RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/)

Gem::Ext::BuildError: ERROR: Failed to build gem native extension (ope-rb gem)

I am trying to install this ope-rb gem in my project. Here, the native.c is the gem source program it seems. Since it couldn't find the openssl/rand.h header file, it throws an error. Can anyone tell me what am I missing?
Fetching ope-rb 0.0.1
Installing ope-rb 0.0.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/matheswka/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20180821-27089-1aspxw9.rb extconf.rb
checking for openssl/ssl.h... no
checking for SSLv23_method() in -lssl... yes
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling native.c
native.c:3:10: fatal error: 'openssl/rand.h' file not found
#include <openssl/rand.h>
^~~~~~~~~~~~~~~~
1 error generated.
make: *** [native.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/matheswka/.rvm/gems/ruby-2.2.0#appointments/gems/ope-rb-0.0.1 for inspection.
Results logged to /Users/matheswka/.rvm/gems/ruby-2.2.0#appointments/extensions/x86_64-darwin-14/2.2.0-static/ope-rb-0.0.1/gem_make.out
An error occurred while installing ope-rb (0.0.1), and Bundler cannot continue.
Make sure that `gem install ope-rb -v '0.0.1'` succeeds before bundling.

Could not bundle install because of 'pg'

I'm learning R o R. Then, I want to make a website by using postgresql.
But, this error makes me crazy.
Please, help me !
$ sudo bundle install
creating Makefile
make "DESTDIR="
compiling gvl_wrappers.c
compiling pg.c
compiling pg_connection.c
pg_connection.c:2323:3: warning: implicit declaration of function 'gettimeofday' is invalid in C99 [-Wimplicit-function-declaration]
gettimeofday(&currtime, NULL);
^
1 warning generated.
compiling pg_errors.c
compiling pg_result.c
linking shared-object pg_ext.bundle
ld: file not found: dynamic_lookup
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [pg_ext.bundle] Error 1
Gem files will remain installed in /Users/Sean/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/pg-0.17.1 for inspection.
Results logged to /Users/Sean/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/pg-0.17.1/ext/gem_make.out
An error occurred while installing pg (0.17.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.17.1'` succeeds before bundling.
I tried all ways I could.
For example, I tried to change pass of pg.
But, I couldn't.
Then, I tried
$ brew update
$ brew uninstall postgresql
$ brew install postgresql
$ gem install pg
$ bundle install
But, it didn't work.
How can I do for this error !?
You might require libpq-dev, which is the library that always gets me when trying to install the pg gem on a new machine.
I struck the same problem when running the pg gem 0.17 with Ruby 2.2.1
I just did a bundle update pg and it upgraded to 0.18 and it no longer had this compile issue

/usr/bin/gcc-4.2: No such file or directory. error. symlink fix doesn't work

I'm trying to upgrade my rails 3.2.3 app. I've updated the gemfile to gem 'rails', '3.2.11' and ran bundle update rails but got the following error:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/Arel/.rvm/rubies/ruby-1.9.3-head/bin/ruby extconf.rb
creating Makefile
make
compiling generator.c
make: /usr/bin/gcc-4.2: No such file or directory
make: *** [generator.o] Error 1
Gem files will remain installed in /Users/Arel/.rvm/gems/ruby-1.9.3-head/gems/json-1.7.6 for inspection.
Results logged to /Users/Arel/.rvm/gems/ruby-1.9.3-head/gems/json-1.7.6/ext/json/ext/generator/gem_make.out
An error occured while installing json (1.7.6), and Bundler cannot continue.
Make sure that `gem install json -v '1.7.6'` succeeds before bundling.
So I tried the solution that I found everywhere, to create a symlink using the command:
sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
but that just returns the error:
ln: /usr/bin/gcc-4.2: File exists
I don't know a lot about using the terminal to navigate around OSX, so I'm kind of struggling here. Any ideas?
/usr/bin/gcc-4.2 could already be a symlink, but a broken one that points to a nonexistent file.

Resources