Estou tentando instalar o pg gem para trabalhar novamente com meus projetos rails. Mas recebo este erro:
Construindo extensões nativas. Isso pode demorar um pouco ... ERRO: Erro ao instalar a página: ERRO: Falha ao construir a extensão nativa do gem.
/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If
a construção falhar, por favor tente novamente com --with-pg-config = / path / to / pg_config verificando por libpq-fe.h ... não Não é possível encontrar o cabeçalho 'libpq-fe.h * extconf.rb falhou * Não foi possível criar o Makefile por algum motivo, provavelmente falta de bibliotecas e / ou cabeçalhos necessários. Verifique o arquivo mkmf.log para obter mais detalhes. Você pode precisar de opções de configuração.
Opções de configuração fornecidas: --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 = / Users / jeanosorio / .rvm / rubies / ruby-2.0.0-p247 / bin / ruby --with-pg --without-pg --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} /
Os arquivos Gem permanecerão instalados em /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0 para inspeção. Resultados registrados em /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out
Tentei tudo o que encontrei no stackoverflow, mas ainda recebo este erro.
Se tento instalar o postgresql usando o brew, recebo o seguinte aviso:
Aviso: postgresql-9.2.4 já instalado, apenas não está vinculado
Se eu tentar ligar
brew link postgresql Linking /usr/local/Cellar/postgresql/9.2.4 ... Aviso: Não foi possível vincular postgresql. Desvinculando ...
Erro: Não foi possível criar um link simbólico para o arquivo: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7 não é gravável. Você deve alterar suas permissões.
Ajuda por favor
NOTA: Eu já instalei as ferramentas de linha de comando para independentes.
Se eu desinstalar usando o homebrew e tentar instalar novamente, recebo este erro:
==> Baixando http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
############################################################### #################### 100,0%==> Arquivo de patch de patch src / pl / plpython / arquivo de patch de Makefile contrib / uuid-ossp / uuid-ossp.c ==> ./configure --prefix = / usr / local / Cellar / postgresql / 9.2.4 - datadir = / usr / local / Cellar / postgresql / 9.2.4 / share / postgresql --docdir = / usr / local / Cellar / p ==> make install-world ==> Advertências
Notas de construção
Se as compilações do PostgreSQL 9 estiverem falhando e você tiver a versão 8.x instalada, pode ser necessário remover a versão anterior primeiro. Veja:
https://github.com/mxcl/homebrew/issues/issue/2510Criar / atualizar um banco de dados
Se esta é sua primeira instalação, crie um banco de dados com: initdb / usr / local / var / postgres -E utf8
Para migrar dados existentes de uma versão principal anterior (pré-9.2) do PostgreSQL, consulte:
http://www.postgresql.org/docs/9.2/static/upgrading.htmlCarregando extensões
Por padrão, o Homebrew constrói todas as extensões Contrib disponíveis. Para ver uma lista de todas as extensões disponíveis, na linha de comando do psql, execute:
SELECT * FROM pg_available_extensions;Para carregar qualquer um dos nomes de extensão, navegue até o banco de dados desejado e execute: CREATE EXTENSION [nome da extensão];
Por exemplo, para carregar a extensão tablefunc no banco de dados atual, execute: CREATE EXTENSION tablefunc;
Para obter mais informações sobre o comando CREATE EXTENSION, consulte:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html Para obter mais informações sobre extensões, consulte:
http://www.postgresql.org/ docs / 9.2 / static / contrib.htmlDe outros
Algumas máquinas podem exigir o provisionamento de memória compartilhada:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC Ao instalar o gem postgres, incluindo ARCHFLAGS é recomendado: ARCHFLAGS = "- arch x86_64" gem instalar pgPara instalar gems sem sudo, consulte o wiki do Homebrew.
Para que o launchd inicie o postgresql no login: ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents Em seguida, carregue o postgresql agora: launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist Ou , se você não quiser / precisar do launchctl, você pode apenas executar: pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start Aviso: Não foi possível vincular o postgresql. Desvinculando ... Erro: A
brew link
etapa não foi concluída com sucesso A fórmula criada, mas não está vinculada a / usr / local Você pode tentar novamente usando `brew link postgresql '==> Resumo 🍺 /usr/local/Cellar/postgresql/9.2 .4: 2831 arquivos, 38M, construído em 4,9 minutos
SOLUÇÃO:
Eu executo este comando para alterar a permissão da pasta:
sudo chown jeanosorio / usr / local / share / man / man7
Então
brew link postgresql Linking /usr/local/Cellar/postgresql/9.3.1 ... 421 links simbólicos criados
E finalmente:
sudo ARCHFLAGS = "- arch x86_64" gem install pg
Buscando: pg-0.17.0.gem (100%) Construindo extensões nativas. Isso pode demorar um pouco ... Instalação com sucesso pg-0.17.0
export CONFIGURE_ARGS="with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config"
gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
gem install pg -- --with-pg-config=/Applications//Postgres.app/Contents/Versions/9.3/bin/pg_config
Use cerveja para obter
postgresql
Verifique se você tem pg_config na mistura instalada. Eu encontrei o meu em
Verifique via:
Uma vez feito isso, instale a
pg
gema comfonte
ls /usr/local/Cellar/postgresql/9.*/bin/pg_config
para encontrar o caminho real e combinadoenv ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=$(ls /usr/local/Cellar/postgresql/9.*/bin/pg_config)
Não consegui instalar o postgres via MacPorts. Em vez disso, instalei Postgress.app . e chamado
Observação: nas versões mais recentes (pelo menos na 9.3), o caminho é na verdade:
/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
fonte
Se você tem homebrew, basta digitar:
fonte
gem install pg
Aqui está outra alternativa, caso você queira usar o instalador postgresql diretamente. Há alguns obstáculos que você precisa resolver para começar, depois de atualizar para os mavericks. Aqui está o que eu fiz:
Instale as ferramentas de linha de comando xcode primeiro:
Baixe e instale a última versão do PostgreSQL (9.3.1), no meu caso usei apenas o instalador gráfico. Aqui está o link para a página de downloads:
Basta escolher todos os padrões que ele oferece. No meu caso, ele instalou o postgres no seguinte diretório, se você instalou em um diretório diferente, lembre-se do caminho que você escolheu, pois você precisará dele em breve.
Se agora você tentar instalar a última pg gem (0.17.0), você precisará passar algumas opções na linha de comando. Isso é o que eu usei:
Se você instalou o postgres em um local diferente, será necessário corrigir o caminho para o arquivo pg_config.
Se reclamar da falta do arquivo 'libpq.5.dylib' ao tentar instalar o pg gem, você precisará criar um link simbólico apontando para a localização real desse arquivo. O Postgres está procurando por ele em seu diretório / usr / local / lib /, portanto, crie um link simbólico lá e redirecione-o para sua localização real. No meu caso, tive que executar:
Depois de fazer isso, tente instalar a gema novamente e espero que funcione para você da mesma forma que funcionou para mim.
fonte
Para mim, no Yosemite, não precisei especificar o
pg_config
caminho. O seguinte fez isso.Parece que a bandeira da arquitetura é a chave.
fonte
No meu caso (eu precisava do PG 0.16.0 no Mavericks), instalei o postgresql via MacPorts
e depois
Para a versão mais recente, você precisa deduzir -v '0.16.0'
Se você tem o Homebrew instalado, não instale MacPorts antes de ler sobre sua coexistência
fonte
Coloque o que falta
--with-pg-config
no arquivo de configuração do Bundler:/Users/<your_user>/.bundle/config
para tornar sua vida mais fácil.Então corra
bundle install
novamente.fonte
Isso funciona para mim! (Postgres 93, mac ox 10.9.1) 1. baixar @ http://postgresapp.com/ e então
fonte
Fiquei preso na instalação do pacote por 3 dias. Tentei tudo como adicionar env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config
Consegui ver o pg gem sendo instalado após este comando, mas ainda não estava instalando a partir do bundle install, o que foi uma dor porque eu não sabia o que escrever no Gemfile, exceto gem 'pg'
A coisa que finalmente funcionou para mim foi descobrir que meu pg_config estava em /Library/PostgreSQL/9.3/bin/pg_config e por padrão a instalação do pacote Gemfile está em / usr / local / bin / pg_config
Acabei de executar o seguinte comando e mágica aconteceu. bundle config build.pg --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
fonte
No meu caso, não funcionou se você não especificar os arch flags, OS X 10.10.3 e postersApp 9.4
fonte
A maneira mais fácil de resolver isso era usar Postgres.app e configurar meus env vars para que
gem install pg
funcionasse (em vez de exigir o--with-pg-config
sinalizador).Usando Homebrew Cask ,
fonte
Isso é o que funcionou para mim:
fonte
No meu caso, desinstalei a versão instalada via homebrew e mudei para Postgres.app (v9.3.4.2 no momento da escrita).
Pareceu funcionar apenas ao preparar os sinalizadores de arquitetura do ambiente e especificar o caminho para
pg_config
. Sua milhagem pode variar, então esta resposta pode ajudar com variações napg_config
localização de.Aqui está o comando final e completo que funcionou para mim:
fonte
sudo ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / bin / pg_config
fonte
ARCHFLAGS="-arch x86_64" bundle install
Eu estava recebendo o mesmo erro ao executar a instalação do pacote em relação ao pg gem (usando o Mac OS X Mavericks). Após horas de pesquisa, encontrei a solução. Eu instalei o postgres usando homebrew
Depois de instalá-lo, criei um novo aplicativo rails usando o postgres. Eu corri
sem sucesso (obteve o mesmo erro da pergunta). eu usei
para descobrir onde meu postgres foi instalado, ele retornou
antes de executar o bundle install novamente, tive que alterar o caminho global para build.pg executando o seguinte
então executei a instalação do bundle novamente e pronto! Eu usei o postgres onde o brew o instalou.
fonte
No OS X Mavericks com o aplicativo Postgres mais recente, faça o seguinte com privilégios sudo
fonte
O que funcionou para mim no 10.9.3 com o Xcode 5.1.1 foi o seguinte:
Eu precisava pg 0.17.1
fonte
Para qualquer alma perdida, ainda tem esse problema sem resolução e tem um ruby e um postgres
brew
instalados . Estas são as etapas a seguir para garantir:ruby
não foi instalada com o--universal
sinalizador.--universal
qual era a raiz final do problema.postgresql
corretamente cominitdb
ecreatedb
comandos (procure outras etapas para fazer isso).Xcode
(opcional) ecommand line tools
está instalado; no terminal:xcode-select --install
sudo xcodebuild -license
(se o Xcode estiver instalado) ou abra o aplicativo e aceite o contrato de licença.which ruby
,which gem
ewhich postgres
deve mostrar/usr/local/bin/ruby
,/usr/local/bin/gem
e com/usr/local/bin/postgres
respeito.No terminal, execute:
gem install pg -- --with-pg-config=/usr/local/bin/pg_config
env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
Certificando-me de que todas essas etapas foram satisfeitas, consegui resolver os seguintes erros:
ruby.h
erro de cabeçalhodeveloper tools installed first
errofonte
Em primeiro lugar, encontre a localização pg_config
A resposta é /Library/PostgreSQL/9.1/bin/pg_config em minha configuração (MAC Maverick)
Em seguida, tente instalar algo como abaixo
gem install pg - --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
se isso não funcionar, tente verificar de que maneira você instalou o postgresql
brew / mac port / setup
então você tem que tentar a opção relevante para o mesmo.
Obrigado.
RAM
fonte
Eu estava com o mesmo problema, essa foi a solução que encontrei.
Se você executar
brew doctor
, ele dirá que provavelmente você instalou algo sem fermentar que alterou as permissões em algumas pastas e, portanto, você precisa alterar as permissões de volta para você nessa pasta.No interior
/usr/local/share/man
, o que você pode fazer é o seguinte:sudo chown [yourusername] man7
E depois:
brew link postgres
Espero que ajude!
fonte
Da mesma forma, após instalar o 'pacote de atualização' do Mavericks, estava gerando um erro no pg gem, que só é usado na produção e não localmente.
Eu uso o Brew para gerenciar meus pacotes e o postgresql já estava instalado, mas ainda estava recebendo o erro 'no pg_config'.
A correção era apenas 'preparar a desinstalação do postgresql' e, em seguida, 'preparar a instalação do postgresql'. Depois disso, consegui imediatamente executar 'atualização de pacote' com sucesso
fonte
então
trabalhou em 10.10.2
fonte
Se depois de tentar tudo aqui ele ainda não instalar, tente abrir o Xcode e aceitar o contrato de licença.
fonte
Para mim, a mensagem de erro era assim:
Installing pg 0.18.4 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
...
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
Como mostra a mensagem de erro, ele está tentando executar o comando / script "pg_config". Portanto, basta adicioná-lo ao caminho de onde estiver a instalação do Postgres. No meu caso, eu fiz:
export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH
então
bundle
É isso aí.
fonte
Postgres 9.4:
fonte