레일 및 libpq-dev 불쾌한 종속성


12

이 질문이 여기에 속하는지 모르겠지만 한 번 찍겠습니다. 안녕하세요. 내 컴퓨터에서 Windows Vista가 설치된 우분투 11.10 이중 부팅을 실행 중입니다. 우분투에서 RVM, rails gem 및 PostgreSQL (postgres 서버, 클라이언트 및 libpq5와 같은 다른 패키지는 Software Center를 통해 설치했기 때문에)을 설치했습니다.

heroku에 내 앱을 배포하려고하는데 pg gem 을 설치 해야하는 것 같습니다 . 설치하려고했지만 대신이 오류가 발생했습니다.

오류 : gem 기본 확장을 빌드하지 못했습니다.

pg_config를위한 /home/pcr/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb 검사 ... 예

/ usr / bin / pg_config의 구성 값 사용

서버 측 확장을 빌드하려면 postgresql-server-dev-XY를 설치하거나 클라이언트 측 애플리케이션을 빌드하려면 libpq-dev를 설치해야합니다. 서버 측 확장을 빌드하려면 postgresql-server-dev-XY를 설치하거나 클라이언트 측 애플리케이션을 빌드하려면 libpq-dev를 설치해야합니다.

libpq-fe.h 확인 중 ... * extconf.rb 실패 *

구글 및 스택 오버 플로우를 잠시 검색 한 후 많은 사람들이 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, cup 및 기타 많은 패키지도 제거 할 것이라고 경고합니다.

이 문제를 해결하려면 어떻게해야합니까? 그리고 postgres를 dbms로 사용하여 rails 앱을 만들려면 로컬 시스템에 pg gem을 설치해야합니까? pg gem을 heroku에 포함시키는 책임을 "인계"하는 방법이 있습니까?

답변:


8

실제 솔루션은 Amit Patel이 올바르게 지적한 대로 설치하는 것입니다.libpq-dev


다음은 개발 시스템에서 pg를 설정할 수없는 경우의 해결 방법입니다. 로컬 컴퓨터에서 sqlite를 사용하고 Heroku에서 pg를 사용할 수 있습니다. 여기 Gemfile에 있어야 할 것이 있습니다

group :production do
  gem 'pg'
end

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

다음 명령을 사용하여 번들을 설치하여 프로덕션 gem을 무시하십시오.

bundle install --without production

프로덕션 및 개발 머신에서 동일한 환경을 사용하지 않는 것이 좋습니다.


네, 정답입니다. +1, 나는 항상 이것을한다.
jrg

@jrg이 작업을 수행하면 문제가 발생합니까? heroku가 "권장하지 않음"이라고 표시하기 때문에 묻습니다.
PatrixCR

Heroku는 일반적으로 서버와 동일한 개발 환경을 원하기 때문에 권장하지 않지만 ActiveRecord 또는 DataMapper를 사용하고 원시 SQL을 작성하지 않는 한 99 %가 좋습니다. :)
jrg

1
@PatrixCR 아니, heroku가 당신을 위해 그것을 할 것입니다.
jrg

1
sqlite를 사용하는 것이 해결 방법입니다. 그렇다면 해결책은 무엇입니까?
Patel Amit

32

오늘도 같은 문제가 있습니다. 서버 측 확장을 빌드하려면 postgresql-server-dev-XY를 설치하고 클라이언트 측 응용 프로그램을 빌드하려면 libpq-dev를 설치해야한다는 메시지를 따랐습니다 . 따라서 libpq-dev 및 bundle rails 앱을 다시 설치하면 오류가 사라졌습니다.

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

2
개발 머신에서 postgres를 미러링하고 싶다면 나를 위해 더 나은 솔루션입니다.
Collin White
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.