Я пытаюсь установить pg gem, чтобы снова работать с моими проектами rails. Но я получаю такую ошибку:
Создание собственных расширений. Это может занять некоторое время ... ОШИБКА: Ошибка при установке pg: ОШИБКА: не удалось создать собственное расширение 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 - без-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} /
Файлы 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, я получаю следующее предупреждение:
Предупреждение: postgresql-9.2.4 уже установлен, он просто не связан
Если я попытаюсь связать
brew link postgresql Связывание /usr/local/Cellar/postgresql/9.2.4 ... Предупреждение: не удалось связать postgresql. Отключение…
Ошибка: не удалось создать символическую ссылку: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7 недоступен для записи. Вам следует изменить его разрешения.
Помогите, пожалуйста
ПРИМЕЧАНИЕ. Я уже установил инструменты командной строки для mavericks.
Если я удалю с помощью homebrew и попытаюсь установить снова, я получу эту ошибку:
==> Загрузка http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
################################################ ################ 100,0%==> Файл исправлений src / pl / plpython / 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 ==> Предостережения
Примечания к сборке
Если сборки 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 [extension name];
Например, чтобы загрузить расширение tablefunc в текущую базу данных, запустите: CREATE EXTENSION tablefunc;
Для получения дополнительной информации о команде CREATE EXTENSION см .:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html Дополнительные сведения о расширениях см .:
http://www.postgresql.org/ документы / 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 Или , если вы не хотите / не нуждаетесь в launchctl, вы можете просто запустить: pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start Предупреждение: не удалось связать postgresql. Отключение ... Ошибка:
brew link
шаг не был завершен успешно Формула создана, но не имеет символической ссылки в / usr / local. Вы можете попробовать еще раз, используя `brew link postgresql '==> Сводка 🍺 /usr/local/Cellar/postgresql/9.2 .4: 2831 файл, 38 МБ, построено за 4,9 минуты
РЕШЕНИЕ:
Я выполняю эту команду, чтобы изменить разрешение папки:
Судо Чоун jeanosorio / usr / local / share / man / man7
затем
brew link postgresql Linking /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
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
Используйте варево, чтобы получить
postgresql
Убедитесь, что у вас есть pg_config в установленном пиве. Я нашел свой в
Проверить через:
После этого установите
pg
драгоценный камень с помощьюисточник
ls /usr/local/Cellar/postgresql/9.*/bin/pg_config
чтобы найти реальный путь и объединитьenv ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=$(ls /usr/local/Cellar/postgresql/9.*/bin/pg_config)
Мне не удалось установить postgres через MacPorts. Вместо этого я установил Postgress.app . и позвонил
Примечание: в более новых версиях (по крайней мере, в 9.3) путь на самом деле:
/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
источник
Если у вас домашнее пиво, просто введите:
источник
gem install pg
Вот еще одна альтернатива, если вы хотите напрямую использовать установщик postgresql. Есть пара обручей, через которую вы должны перепрыгнуть после обновления до Mavericks. Вот что я сделал:
Сначала установите инструменты командной строки xcode:
Загрузите и установите последнюю версию PostgreSQL (9.3.1), в моем случае я просто использовал графический установщик. Вот ссылка на страницу загрузок:
Просто выберите все значения по умолчанию. В моем случае он установил postgres в следующий каталог, если вы установили его в другой каталог, просто запомните выбранный путь, потому что он вам понадобится в ближайшее время.
Если вы сейчас попытаетесь установить последнюю версию pg gem (0.17.0), вам нужно будет передать несколько параметров в командной строке. Вот что я использовал:
Если вы установили postgres в другое место, вам необходимо исправить путь к файлу pg_config.
Если он жалуется на отсутствие файла libpq.5.dylib при попытке установить pg gem, вам необходимо создать символическую ссылку, указывающую на фактическое местоположение этого файла. Postgres ищет его в вашем каталоге / usr / local / lib /, поэтому создайте там символическую ссылку и перенаправьте ее в ее фактическое местоположение. В моем случае пришлось запустить:
Как только вы это сделаете, попробуйте снова установить драгоценный камень, и, надеюсь, он будет работать для вас так же, как и для меня.
источник
Для меня в Йосемити мне не нужно было указывать
pg_config
путь. Следующее было сделано.Кажется, ключ архитектуры - это флаг.
источник
В моем случае (мне нужен PG 0.16.0 на Mavericks) я установил postgresql через MacPorts
а потом
Для последней версии вам нужно вычесть -v '0.16.0'
Если у вас установлен Homebrew, не устанавливайте MacPorts, пока не прочтете об их сосуществовании.
источник
Поместите недостающее
--with-pg-config
в файл конфигурации Bundler:/Users/<your_user>/.bundle/config
чтобы облегчить себе жизнь.Потом
bundle install
снова беги .источник
Это подходит для меня! (Postgres 93, mac ox 10.9.1) 1. скачать @ http://postgresapp.com/, а затем
источник
Я застрял в установке пакета на 3 дня. Пробовал все вроде добавления env ARCHFLAGS = "- arch x86_64" gem install pg - --with-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 / local / bin / pg_config
Я просто выполнил следующую команду, и произошло волшебство. конфигурация пакета build.pg --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
источник
В моем случае это не сработало, если вы не указали флаги арки, OS X 10.10.3 и postersApp 9.4
источник
Самый простой способ решить эту проблему - использовать Postgres.app и настроить мои env vars так, чтобы они работали
gem install pg
(вместо того, чтобы требовать--with-pg-config
флаг).Используя Homebrew Cask ,
источник
Вот что у меня сработало:
источник
В моем случае я удалил версию, установленную через homebrew, и переключился на Postgres.app (v9.3.4.2 на момент написания).
Это работало только при добавлении флагов архитектуры среды и указании пути к
pg_config
. Ваш пробег может отличаться, поэтому этот ответ может помочь с вариациямиpg_config
местоположения.Вот последняя полная команда, которая сработала у меня:
источник
sudo ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / bin / pg_config
источник
ARCHFLAGS="-arch x86_64" bundle install
Я получал ту же ошибку при запуске установки пакета в отношении pg gem (с использованием Mac OS X Mavericks). После нескольких часов исследований я нашел решение. Я установил postgres с помощью homebrew
После установки я создал новое приложение rails с помощью postgres. Я побежал
безрезультатно (получил ту же ошибку, что и вопрос). я использовал
чтобы выяснить, где был установлен мой postgres, он вернул
перед повторным запуском установки пакета мне пришлось изменить глобальный путь к build.pg, выполнив следующие
затем я снова запустил установку пакета и вуаля! Я использовал postgres, где его установил brew.
источник
В OS X Mavericks с последним приложением Postgres выполните следующие действия с привилегиями sudo
источник
Что сработало для меня на 10.9.3 с Xcode 5.1.1, было следующее:
Мне понадобился пг 0.17.1
источник
Для любой потерянной души, которая все еще имеет эту проблему без разрешения и имеет
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
ошибкаисточник
Прежде всего найдите расположение pg_config
Ответ /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 / настройка
тогда вы должны попробовать соответствующий вариант.
Спасибо.
ОЗУ
источник
У меня была та же проблема, это было решение, которое я нашел.
Если вы запустите
brew doctor
, он сообщит вам, что, вероятно, вы установили что-то без пива, которое изменило разрешения для некоторых папок, и поэтому вам нужно изменить разрешения для этой папки.Внутри
/usr/local/share/man
вы можете сделать следующее:sudo chown [yourusername] man7
А потом:
brew link postgres
Надеюсь, поможет!
источник
Точно так же после установки Mavericks «обновление пакета» вызывало ошибку в геме pg, который используется только в производственной среде, а не локально.
Я использую Brew для управления своими пакетами, и postgresql уже установлен, но все же я получал ошибку «no pg_config».
Исправление заключалось в том, чтобы просто «варить удаление postgresql», а затем «варить установку postgresql». После чего я сразу смог успешно запустить «обновление пакета».
источник
затем
работал 10.10.2
источник
Если, попробовав все здесь, он все равно не установится, попробуйте открыть Xcode и принять лицензионное соглашение.
источник
Для меня сообщение об ошибке выглядело так:
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
Как видно из сообщения об ошибке, он пытается выполнить команду / скрипт «pg_config». Так что просто добавьте его в путь из того места, где находится ваша установка Postgres. В моем случае я сделал:
export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH
затем
bundle
Вот и все.
источник
Postgres 9.4:
источник