Rails FAQ 및 해결 방법
No pg_config...
문제 재현:
bundle
때 gm 패키지pg-0.18.4
설치 오류가 발생했습니다. 오류 코드는 다음과 같습니다.$ bundle
.
.
.
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/vagrant/.rvm/gems/ruby-2.3.0/gems/pg-0.18.4/ext
/home/vagrant/.rvm/rubies/ruby-2.3.0/bin/ruby -r ./siteconf20160415-7139-1cu08ba.rb 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=/home/vagrant/.rvm/rubies/ruby-2.3.0/bin/$(RUBY_BASE_NAME)
--with-pg
--without-pg
--enable-windows-cross
--disable-windows-cross
--with-pg-config
--without-pg-config
--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
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/home/vagrant/.rvm/gems/ruby-2.3.0/extensions/x86_64-linux/2.3.0/pg-0.18.4/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /home/vagrant/.rvm/gems/ruby-2.3.0/gems/pg-0.18.4 for inspection.
Results logged to /home/vagrant/.rvm/gems/ruby-2.3.0/extensions/x86_64-linux/2.3.0/pg-0.18.4/gem_make.out
.
.
.
An error occurred while installing pg (0.18.4), and Bundler cannot continue.
Make sure that `gem install pg -v '0.18.4'` succeeds before bundling.
해결 방안: 우선 급하게 알림을 누르지 마십시오. 이 문제가 발생하면 PostgreSQL을 설치하지 않았거나 pgsql의 경로를 지정하지 않았을 수도 있습니다.PostgreSQL이 설치되지 않은 경우 전송문을 클릭하여 설치(주의: 실행
yum install postgresql-server
후 문서 설치 pgsql의 확장을 계속 내려다보면 가장 설치하는 PostgreSQL은 9입니다.X 이상의 버전, 그렇지 않으면 많은 새로운 기능을 사용할 수 없습니다.)영어를 잘 못하는 학생은 이 블로그 PostgreSQL 초보자에게 입문해 보세요.1단계: 패키지 Ubuntu 설치libpq-dev
명령은 다음과 같습니다.$ apt-get install libpq-dev
CentOS/Reth에서 다음 명령을 수행합니다.
$ yum install postgresql-devel
단계 2: 당신의 pgsql 설치 디렉터리를 찾았습니다. 저는
/usr/pgsql-9.4
에 있습니다. 시스템에 따라 다를 수도 있습니다.3단계:
/usr/local/pgsql
뒤에 pgsql 디렉터리에 있는 pg_config 파일, 주의with-pg-config
앞에 두 개--with-pg-config
가 있습니다$ gem install pg -v '0.18.4' -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config
4단계: 명령
-
재실행pgsql에 연결할 수 없습니다.
질문 재현: 실행
bundle
후 브라우저에서 항목 첫 페이지를 열면 다음 문제가 발생합니다PG::ConnectionBad (FATAL: Ident authentication failed for user "postgres"
):
activerecord (4.2.3) lib/active_record/connection_adapters/postgresql_adapter.rb:655:in `initialize'
activerecord (4.2.3) lib/active_record/connection_adapters/postgresql_adapter.rb:655:in `new'
activerecord (4.2.3) lib/active_record/connection_adapters/postgresql_adapter.rb:655:in `connect'
activerecord (4.2.3) lib/active_record/connection_adapters/postgresql_adapter.rb:242:in `initialize'
activerecord-postgis-adapter (3.1.0) lib/active_record/connection_adapters/postgis_adapter.rb:51:in `initialize'
.
.
.
해결 방안:
rails s -b 0.0.0.0 -p 3000
파일을 찾았습니다. 일반적으로 pg_hba.conf
디렉터리에 있습니다. 수정된 후에 효력이 발생하지 않으면 /var/lib/pgsql/data
디렉터리에 다른 데이터 디렉터리가 있는지 확인하십시오.시스템 환경에 따라 다릅니다./var/lib/pgsql
또는 vim
를 사용하여 단계 1:$ vim /var/lib/pgsql/data/pg_hba.conf
2단계:
vi
+shift
를 누른 채 커서가 배치된 파일 아래쪽을 누르고 g
편집 모드로 들어가 METHOP을md5 검증으로 수정합니다.완료 후 i
+ shift
를 눌러 명령 모드로 들어가고 :
를 입력하여 편집을 완료합니다.다음은 수정 효과.
.
.
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
3단계: 서비스 재개
wq
$ service postgresql restart
type "json" does not exist
문제 재현: 실행 postgresql
중 오류가 발생했습니다. 오류 코드는 다음과 같습니다.$ rake db:migrate
.
.
.
== 20151208044806 CreateShops: migrating ======================================
-- create_table(:shops)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedObject: ERROR: type "json" does not exist
LINE 1: ...ying NOT NULL, "logo" character varying, "images" json, "reg...
.
.
.
해결 방안: 이러한 문제는 대부분 오래된 PostgreSQL이 설치되어 있기 때문이며, CentOS에서 실행rake db:migrate
은 기본적으로 8입니다.X 버전.버전을 업그레이드하면 됩니다.
단계 1: 이전 버전postgresql 삭제$ yum remove postgresql*
2단계: yum 업데이트$ yum update
단계 3:부터http://yum.pgrpms.org/reporpms/선택X 이상 버전에서 해당 rpm 패키지 다운로드$ wget https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-2.noarch.rpm
4단계: 다운로드된 rpm 패키지 사용하기$ rpm -ivh pgdg-centos94-9.4-2.noarch.rpm
5단계: 설치yum install postgresql
yum -y install postgresql94-server
6단계: 서비스 재개postgresql94-server
$ service postgresql-9.4 start
type "geography" does not exist
문제 재현: 실행 postgresql-94
중 오류가 발생했습니다. 오류 코드는 다음과 같습니다.$ rake db:migrate
.
.
.
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedObject: ERROR: type "geography" does not exist
LINE 1: ... "address" character varying NOT NULL, "location" geography(...
.
.
.
해결 방안: 이것은 설치 지원rake db:migrate
유형의 데이터가 확장되지 않았기 때문에 필자는 PostgreSQL-9.4 버전을 사용했다. 여기에서 9.을 제시한다.X 버전 솔루션입니다.후속적으로 다른 확장에 사용하기 편리하도록 여기도 함께 설치했습니다.
1단계: geography
명령어list
에 어떤 확장이 있는지 확인하십시오. 다음 효과를 보면 yum 라이브러리에 이런 확장이 있음을 알 수 있습니다.http://yum.pgrpms.org/reporpms/선택X 이상의 버전에서 해당하는 rpm 패키지 설치를 다운로드합니다.필요하지 않으면 1단계, 2단계를 건너뛰십시오$ yum list postgresql94-*
:fastestmirror
Repository pgdg94 is listed more than once in the configuration
Repository pgdg94-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirrors.yun-idc.com
* updates: mirrors.yun-idc.com
postgresql94.x86_64 9.4.7-1PGDG.rhel6 @pgdg94
postgresql94-libs.x86_64 9.4.7-1PGDG.rhel6 @pgdg94
postgresql94-server.x86_64 9.4.7-1PGDG.rhel6 @pgdg94
postgresql94-contrib.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-debuginfo.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-devel.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-docs.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-jdbc.x86_64 9.3.1101-1PGDG.rhel6 pgdg94
postgresql94-jdbc-debuginfo.x86_64 9.3.1101-1PGDG.rhel6 pgdg94
postgresql94-odbc.x86_64 09.03.0400-1PGDG.rhel6 pgdg94
postgresql94-odbc-debuginfo.x86_64 09.03.0400-1PGDG.rhel6 pgdg94
postgresql94-plperl.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-plpython.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-pltcl.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-python.x86_64 4.2-1PGDG.rhel6 pgdg94
postgresql94-python-debuginfo.x86_64 4.2-1PGDG.rhel6 pgdg94
postgresql94-tcl.x86_64 2.1.1-1.rhel6 pgdg94
postgresql94-tcl-debuginfo.x86_64 2.1.1-1.rhel6 pgdg94
postgresql94-test.x86_64
2단계: 설치 확장$ sudo yum install postgresql94-*
단계 3:postgis 설치 확장으로 이동합니다.우정 힌트: 원본 코드를 자체적으로 컴파일하면 시스템 컴파일 환경이 완전하지 않으면 오랫동안 괴롭힐 수 있으므로 직접yum로 설치하는 것을 권장합니다.글centos에서postgis를 설치하는 것을 추천합니다.저자는 PostgreSQL 소스에 EPEL 소스를 추가하여 직접yum를 설치하여 의존 문제를 통증 없이 해결한다.미친 학우 속도 get.여전히 오류가 발생하면 postgresql
을 실행하고 데이터베이스를 한 번 더 만들면 됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
$ rake db:migrate
.
.
.
== 20151208044806 CreateShops: migrating ======================================
-- create_table(:shops)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedObject: ERROR: type "json" does not exist
LINE 1: ...ying NOT NULL, "logo" character varying, "images" json, "reg...
.
.
.
$ yum remove postgresql*
$ yum update
$ wget https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-2.noarch.rpm
$ rpm -ivh pgdg-centos94-9.4-2.noarch.rpm
yum -y install postgresql94-server
$ service postgresql-9.4 start
문제 재현: 실행
postgresql-94
중 오류가 발생했습니다. 오류 코드는 다음과 같습니다.$ rake db:migrate
.
.
.
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedObject: ERROR: type "geography" does not exist
LINE 1: ... "address" character varying NOT NULL, "location" geography(...
.
.
.
해결 방안: 이것은 설치 지원
rake db:migrate
유형의 데이터가 확장되지 않았기 때문에 필자는 PostgreSQL-9.4 버전을 사용했다. 여기에서 9.을 제시한다.X 버전 솔루션입니다.후속적으로 다른 확장에 사용하기 편리하도록 여기도 함께 설치했습니다.1단계:
geography
명령어list
에 어떤 확장이 있는지 확인하십시오. 다음 효과를 보면 yum 라이브러리에 이런 확장이 있음을 알 수 있습니다.http://yum.pgrpms.org/reporpms/선택X 이상의 버전에서 해당하는 rpm 패키지 설치를 다운로드합니다.필요하지 않으면 1단계, 2단계를 건너뛰십시오$ yum list postgresql94-*
:fastestmirror
Repository pgdg94 is listed more than once in the configuration
Repository pgdg94-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirrors.yun-idc.com
* updates: mirrors.yun-idc.com
postgresql94.x86_64 9.4.7-1PGDG.rhel6 @pgdg94
postgresql94-libs.x86_64 9.4.7-1PGDG.rhel6 @pgdg94
postgresql94-server.x86_64 9.4.7-1PGDG.rhel6 @pgdg94
postgresql94-contrib.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-debuginfo.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-devel.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-docs.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-jdbc.x86_64 9.3.1101-1PGDG.rhel6 pgdg94
postgresql94-jdbc-debuginfo.x86_64 9.3.1101-1PGDG.rhel6 pgdg94
postgresql94-odbc.x86_64 09.03.0400-1PGDG.rhel6 pgdg94
postgresql94-odbc-debuginfo.x86_64 09.03.0400-1PGDG.rhel6 pgdg94
postgresql94-plperl.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-plpython.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-pltcl.x86_64 9.4.7-1PGDG.rhel6 pgdg94
postgresql94-python.x86_64 4.2-1PGDG.rhel6 pgdg94
postgresql94-python-debuginfo.x86_64 4.2-1PGDG.rhel6 pgdg94
postgresql94-tcl.x86_64 2.1.1-1.rhel6 pgdg94
postgresql94-tcl-debuginfo.x86_64 2.1.1-1.rhel6 pgdg94
postgresql94-test.x86_64
2단계: 설치 확장
$ sudo yum install postgresql94-*
단계 3:postgis 설치 확장으로 이동합니다.우정 힌트: 원본 코드를 자체적으로 컴파일하면 시스템 컴파일 환경이 완전하지 않으면 오랫동안 괴롭힐 수 있으므로 직접yum로 설치하는 것을 권장합니다.글centos에서postgis를 설치하는 것을 추천합니다.저자는 PostgreSQL 소스에 EPEL 소스를 추가하여 직접yum를 설치하여 의존 문제를 통증 없이 해결한다.미친 학우 속도 get.여전히 오류가 발생하면
postgresql
을 실행하고 데이터베이스를 한 번 더 만들면 됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.