Estou tentando instalar o PostgreSQL for Rails no Mac OS X 10.6. Primeiro, tentei a instalação do MacPorts, mas não correu bem, e fiz a instalação do DMG com um clique. Isso pareceu funcionar.
Eu suspeito que preciso instalar os pacotes de desenvolvimento do PostgreSQL, mas não tenho idéia de como fazer isso no OS X.
Aqui está o que recebo quando tento fazer sudo gem install pg
:
$ sudo gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /Library/PostgreSQL/8.3/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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=/System/Library/Frameworks/Ruby.framework/Versions/1.8/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
--with-pqlib
--without-pqlib
--with-libpqlib
--without-libpqlib
--with-ms/libpqlib
--without-ms/libpqlib
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.11.0 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.11.0/ext/gem_make.out
ruby-on-rails
ruby-on-rails-3
postgresql
rubygems
Jason Swett
fonte
fonte
pg_config
? Isso deve facilitar a nossa ajuda.Respostas:
TRABALHOU!
fonte
env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config
Tentei a resposta mais bem avaliada aqui:
Mas quando tentei executar a instalação do pacote novamente, ele teve o mesmo erro. Então, tentei a instalação completa do pacote com ARCHFLAGS da seguinte forma:
Trabalhou para mim! Certifique-se de substituir x86_64 pelo i386, dependendo da arquitetura que você possui.
fonte
Eu estava tendo esse problema ao usar o .dmg do EnterpiseDB. Se é o mesmo que você usou, eu consegui especificar a arquitetura correta:
Existem alguns tutoriais na Web que dizem especificar uma arquitetura diferente (como "-arch x86_64" para pessoas que usavam o MacPorts), mas não estava funcionando para mim porque usei a instalação de arquivo único.
fonte
Se você estiver usando o Yosemite:
Então:
E (opcional) finalmente, se você deseja iniciar o autovacuum ...
fonte
Talvez você possa tentar este:
Para conhecer a arquitetura da sua biblioteca, você pode usar
que deu apenas 1 arquitetura no meu caso (instalado via homebrew):
fonte
Solução: reinstalou o PostgreSQL com o Homebrew.
fonte
Falsifique
gem
prefixando as variáveis de ambiente apropriadas. Se você estava instalando a partir do MacPorts, poderá seguir o seguinte procedimento:De lá, puxe a
LIBDIR
,INCLUDEDIR
,CPPFLAGS
,LIBS
eLDFLAGS
(o que eu acho que vai levá-lo em execução éLIBDIR
, no entanto). Então você executaria:Isso deve bastar para você. Deixe-me saber se isso não acontecer.
fonte
locate pg_config
CPPFLAGS
ouLDFLAGS
(não sei o que são isso, desculpe).locate pg_config
me mostrou algumas coisas, no entanto. E tentei apenas instalar o PostgreSQL via MacPorts e usar seu comando - não funcionou.LDFLAGS
não foi definido para o diretório que continhalibpq
. Veja acima para detalhes.O problema que tivemos foi bem estranho.
mas quando de fato instalamos um pacote, o bundler não foi instalado para a versão do ruby que foi instalada pelo rbenv; portanto, quando digitamos a instalação do pacote, ele utilizou o pacote do sistema.
Portanto, antes de executar a instalação do pacote configurável, certifique-se de ter instalado o bundler executando
fonte
Eu não acho que você precise dos arquivos de desenvolvimento do postgres, tudo o que você precisa deveria ter sido incluído no seu instalador. É mais provável que o caminho para o qual estão instalados não esteja no caminho do ambiente e, portanto, o gem não pode encontrá-los quando ele tenta compilar a página.
Você não deve executar
gem install pg
como root, na verdade, se o fizer, é provável que o PATH (PATH do root, se for executado com o sudo) não contenha as informações necessárias.Normalmente, o seguinte funciona para mim:
fonte
gem install pg
(juntamente com os dois comandos anteriores) em vez desudo gem install pg
ainda fornece exatamente os mesmos resultados./Library/PostgreSQL/...
para o local correto de onde está a sua cópia da instalação do postgres?sudo port install postgresql83 postgresql83-server
, semelhante a estas instruções: flux88.com/2010/06/installing-postgresql-for-rails-on-mac-os-x . Parece que o instalador independente é de 32 bits, então você deseja definir seus sinalizadores de arco para 32 bits, mesmo que sua máquina seja de 64 bits. Se você não conseguir fazê-lo funcionar, sugiro desinstalar e reinstalar via MacPorts e tentar as instruções acima. Espero que ajude!Isto é o que finalmente fiz por mim (combinação de várias soluções fornecidas antes, juntamente com outras postagens):
$ sudo env ARCHFLAGS = "- arch x86_64" gem install pg - com-pg-include = / Biblioteca / PostgreSQL / 9.6 / include /
fonte
A
ARCHFLAGS
resposta que outros propuseram não funcionará se você, de alguma forma, tiver uma versão de 64 bits do postgres (que o homebrew instalará) e uma versão de 32 bits do ruby. Por alguma razão,rbenv
insiste em construir o ruby 1.9.2-p290 como 32 bits para mim, o que torna impossível vincular-se ao postgres de 64 bits.Verifique a arquitetura do seu binário ruby com
ou se estiver usando rbenv
E compare com o seu postgres:
Se houver uma incompatibilidade, você precisará reinstalar o postgres ou o ruby. Com o rbenv, resolvi isso mudando para uma versão diferente: em
1.9.3-p194
vez de1.9.2-p290
.fonte
Foi assim que fiz funcionar no Mavericks. Nota: Eu já tinha instalado o postgresql 9.3 a partir do homebrew.
Atualize o Xcode para 5.0 na App Store
Instalar ferramentas de desenvolvedor de linha de comando
xcode-select --install
Concorde com a licença do Xcode
sudo xcodebuild -license
Instalar gema
ARCHFLAGS = "- arch x86_64" instalação da gema pág.
fonte
Então basicamente eu fiz isso ;-)
fonte
Provavelmente estou um pouco atrasado para a festa aqui, mas no meu caso eu estava usando rbenv e atualizando para o Ruby 2.2.3. Eu tive que instalar o Bundler para fazer o meu funcionar, eu tinha uma versão antiga do sistema.
gem install bundler
fonte
Como mencionado acima, isso tem a ver com o fato de ter dois ruby archs na rbenv, o
/usr/bin/ruby: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [i386:Mach-O executable i386]
que eu tinha que fazer era simplesmente instalar opg
gem forçando ox86_64
arco a ser usado com este comando:sudo env ARCHFLAGS="-arch x86_64" gem install pg
Lembre-
bash_profile
se de atualizar seuAdicione o caminho do seu postgres, neste caso, estou usando o app Postgres (
OSX
) em vez debrew
( https://postgresapp.com/ ) por padrão, este é o local:export PATH=/Applications/Postgres.app/Contents/Versions/10/bin:$PATH
Recarregue o bash com
sudo vi ~/.bash_profile
Depois de fazer isso, finalmente consegui instalar com êxito
pg gem
Espero que isto ajude!
fonte
No Mac, você pode tentar o seguinte (funciona para mim): gem install pg - with-pg-include = / Library / PostgreSQL / 9.5 / include Fetching: pg-1.0.0.gem (100%) Criando extensões nativas com: ' with-pg-include = / Library / PostgreSQL / 9.5 / include 'Isso pode demorar um pouco ... Instalado com êxito pg-1.0.0 Analisando a documentação da pg-1.0.0 Instalando a documentação da ri da pg-1.0.0 Concluída a instalação da documentação para pg após 3 segundos 1 gema instalada
(nesta parte "/Library/PostgreSQL/9.5/include", você deve colocar o caminho do Postgres)
fonte