Невозможно установить 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' к моей команде.