Ruby 如何安装PostgreSQL';Ubuntu上的pg gem是什么?
我正在尝试安装PostgreSQL的pg gem for Ruby 我发布了以下命令:Ruby 如何安装PostgreSQL';Ubuntu上的pg gem是什么?,ruby,postgresql,pg,Ruby,Postgresql,Pg,我正在尝试安装PostgreSQL的pg gem for Ruby 我发布了以下命令: gem install pg 我使用RVM安装了Ruby 1.9.2 上面的命令显示了以下错误 错误是: Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. /home/User/.rvm/rub
gem install pg
我使用RVM安装了Ruby 1.9.2
上面的命令显示了以下错误
错误是:
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/home/User/.rvm/rubies/ruby-1.9.2-preview3/bin/ruby extconf.rb
checking for pg_config... yes
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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/User/.rvm/rubies/ruby-1.9.2-preview3/bin/ruby
--with-pg
--without-pg
--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}/lib
--enable-static-build
--disable-static-build
--with-pqlib
--without-pqlib
--with-libpqlib
--without-libpqlib
--with-ms/libpqlib
--without-ms/libpqlib
Gem files will remain installed in /home/user/.rvm/gems/ruby-1.9.2-preview3/gems/pg-0.9.0 for inspection.
Results logged to /home/user/.rvm/gems/ruby-1.9.2-preview3/gems/pg-0.9.0/ext/gem_make.out
我不知道是什么错误…您需要安装头为postgreSQL的postgreSQL开发包
sudo apt-get install libpq-dev
经过两天的阅读和反复思考,并尝试了在其他笔记中发现的许多东西,下面这一行是我在UbuntuLucid10.04上的灵丹妙药,其中混合了一些特立独行的软件包和RVM(ruby 1.9.2-p290、RVM 1.10.2 rubygems 1.8.15、rails 3.0.1、postgres 8.4.10): 结果是:
Building native extensions. This could take a while...
Successfully installed pg-0.13.1
1 gem installed
Installing ri documentation for pg-0.13.1...
Installing RDoc documentation for pg-0.13.1...
{是的,终于成功了}!!
!请注意,在我的Ubuntu/Postresql安装中,运行pg_config的输出缺少LIBS变量中的-lpq项
为什么在某些地方从pq切换到pg——让新手感到困惑
我仍然不明白的是双集合--and--with(选项)
但无论如何,我已经远远超出了我的深度对于.RVM用户来说,这样会更好:
rvmsudo gem install pg -- --with-pg-lib=/usr/lib
它对我有效(在我看到jdupont版本之后)安装libpq-dev对我无效。我还需要安装build-essential
sudo apt-get install libpq-dev build-essential
这解决了我在Ubuntu12.04上的问题,因为这里的每个建议都失败了
rvmsudo gem install pg -v '0.12.2' -- --with-pg-lib=/usr/include/postgresql
我在Ubuntu 12.10上运行以下命令:
apt-get install libpq-dev
帮助我-在那之后运行gem安装pg-v“0.14.1”,现在一切都好了如果你已经安装了libpq dev,并且仍然存在这个问题,这可能是由于OpenSSL的libssl和friends的版本冲突造成的-Ubuntu系统版本在/usr/lib中(libpq是基于该版本构建的)和第二版本RVM安装在$HOME/.RVM/usr/lib中(或/usr/local/rvm/usr/lib,如果是系统安装)。您可以通过临时重命名$HOME/.rvm/usr/lib并查看“gem install pg”是否有效来验证这一点 要解决此问题,请让rvm使用系统OpenSSL库重建(您可能需要手动从rvm/usr/lib目录中删除libssl.*和libcrypto.*):
这最终解决了我在Ubto 12.04上遇到的问题。我也遇到了同样的问题,并尝试了许多不同的变体。经过一些尝试后,我能够
sudo gem安装
,但在没有sudo的情况下安装它仍然有问题。最后我发现了一个决定——重新安装rvm帮助了我。也许它可以为其他人节省时间。ubuntu用户的简单解决方案 首先卸载所有postgres软件包,然后运行这些命令
sudo apt-get install postgresql
sudo apt-get install postgresql-client libpq5 libpq-dev
# for rvm (single user)
mv ~/.rvm/usr/lib ~/.rvm/usr/lib_rvm
# for rvm (multi-user)
mv /usr/local/rvm/usr/lib /usr/local/rvm/usr/lib_rvm
gem install pg -- --with-pg-lib=/usr/lib
然后运行“bundle install”。一切都会好起来的。祝您愉快!解决此问题的另一个方法是使用Homebrew/linuxbrew安装PostgreSQL:
brew安装postgresql
作为一种习惯,我不喜欢使用sudo,除非我必须使用。需要添加软件包
sudo apt-get install libpq-dev
为了在RoR中安装pg gem,我试图在新安装的Ubuntu 16.04中安装一个Rails项目。我在运行bundle.running时遇到了同样的问题
sudo apt-get install aptitude
接
sudo apt-get install libpq-dev
为我解决了这个问题。对于那些试图安装Redmine的人,在尝试了以上所有步骤后,我错过了
sudo apt-get-install-ruby-all-dev
初始错误是,mkmf.rb在/usr/lib/ruby/include/ruby.h中找不到ruby的头文件
sudo apt-get install postgresql postgresql-contrib libpq-dev
您应该首先安装PG数据库服务器来安装客户端,然后再安装客户端
对于在尝试了本页上的所有答案后仍有问题的人,以下(最终)措施奏效了:
这是在做了本页提到的所有其他事情之后的
postgresql 9.5.8
Ubuntu 16.10在Ubuntu中,这对我很有用,我希望能帮助你:
sudo apt-get install libpq-dev
及
apt get install ruby dev
适合我。另一个选项是使用在Linux和macOS上工作的工具只安装支持库:
brew安装libpq
然后
brew链接libpq——强制
(需要使用--force
选项,因为它与postgres公式冲突。)sudo apt get install postgresql client libpq5 libpq dev
然后执行gem install pg
我按照您的建议这样做了…获取以下需要获取0B的存档。解包后5378kB将被释放。是否继续?[Y/n/?]Y写入扩展状态信息…完成(正在读取数据库…166183当前安装的文件和目录。)删除bison…删除libnss3 dev…删除libnspr4 dev…删除libqt4 core…删除libqt4 test…删除libsqlite3 dev…处理man db的触发器..对于像我这样对Ubuntu非常陌生但非常新的用户sudo apt get install aptitude
first:)尝试了各种组合。即使在重新安装postgres和libpq之后。运气也不好。对于Cent/RedHat风格的发行版,仍然存在同样的问题,您需要的软件包是yum安装postgresql-devel
我有一种感觉,这可能不适用于某些人,因为他们的Ubuntu版本。对于我来说,在13.04版本的postgres 9上失败了。1“---”通常用于将第一个命令的参数与第二个命令的参数分开,在本例中,extmod的configure脚本谢谢。您的解决方案非常完美。非常感谢您共享此解决方案。我坚持了一天。很高兴我遇到了这篇文章。我的解决方案几乎是一样的;我使用的是rbenv,对我有用的是s:`gem install pg--with pg lib=/usr/lib/postgresql/--with pg include=/usr/include/postgresql/`;我不需要指定版本。如果人们对如何删除所有postgres软件包感到好奇,sudo apt get remove--purge postgresql postgresql-9.3(或任何您拥有的postgres版本)。谢谢你的回答!Ubuntu版本越新,ruby版本越老,OpenSSL不匹配的可能性就越大。除此之外,其他一切都不起作用!非常感谢@mike blackwell。我几乎已经给出了答案
sudo apt-get install postgresql postgresql-contrib libpq-dev
sudo apt-get install libgmp3-dev
gem install pg
sudo apt-get install libpq-dev
gem install pg -- --with-pg-lib=/usr/lib