rails 和 libpq-dev 的严重依赖关系

rails 和 libpq-dev 的严重依赖关系

我不知道这个问题是否适合这里,但我会尝试一下。嗨。我的机器上运行着 ubuntu 11.10 和 windows vista 双启动。在 Ubuntu 上,我安装了 RVM、rails gem 和 PostgreSQL(postgres 服务器、客户端和其他软件包,如 libpq5,因为我是通过软件中心安装的)。

我正在尝试在 Heroku 上部署我的应用程序,但似乎我需要安装前列腺素gem。我尝试安装它,但是却出现此错误:

错误:无法构建 gem 原生扩展。

/home/pcr/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb 检查 pg_config... 是

使用 /usr/bin/pg_config 中的配置值

您需要安装 postgresql-server-dev-XY 来构建服务器端扩展,或者安装 libpq-dev 来构建客户端应用程序。 您需要安装 postgresql-server-dev-XY 来构建服务器端扩展,或者安装 libpq-dev 来构建客户端应用程序。

检查 libpq-fe.h...* extconf.rb 失败 *

在 google 和 stackoverflow 上搜索了一段时间后,很多人说必须安装 libpq-dev。我尝试通过软件中心安装,但由于依赖项未满足而失败。我尝试通过 apt-get 安装,它说我需要 libkrb5-dev 和 krb5-multidev。我试了一下sudo apt-get install libpq-dev libkrb5-dev krb5-multidev,得到了这个:

以下软件包具有未满足的依赖项: krb5-multidev :

依赖:libkrb5-3 (= 1.9.1+dfsg-1ubuntu1) 但需要安装 1.9.1+dfsg-1ubuntu2.1

依赖:libk5crypto3 (= 1.9.1+dfsg-1ubuntu1) 但需要安装 1.9.1+dfsg-1ubuntu2.1

依赖:libgssapi-krb5-2(= 1.9.1+dfsg-1ubuntu1)但需要安装 1.9.1+dfsg-1ubuntu2.1 E:无法纠正问题,您持有损坏的软件包。

但是我的系统上已经有 libkrb5-3、libk5crypto3 和 libgssapi-krb5-2(所有版本均为 1.9.1+dfsg-1ubuntu2.1)!我认为可能需要的版本可能是 1.9.1+dfsg-1ubuntu1。因此,也许我必须先删除 1.9.1+dfsg-1ubuntu2.1 软件包。您认为删除它对我来说安全吗?我尝试删除其中一个,但软件中心警告我,它还会删除 postgres、openssl-client、smbclient、cups 和许多其他软件包。

我该怎么做才能解决这个问题?而且,是否真的有必要在我的本地机器上安装 pg gem 来创建使用 postgres 作为数据库管理系统的 rails 应用程序?有没有办法将包含 pg gem 的责任“移交”给 heroku?

答案1

我今天也遇到了同样的问题。我关注了消息您需要安装 postgresql-server-dev-XY 来构建服务器端扩展,或者安装 libpq-dev 来构建客户端应用程序。 因此再次安装了 libpq-dev 和 bundle rails app,错误消失了。

$ sudo apt-get install libpq-dev
$ bundle install

答案2

真正的解决方案是Amit Patel 指出, 安装libpq-dev


如果您无法在开发机器上设置 pg,这里有一个解决方法。您可以在本地机器上使用 sqlite,在 Heroku 中使用 pg。以下是您的 Gemfile 中应该包含的内容

group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
end

并使用此命令安装 bundle 来忽略生产 gem:

bundle install --without production

请记住,不建议在生产和开发机器中不使用相同的环境。

相关内容