Невозможно установить жемчужину 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. Здесь необходимо выполнить следующие действия:
Ответ 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