Неможливо встановити дорогоцінний камінь PG на моєму комп'ютері з Mavericks


103

Я намагаюся встановити дорогоцінний камінь, щоб знову працювати з моїми рейковими проектами. Але я отримую цю помилку:

Створення рідних розширень. Це може зайняти деякий час ... ПОМИЛКА: Помилка встановлення 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 ... ні Не вдалося знайти заголовок 'libpq-fe.h * extconf.rb не вдалося * Не вдалося створити Makefile через певну причину, можливо, відсутність необхідних бібліотек та / або заголовків. Перегляньте файл mkmf.log для отримання більш детальної інформації. Можливо, вам знадобляться параметри конфігурації.

Надані параметри конфігурації: - with-opt-dir --with-opt-dir --with-opt-include --without-opt-include = $ {opt-dir} / включають --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} / включають - -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 вже встановлений, він просто не пов'язаний

Якщо я спробую зв’язатись

Заварювання посилання 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 не можна записати. Ви повинні змінити його дозволи.

Допоможіть, будь ласка

ПРИМІТКА: Я вже встановив інструменти командного рядка для мавериків.


Якщо я видаляю за допомогою 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 / льох / postgresql / 9.2.4 / share / postgresql --docdir = / usr / local / льох / p ==> make install-world ==> Caveats

Побудувати нотатки

Якщо збірки PostgreSQL 9 виходять з ладу і у вас встановлена ​​версія 8.x, можливо, спочатку потрібно буде видалити попередню версію. Дивіться:
https://github.com/mxcl/homebrew/isissue/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 / статичний / contrib.html

Інший

Деякі машини можуть вимагати надання спільної пам'яті:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC При встановленні дорогоцінного коду, включаючи ARCHFLAGS, рекомендується: ARCHFLAGS = "- arch x86_64" встановити gem pg

Щоб встановити дорогоцінні камені без судо, див. Вікі Homebrew.

Щоб запустити запуск postgresql при вході в систему: ln -sfv /usr/local/opt/postgresql/*.plist ~ / Бібліотека / LaunchAgents Потім для завантаження postgresql зараз: startctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist Or , якщо ви не хочете / не потребуєте запускати, ви можете просто запустити: 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 хв


РІШЕННЯ:

Я виконую цю команду для зміни дозволу на папку:

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

Тоді

заварювання посилання postgresql Посилання /usr/local/Cellar/postgresql/9.3.1 ... 421 символьних посилань створено

І, нарешті:

sudo ARCHFLAGS = "- арка x86_64" gem встановити pg

Отримання: pg-0.17.0.gem (100%) Створення власних розширень. Це може зайняти деякий час ... Успішно встановлено pg-0.17.0

Відповіді:


252

Якщо ви хочете уникати використання 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/'

11
Лише зауважте, що ви все ще можете використовувати bundler, встановивши змінну config env:export CONFIGURE_ARGS="with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config"
film42

8
Якщо ви використовуєте Postgres 9.3 (останнє станом на сьогодні), ви можете зробити це: gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
cavneb

Використання Postgres93.app працювало, але довелося додати шлях бін до змінної PATH env, щоб встановити пакет.
mkhatib

5
Довелося це працювати, використовуючи gem install pg -- --with-pg-config=/Applications//Postgres.app/Contents/Versions/9.3/bin/pg_config
StevenNunez

1
Дякую! я отримував попередження: Не вдалося зв’язати postgresql. Скасування посилання ... Помилка: Не вдалося символізувати посилання на файл: ... не можна записати. Ви повинні змінити його дозволи. І все є помилкою, після того як я заварюю встановити / посилати postgresql Установка переходить до: Посилання /usr/local/Cellar/postgresql/9.3.4 ... що в моєму випадку ДУЖЕ КОНФЛІКТИВНА папка, завантаження pg та встановлення дорогоцінного камери за допомогою це вирішує проблему ДЯКУЄ !!!!!!
d1jhoni1b

74

Використовуйте варити, щоб отримати postgresql

brew install postgresql

Перевірте, чи є pg_config у встановленому вариві. Я знайшов своє в

/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

2
працював на мене після спроб багатьох різних речей. я просто повинен був переконатися в тому, щоб використовувати правильний номер версії (в моєму випадку 9.3.5_1)!
HK

1
Використовуйте 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)
Jesper Grann Laursen

Трохи більш детальний опис того, що відбувається тут deveiate.org/code/pg/README-OS_X_rdoc.html
Юлія Усанова

35

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


2
Це працює, але зауважте, що іноді Postgres.app встановлюється як Postgres <NN> .app, де NN - номер версії.
nimrodm

11

Якщо у вас є домашня мова, просто введіть:

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


1
Це працювало для мене - у мене вже встановлено PostgreSQL, але, мабуть, мені довелося його встановити ще раз, щоб оновити заголовки (?) Тоді я міг би це зробитиgem install pg
Crimbo

10

Ось ще одна альтернатива в тому випадку, якщо ви хочете використати інсталятор postgresql безпосередньо. Ви маєте перейти через кілька обручів, щоб почати, після оновлення до мавериків. Ось що я зробив:

Спочатку встановіть інструменти командного рядка xcode:

xcode-select --install

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

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

Просто виберіть усі типові параметри, які він дає вам. У моєму випадку він встановив postgres до наступного каталогу, якщо ви встановили його в інший каталог, просто запам'ятайте вибраний вами шлях, тому що він вам знадобиться незабаром.

/Library/PostgreSQL/9.3

Якщо ви зараз спробуєте встановити найновіший gg pg (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' під час спроби встановити дорогоцінний камінь, вам потрібно створити симпосилання, що вказує на фактичне розташування цього файлу. Postgres шукає його у каталозі / usr / local / lib /, тому створіть там симпосилання та перенаправіть його на своє фактичне місцезнаходження. У моєму випадку мені довелося бігати:

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

Як тільки ви це зробите, повторіть установку дорогоцінного каміння ще раз, і, сподіваємось, він буде працювати для вас так само, як і для мене.


9

Для мене на Yosemite мені не потрібно було вказувати pg_configшлях. Виконано наступне.

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

Схоже, ключовим є прапор архітектури.


5

У моєму випадку (мені знадобився 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 перед тим, як прочитати про їх співіснування


5

Помістіть відсутні --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знову біжи .


5

Це працює для мене! (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

4

Я затримався на моїй установці пакета протягом 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 після цієї команди, але все-таки він не встановлювався з пакету install, що було болем, тому що я знаю, що писати в Gemfile, крім gem 'pg'

Що, нарешті, для мене спрацювало - виявити, що мій pg_config був у /Library/PostgreSQL/9.3/bin/pg_config, і за замовчуванням встановити пакет Gemfile виглядає в / usr / local / bin / pg_config

Я просто запустив таку команду і магія сталася. bundle config build.pg --with-pg-config = / Бібліотека / PostgreSQL / 9.3 / бін / pg_config


4

У моєму випадку це не спрацювало, якщо не вказати прапорці арки, ОС 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

3

Найпростішим способом вирішити це було використовувати Postgres.app і налаштувати мої env vars, так що це gem install pgпросто працює (замість того, щоб вимагати --with-pg-configпрапор).

Використовуючи домашню кашку ,

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

2

Це те, що для мене спрацювало:

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

2

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

2

sudo ARCHFLAGS = "- арка x86_64" gem встановити pg - --with-pg-config = / usr / local / bin / pg_config


це також працювало для мене із встановленням пакету так:ARCHFLAGS="-arch x86_64" bundle install
d4n3

1

Я отримував таку ж помилку під час запуску пакета встановлення щодо gg gg (використовуючи Mac OS X Mavericks). Після годин дослідження я знайшов рішення. Я встановив postgres за допомогою homebrew

brew install postgres

Встановивши це, я створив новий додаток рейлів за допомогою postgres. Я побіг

bundle install

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

which psql

щоб зрозуміти, де встановлено моє повідомлення, він повернувся

/usr/local/bin/psql

перш ніж запустити інсталяцію пакета, мені довелося змінити глобальний шлях на build.pg, виконавши наступне

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

потім я побіг встановити пакет знову і вуаля! Я використав постгреси, де його встановили.


1

На 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

1

Що для мене працювало 10.9.3 з Xcode 5.1.1:

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

Мені знадобилося рг 0,17,1


1

Для будь-якої втраченої душі все ще не вдається вирішити цю проблему без вирішення і мати brewвстановлений рубін та пошта . Ось такі дії, щоб переконатися в цьому:

  • Переконайтеся, що ваша версія 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 помилка

1

Перш за все знайдіть 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

варити / налаштувати порт / mac

тоді вам доведеться спробувати відповідний варіант для того ж.

Дякую.

ОЗП


0

Я був з тією ж проблемою, це було рішення, яке я знайшов.

Якщо ви запустите brew doctor, він скаже вам, що, ймовірно, ви встановили щось без пивоваріння, що змінило дозволи на деяких папках, і так, вам потрібно змінити дозволи до вас у цій папці.

Всередині /usr/local/share/manви можете зробити наступне:

sudo chown [yourusername] man7

І потім:

brew link postgres

Сподіваюся, це допомагає!


0

Аналогічно, після встановлення Mavericks "оновлення пакетів" було викинуто помилку на дорогоцінний камінь pg, який використовується лише у виробництві, а не локально.

Я використовую Brew для управління своїми пакунками, і postgresql вже встановлений, але я все-таки отримував помилку "без pg_config".

Виправлення полягало в тому, щоб просто "варити видалення postgresql", а потім "варити інсталяцію postgresql". Після цього я одразу зміг успішно запустити "оновлення пакета"



0

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


0

Для мене повідомлення про помилку виглядало приблизно так:

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". Тож просто додайте його до шляху, де б ви не знаходилися. У моєму випадку я зробив:

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

тоді

bundle

Це воно.


-1

Постгреси 9.4:

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

Невелике пояснення було б приємно, щоб уникнути цього не втратившись у потопі 19 інших відповідей.
Бред Кох
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.