你知道为什么bundler声称它正在安装pg gem然后抱怨它无法编译它?它表明gems没有并行安装,但后来继续尝试安装pg,没有产生错误,去安装rmagick,然后为pg产生错误。
当我查看Gemfile时,rggick列在pg之前...非常困惑。
Rubygems 2.0.14 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation. Using rake 11.3.0 Using i18n 0.7.0 Using json 1.8.3 Using minitest 5.9.1 Using thread_safe 0.3.5 Using builder 3.2.2 Using erubis 2.7.0 Using mini_portile2 2.1.0 Using pkg-config 1.1.7 Using rack 1.6.4 Using mime-types-data 3.2016.0521 Using arel 6.0.3 Using addressable 2.4.0 Using bundler 1.13.2 Using coderay 1.1.1 Using concurrent-ruby 1.0.2 Using htmlentities 4.3.1 Using thor 0.19.1 Using mimemagic 0.3.2 Using net-ldap 0.12.1 Installing pg 0.18.4 with native extensions Using ruby-openid 2.3.0 Using rbpdf-font 1.19.0 Using redcarpet 3.3.4 Using request_store 1.0.5 Installing rmagick 2.16.0 with native extensions Using tzinfo 1.2.2 Installing nokogiri 1.6.8 with native extensions Using rack-test 0.6.3 Using mime-types 3.1 Using css_parser 1.3.7 Using sprockets 3.7.0 Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb checking for pg_config... yes Using config values from /usr/bin/pg_config *** 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}/lib64 --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/bin/ruby --with-pg --without-pg --enable-windows-cross --disable-windows-cross --with-pg-config --without-pg-config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include=${pg-dir}/include --with-pg-lib --without-pg-lib=${pg-dir}/ /usr/share/ruby/mkmf.rb:434:in `try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /usr/share/ruby/mkmf.rb:519:in `try_link0' from /usr/share/ruby/mkmf.rb:534:in `try_link' from extconf.rb:36:in `' Gem files will remain installed in /tmp/.gem/ruby/gems/pg-0.18.4 for inspection. Results logged to /tmp/.gem/ruby/gems/pg-0.18.4/ext/gem_make.out An error occurred while installing pg (0.18.4), and Bundler cannot continue. Make sure that `gem install pg -v '0.18.4'` succeeds before bundling.
答案 0 :(得分:0)
您可能没有安装PostgreSQL。它也出现在macOS上。我只是做了brew install postgresql
并再次运行bundle
。如果你在任何其他操作系统上,你需要相应地安装PostgreSQL
这将做的是安装gem所需的所有缺少的库。
答案 1 :(得分:0)
很可能你没有在你的机器上安装postgresql软件。
这就是为什么当你试图安装gem时,它找不到postgresql软件的executable
.Hence bundler无法安装gem。
在您的机器上安装postgresql
sudo apt-get install postgresql postgresql-contrib #If you are on linux(ubuntu).
brew install postgresql #If you are on mac
希望你得到答案。享受