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

Я пытаюсь установить гем pg, чтобы снова работать с моими проектами 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... нет Не могу найти 'libpq-fe.h header * extconf.rb failed * Не удалось создать 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=/ Пользователи /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

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

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

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

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

brew link postgresql Linking /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 недоступен для записи. Вы должны изменить его разрешения.

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

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


Если я удаляю с помощью 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 [имя расширения];

Например, чтобы загрузить расширение tablefunc в текущей базе данных, запустите: 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 При установке gem postgres рекомендуется использовать ARCHFLAGS: ARCHFLAGS="-arch x86_64" gem install pg

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

Чтобы запустить startg, запустите 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. Unlinking... Ошибка: brew link шаг не завершился успешно Формула построена, но не вставлена ​​в / usr / local. Вы можете повторить попытку, используя `brew link postgresql' ==> Резюме /usr/local/Cellar/postgresql/9.2.4: 2831 файл, 38M, построено за 4,9 минуты


РЕШЕНИЕ:

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

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

затем

ссылка brew 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

28 ответов

Решение

Если вы хотите избежать использования 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/'

Используйте варево, чтобы получить 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

Я не смог установить 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

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

$ brew install postgresql

Для меня на Йосемити мне не нужно было указывать pg_config дорожка. Следующее получилось.

brew install postgresql
sudo env ARCHFLAGS="-arch x86_64" gem install pg

Похоже, флаг архитектуры является ключом.

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

Сначала установите инструменты командной строки 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, вам нужно создать символическую ссылку, указывающую на фактическое местоположение этого файла. Postgres ищет его в каталоге /usr/local/lib/, поэтому создайте там символическую ссылку и перенаправьте ее в ее фактическое местоположение. В моем случае мне пришлось бежать:

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

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

Поместите пропавший --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 снова.

Это подходит для меня! (Postgres 93, mac ox 10.9.1)1. скачать @ http://postgresapp.com/ и чем

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

В моем случае (мне нужен был 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, прежде чем читать об их сосуществовании

Я застрял на моей установке пакета в течение 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=/ библиотека / PostgreSQL / 9.3 / bin / pg_config

В моем случае это не сработало, если вы не укажете флаги 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

Самый простой способ решить эту проблему - использовать 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

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

      which postgres
/usr/local/opt/postgresql@12/bin/postgres

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

      gem install pg -- --with-pg-config=/usr/local/opt/postgresql@12/bin/pg_config

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

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

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

В моем случае я удалил версию, установленную через 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 

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

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

Вот и все.

Для любой потерянной души, у которой все еще есть эта проблема без разрешения и есть 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 gem (используя Mac OS X Mavericks). После нескольких часов исследований я нашел решение. Я установил postgres с помощью доморощенного

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 установил его.

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

sudo find / -name "pg_config" -print

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

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

gem install pg - --with-pg-config=/ Библиотека /PostgreSQL/9.3/bin/pg_config

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

Brew / Mac порт / настройки

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

Спасибо.

Баран

В 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

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

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

Мне нужен был pg 0.17.1

sudo su 

затем

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

работал на 10.10.2

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

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

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

sudo chown [yourusername] man7

А потом:

brew link postgres

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

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

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

Исправление состояло в том, чтобы просто "brew uninstall postgresql", а затем "brew install postgresql". После чего я сразу смог успешно запустить "обновление пакета"

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

Postgres 9.4:

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

Постгрес тоже работал на меня. (Postgres 93, mac ox 10.9.1)1. скачать @ 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' к моей команде.

Другие вопросы по тегам