Невозможно установить жемчужину PG на мой Mac с Mavericks

Я пытаюсь установить pg gem, чтобы снова работать с моими проектами rails. Но я получаю эту ошибку:

Создание собственных расширений. Это может занять некоторое время... ОШИБКА: Ошибка установка pg: ERROR: Не удалось создать собственное расширение 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

не удается выполнить попытку, попробуйте еще раз с --with-pg-config =/path/to/pg_config проверка на libpq-fe.h... no Не удается найти заголовок libpq-fe.h * extconf.rb не удалось * Не удалось создать Makefile по какой-то причине, возможно, отсутствовали необходимые библиотеки и/или заголовки. Проверьте файл mkmf.log для получения более подробной информации. Вам может потребоваться конфигурация варианты.

Предоставляемые параметры конфигурации: --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/рубины/рубиново-2.0.0-P247/бен/рубин   --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-пг Пб = ${пг-Dir}/

Файлы Gem будут установлены в /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0 для проверки. Результаты, зарегистрированные в /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out

Я пробовал все, что я нашел в stackoverflow, но я все еще получаю эту ошибку.

Если я пытаюсь установить postgresql с помощью brew, я получаю следующее waring:

Предупреждение: postgresql-9.2.4 уже установлен, он просто не связан

Если я попытаюсь связать

brew link postgresql Связывание /usr/local/Cellar/postgresql/ 9.2.4... Предупреждение: Не удалось связать postgresql. Отмена связи...

Ошибка: не удалось создать файл symlink: /usr/local/Cellar/postgresql/ 9.2.4/share/man/man7/WITH.7 /usr/local/share/man/man 7 не доступен для записи. Вы должны изменить разрешения.

Помогите пожалуйста

ПРИМЕЧАНИЕ. Я уже установил инструменты командной строки для mavericks.


Если я удалю с помощью homebrew и попытаюсь установить его снова, я получаю эту ошибку:

== > Загрузка http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2

################################################## ################ 100,0%

== > Исправление исправления файла src/pl/plpython/Файл исправления файла 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/Подвал/р == > make install-world == > Предостережения

Примечания к сборке

Если сборки PostgreSQL 9 не работают, и у вас есть версия 8.x вам может потребоваться сначала удалить предыдущую версию. См:
https://github.com/mxcl/homebrew/issues/issue/2510

Создать/обновить базу данных

Если это ваша первая установка, создайте базу данных с помощью: initdb /usr/local/var/postgres -E utf8

Чтобы перенести существующие данные из предыдущей основной версии (до 9.2) PostgreSQL, смотри:
http://www.postgresql.org/docs/9.2/static/upgrading.html

Загрузка расширений

По умолчанию Homebrew создает все доступные расширения Contrib. Чтобы увидеть список всех доступных расширений, из командной строки psql, выполните:
SELECT * FROM pg_available_extensions;

Чтобы загрузить любое из имен расширений, перейдите к требуемой базе данных и запустите: CREATE EXTENSION [имя расширения];

Например, чтобы загрузить расширение tablefunc в текущей базе данных, run: CREATE EXTENSION tablefunc;

Для получения дополнительной информации о команде CREATE EXTENSION см.:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html Для дополнительную информацию о расширениях см. на странице: http://www.postgresql.org/docs/9.2/static/contrib.html

Другие

Некоторым машинам может потребоваться предоставление общей памяти:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPCПри установке драгоценного камня postgres рекомендуется использовать ARCHFLAGS: ARCHFLAGS = "- arch x86_64" gem install pg

Чтобы установить драгоценные камни без sudo, см. вики Homebrew.

Чтобы начать запуск postgresql при входе в систему:     ln -sfv/usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents Затем загрузить postgresql сейчас:     launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Или, если вы этого не сделаете want/need launchctl, вы можете просто запустить:     pg_ctl -D/usr/local/var/postgres -l/usr/local/var/postgres/server.log start Предупреждение: не удалось связать PostgreSQL. Unlinking... Ошибка: шаг brew link не завершился успешно Формула построена, но не связана символом в /usr/local Повторите попытку, используя ссылку brew postgresql ' == > Резюме 🍺/usr/local/Cellar/postgresql/9.2.4: 2831 файлов, 38M, построено за 4.9 минуты


РЕШЕНИЕ:

Я выполняю эту команду, чтобы изменить разрешение папки:

sudo chown jeanosorio/usr/local/share/man/man7

Тогда

brew link postgresql Связывание /usr/local/Cellar/postgresql/ 9.3.1... 421 созданных символических ссылок

И наконец:

sudo ARCHFLAGS = "- arch x86_64" gem install pg

Извлечение: pg-0.17.0.gem(100%) Создание собственных расширений. Это могло, это может потребуется некоторое время... Успешно установлен pg-0.17.0

Ответ 1

Если вы хотите избежать использования MacPorts, вы можете загрузить приложение Postgres и поместить его в каталог приложения.

Затем укажите местоположение недавно загруженного pg_config:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

Если вы запустили проблему с отсутствующими заголовками, попробуйте указать каталог include приложения:

gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/'

Ответ 2

Используйте brew, чтобы получить postgresql

brew install postgresql

Проверьте, что pg_config установлен в установленном brew. Я нашел себя в

/usr/local/Cellar/postgresql/9.3.3/bin/pg_config

Проверить через:

$ ls /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
> /usr/local/Cellar/postgresql/9.3.3/bin/pg_config

Как только вы закончите, установите драгоценный камень pg с помощью

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config

Ответ 3

Мне не удалось установить postgres через MacPorts. Вместо этого я установил Postgress.app. и называется

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

Примечание: в более новых версиях (по крайней мере, в 9.3) путь на самом деле: /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

Ответ 4

Вот еще одна альтернатива, если вы хотите напрямую использовать установщик postgresql. Там несколько обручей, с которыми вы должны прыгать, чтобы начать с обновления для мавериков. Вот что я сделал:

Сначала установите инструменты командной строки xcode:

xcode-select --install

Загрузите и установите последнюю версию PostgreSQL (9.3.1), в моем случае я просто использовал графический установщик. Здесь ссылка на страницу загрузки:

http://www.enterprisedb.com/products-services-training/pgdownload#osx

Просто выберите все значения по умолчанию, которые оно дает вам. В моем случае он установил postgres в следующий каталог, если вы установили его в другой каталог, просто запомните путь, который вы выбрали, потому что он вам понадобится в ближайшее время.

/Library/PostgreSQL/9.3

Если вы попытаетесь установить последний pg gem (0.17.0), вам нужно передать несколько параметров в командной строке. Это то, что я использовал:

ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

Если вы установили postgres в другое место, вам нужно будет исправить путь к файлу pg_config.

Если он жалуется на отсутствующий файл libpq.5.dylib при попытке установить pg gem, вам нужно создать символическую ссылку, указывающую на фактическое местоположение этого файла. Postgres ищет его в каталоге /usr/local/lib/, создавая там символическую ссылку и перенаправляя ее в свое фактическое местоположение. В моем случае мне пришлось запустить:

sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib

Как только вы это сделаете, повторите попытку снова установить драгоценный камень и, надеюсь, он будет работать для вас так же, как и для меня.

Ответ 5

Если у вас есть доморощенный, просто введите:

$brew установить postgresql

Ответ 6

Это работает для меня! (Postgres 93, mac ox 10.9.1) 1. download @http://postgresapp.com/ и

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config

Ответ 7

Для меня, на Yosemite, мне не нужно было указывать путь pg_config. Следующее сделало это. brew install postgresql sudo env ARCHFLAGS="-arch x86_64" gem install pg Похоже, что флаг архитектуры - это ключ.

Ответ 8

В моем случае (мне нужен PG 0.16.0 на Mavericks), я установил postgresql через MacPorts

sudo port install postgresql90

а затем

gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

Для последней версии вам нужно вычесть -v '0.16.0'

gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

Если у вас установлен Homebrew, не устанавливайте MacPorts перед тем, как прочитайте об их совместном использовании.

Ответ 9

Поместите отсутствующий --with-pg-config в конфигурационный файл Bundler: /Users/<your_user>/.bundle/config, чтобы облегчить вашу жизнь.

---
BUNDLE_BUILD__PG: --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
BUNDLE_BUILD__EXAMPLE_GEM: --other-configs
BUNDLE_BUILD__OTHER_EXAMPLE_GEM: --other-configs

Затем запустите bundle install снова.

Ответ 10

Я застрял на моем комплекте в течение 3 дней. Пробовал все как добавление env ARCHFLAGS = "- arch x86_64" gem install pg - - с-pg-config =/usr/local/Cellar/postgresql/9.3.5_1/bin/pg_config

Мне удалось увидеть установку pg gem после этой команды, но она не была установлена ​​из установки пакета, что было больно, потому что я не знаю, что писать в Gemfile, кроме gem 'pg'

Вещь, которая, наконец, работала для меня, заключалась в том, чтобы найти, что мой pg_config был в /Library/PostgreSQL/9.3/bin/pg_config, и по умолчанию установка пакета Gemfile выглядит в /usr/локальные/бен/pg_config

Я только что запустил следующую команду и волшебство. пакет конфигурации build.pg --with-pg-config =/Library/PostgreSQL/9.3/bin/pg_config

Ответ 11

В моем случае это не сработало, если вы не указали флагов arch, OS X 10.10.3 и postersApp 9.4

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- \--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

Ответ 12

Вот что это сработало для меня:

gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

Ответ 13

В моем случае я удалил версию, установленную через homebrew, и переключился на Postgres.app (v9.3.4.2 на момент письмо).

Казалось, что это срабатывает только при добавлении флагов архитектуры среды и указании пути к pg_config. Ваше увеличение может отличаться, поэтому этот ответ может помочь с изменениями в местоположении pg_config.

Вот окончательная, полная команда, которая работала для меня:

env ARCHFLAGS="-arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 

Ответ 14

sudo ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config =/usr/local/bin/pg_config

Ответ 15

Я получал ту же ошибку при запуске установки пакета относительно жемчуга pg (используя Mac OS X Mavericks). После нескольких часов исследований я нашел решение. Я установил postgres, используя homebrew

brew install postgres

После установки этого я создал новое приложение rails, используя postgres. Я побежал

bundle install

безрезультатно (получилась такая же ошибка, что и вопрос). Я использовал

which psql

чтобы выяснить, где были установлены мои postgres, он возвратил

/usr/local/bin/psql

перед запуском установки пакета снова нужно было изменить глобальный путь к build.pg, выполнив следующие

bundle config build.pg --with-pg-config=/usr/local/bin/pg_config

то я снова запустил пакет, и вуаля! Я использовал postgres, где brew установил его.

Ответ 16

Что работало для меня на 10.9.3 с Xcode 5.1.1, было следующее:

brew update
brew install postgresql 
gem install pg -v '0.17.1'

Мне понадобилось pg 0.17.1

Ответ 17

В OS X Mavericks с последним приложением Postgres выполните следующие действия с привилегиями sudo

env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

Ответ 18

Для любой потерянной души, все еще имеющей эту проблему без разрешения, и brew установлен ruby ​​ и postgres. Здесь необходимо выполнить следующие действия:

  • Убедитесь, что ваша версия ruby не установлена ​​с флагом --universal.
    • Это было труднее всего выяснить, у меня был --universal, который был последним корнем проблемы.
  • Убедитесь, что вы правильно инициализировали postgresql с помощью команд initdb и createdb (см. в других местах шаги для этого).
  • Убедитесь, что установлены Xcode (необязательно) и command line tools; на терминале:
    • xcode-select --install
    • sudo xcodebuild -license (если установлен Xcode) или открыть приложение и принять лицензионное соглашение.
    • Перезагрузите компьютер.
  • which ruby, which gem и which postgres должны показывать /usr/local/bin/ruby, /usr/local/bin/gem и /usr/local/bin/postgres с уважением.
  • При запуске терминала:

    • 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
  • Убедившись, что все эти шаги выполнены, я смог решить следующие ошибки:

    • ruby.h ошибка заголовка
    • developer tools installed first ошибка

Ответ 19

У меня была та же проблема, это было решение, которое я нашел.

Если вы запустите brew doctor, он скажет вам, что, возможно, вы установили что-то без brew, которые изменили разрешения для некоторых папок, и поэтому вам нужно изменить права доступа к вам в этой папке.

Внутри /usr/local/share/man вы можете сделать следующее:

sudo chown [yourusername] man7

И затем:

brew link postgres

Надеюсь, что это поможет!

Ответ 20

Аналогично, после установки обновления пакета Mavericks 'была выбрана ошибка для жемчуга pg, который используется только для производства, а не локально.

Я использую Brew для управления моими пакетами, и postgresql уже был установлен, но все же я получал ошибку "no pg_config".

Исправить было только "brew удалить postgresql", затем "brew установить postgresql". После этого я сразу смог успешно запустить 'bundle update'

Ответ 21

sudo su 

то

ARCHFLAGS="-arch x86_64" gem install pg -v '0.18'

работал 10.10.2

Ответ 22

Если после попытки все это здесь не будет установлено, попробуйте открыть Xcode и принять лицензионное соглашение.

Ответ 23

Для меня сообщение об ошибке выглядело так:

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

Как видно из сообщения об ошибке, он пытается выполнить команду / script "pg_config". Так что просто добавьте его в путь от места, где установлена ​​ваша установка Postgres. В моем случае я сделал:

export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH

затем

bundle

Что это.

Ответ 24

Прежде всего найдите местоположение pg_config

sudo find / -name "pg_config" -print

Ответ:/Library/PostgreSQL/9.1/bin/pg_config в моей конфигурации (MAC Maverick)

Затем попробуйте установить что-то вроде ниже

gem install pg - --with-pg-config =/Library/PostgreSQL/9.3/bin/pg_config

Если это не работает, попробуйте проверить, каким образом вы установили postgresql

brew/mac port/setup

тогда вам нужно попробовать соответствующую опцию.

Спасибо.

Рама

Ответ 25

Самый простой способ разрешить это - использовать Postgres.app и настроить мои env vars, поэтому gem install pg просто работает ( вместо того, чтобы требовать флаг --with-pg-config).

Использование Homebrew Cask,

brew cask install postgres
echo 'export PG_HOME=/Applications/Postgres.app/Contents/Versions/latest' >> ~/.bash_profile
echo 'export PATH="$PATH:$PG_HOME/bin"' >> ~/.bash_profile
source ~/.bash_profile

# now it just works
gem install pg

Ответ 26

Postgres работал и на меня. (Postgres 93, mac ox 10.9.1) 1. download @http://postgresapp.com/, а затем

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config

Очень важно убедиться, что вы получили номер версии прямо в имени папки Postgres.

Кроме того, я испробовал это исправление в другом приложении, и я продолжал получать ошибку, которая хотела иметь конкретную версию PG (в моем случае 0.16.0), поэтому мне пришлось добавить -v '0.16.0' в мою команду.

Ответ 27

Postgres 9.4:

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/Versions/9.4/bin/pg_config