рейки та libpq-dev неприємні залежності


12

Я не знаю, чи належить це питання сюди, але я зніму. Привіт. Я працюю на моїй машині з двома завантаженнями ubuntu 11.10 з Windows Vista. В Ubuntu я встановив RVM, rails gem та PostgreSQL (сервер Postgres, клієнт та інші пакети, такі як libpq5, тому що я встановив його через Software Center).

Я намагаюся розгорнути свій додаток на heroku, але, здається, мені потрібно встановити pg 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-клієнт, smbclient, чашки та багато інших пакунків.

Що мені робити, щоб вирішити це? І чи дійсно потрібно встановити pg gem на моїй локальній машині, щоб створити рейковий додаток з postgres як dbms? Чи є спосіб "здати" відповідальність, щоб замість цього включити pg gem в heroku?

Відповіді:


8

Справжнє рішення - як правильно вказав Аміт Патель , встановитиlibpq-dev


Ось вирішення, якщо ви не змогли налаштувати pg на вашій розробній машині. Ви можете використовувати sqlite у своїй локальній машині та pg в Heroku. Ось, що ви повинні мати у своєму Gemfile

group :production do
  gem 'pg'
end

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

І використовуйте цю команду для встановлення пакета, щоб ігнорувати виробничі дорогоцінні камені:

bundle install --without production

Будь ласка, майте на увазі, що не мати однакового середовища у виробництві та розробці машин не рекомендується.


Так, це правильна відповідь. +1, я роблю це весь час.
jrg

@jrg Ви відчуваєте якусь проблему, роблячи це? Я прошу, бо геройка каже, що "не рекомендується".
PatrixCR

Heroku не рекомендує його, тому що, як правило, ви хочете мати таку ж розробку env, як і сервер. Однак, поки ви використовуєте ActiveRecord або DataMapper і не пишете необроблений SQL, вам слід добре 99% часу. :)
jrg

1
@PatrixCR ні, heroku зробить це за тебе.
jrg

1
Використання sqlite є вирішувальним. Яке рішення тоді?
Аміт Патель

32

У мене сьогодні те саме питання. Я слідував за повідомленням Вам потрібно встановити postgresql-server-dev-XY для створення розширення на стороні сервера або libpq-dev для створення програми на стороні клієнта. Отже, знову встановлено додаток libpq-dev та bundle, і помилка зникла.

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

2
Це краще рішення, якщо ви хочете відобразити постгреси на вашій розроблювальній машині.
Collin White
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.