无法安装 pg gem (Rails 3 - Cygwin) - sh: : command not found
Posted
技术标签:
【中文标题】无法安装 pg gem (Rails 3 - Cygwin) - sh: : command not found【英文标题】:Unable to install pg gem (Rails 3 - Cygwin) - sh: : command not found 【发布时间】:2013-06-14 21:31:23 【问题描述】:当我跑步时
$ gem install pg
我得到以下信息
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe 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
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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=/usr/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=$pg-dir/include
--with-pg-lib
--without-pg-lib=$pg-dir/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
Gem files will remain installed in /usr/lib/ruby/gems/1.9.1/gems/pg-0.15.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.9.1/gems/pg-0.15.1/ext/gem_make.out
当我跑步时
$ gem install pg -- --with-pg-config= /cygdrive/c/Program Files/PostgreSQL/9.0/bin/pg-config
我得到以下信息
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe extconf.rb --with-pg-config= /cygdrive/c/Program Files/PostgreSQL/9.0/bin/pg-config
Using config values from
sh: : command not found
sh: : command not found
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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=/usr/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=$pg-dir/include
--with-pg-lib
--without-pg-lib=$pg-dir/lib
--with-pg-config
Gem files will remain installed in /usr/lib/ruby/gems/1.9.1/gems/pg-0.15.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.9.1/gems/pg-0.15.1/ext/gem_make.out
“sh: : command not found”是什么意思?
这是安装失败的原因吗?
背景:
我正在使用 Cygwin 我用的是PostgreSQL的一键安装器 pg_config.exe 文件位于 C/Program Files/PostgreSQL/9.0/bin/pg-config.exe libpq-fe.h 文件位于 C/Program Files/PostgreSQL/9.0/include/libpq-fe.h【问题讨论】:
感谢您编写了一个很好、清晰、详细的问题,让您立即清楚地知道出了什么问题以及为什么。如果可以的话,我会 +5。 【参考方案1】:您不能混合和匹配本机 Windows 代码和 Cygwin 代码。如果您想链接到libpq
,您需要cygwin 构建libpq
,并且您需要确保在PATH
上找到的pg_config
版本是cygwin 版本.来自本机 Windows 构建的 pg_config
将产生 Cygwin 工具无法理解的输出,即使可以,它们也无法成功链接到本机库并使用它运行。
由于我不再使用 Cygwin,我无法就当前安装 libpq
的方式提供任何建议。大概在 Cygwin 的包管理中有一个 lib,它会被称为 postgresql-client
、libpq
等。
在这一点上,Cygwin 是 PostgreSQL 的低优先级平台。鉴于 Ruby+Rails 和 PostgreSQL 都有本机 Windows 版本,您在这方面会遇到困难,我建议您使用这两种工具的本机版本。您仍然可以使用 msys bash 在类 unix 的 shell 环境中工作,如果不能选择 MSVC++,您还可以使用 MinGW 的 gcc 生成本机 Windows 可执行文件和库。
【讨论】:
您要查找的包是libpq-devel
。但是您应该知道,Rails 3.2 已经在 Cygwin Ports 存储库中以 ruby-rails
的形式提供。【参考方案2】:
这对我有用:
sudo apt-get install postgresql
sudo apt-get install libpq-dev
然后
gem install pg
【讨论】:
是cgywin相关的问题,所以是windows机器,不是Debian之类的以上是关于无法安装 pg gem (Rails 3 - Cygwin) - sh: : command not found的主要内容,如果未能解决你的问题,请参考以下文章
rails 4.2.0:无法在 ubuntu 14.04 上安装 pg gem
无法使用 Mavericks 在我的 Mac 上安装 PG gem