Próbuję zainstalować pg gem, aby ponownie pracować z moimi projektami rails. Ale pojawia się ten błąd:
Tworzenie rozszerzeń natywnych. To może chwilę potrwać ... BŁĄD: Błąd podczas instalacji pg: BŁĄD: Nie udało się zbudować natywnego rozszerzenia 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
budowanie nie powiodło się, spróbuj ponownie z --with-pg-config = / path / to / pg_config sprawdzając libpq-fe.h ... nie Nie można znaleźć nagłówka 'libpq-fe.h * extconf.rb failed * Nie można utworzyć pliku Makefile z jakiegoś powodu, prawdopodobnie braku niezbędnych bibliotek i / lub nagłówków. Więcej informacji można znaleźć w pliku mkmf.log. Możesz potrzebować opcji konfiguracyjnych.
Dostępne opcje konfiguracji: --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 / 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} /
Pliki Gem pozostaną zainstalowane w /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0 do wglądu. Wyniki zarejestrowane w /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out
Wypróbowałem wszystko, co znalazłem w stackoverflow, ale nadal otrzymuję ten błąd.
Jeśli spróbuję zainstalować postgresql za pomocą brew, otrzymuję następujące ostrzeżenie:
Ostrzeżenie: postgresql-9.2.4 jest już zainstalowany, po prostu nie jest połączony
Jeśli spróbuję połączyć
brew link postgresql Linking /usr/local/Cellar/postgresql/9.2.4 ... Ostrzeżenie: nie można połączyć postgresql. Odłączam ...
Błąd: nie można pobrać pliku dowiązania symbolicznego: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7 nie jest zapisywalny. Powinieneś zmienić jego uprawnienia.
Prosimy o pomoc
UWAGA: już zainstalowałem narzędzia wiersza poleceń dla mavericks.
Jeśli odinstaluję za pomocą homebrew i spróbuję zainstalować ponownie, pojawia się ten błąd:
==> Pobieranie http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
################################################# ################ 100,0%==> Plik poprawek src / pl / plpython / Makefile Plik poprawek 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 ==> Ostrzeżenia
Tworzenie notatek
Jeśli kompilacje PostgreSQL 9 zawodzą i masz zainstalowaną wersję 8.x, być może będziesz musiał najpierw usunąć poprzednią wersję. Zobacz:
https://github.com/mxcl/homebrew/issues/issue/2510Utwórz / uaktualnij bazę danych
Jeśli jest to Twoja pierwsza instalacja, utwórz bazę danych z: initdb / usr / local / var / postgres -E utf8
Aby przeprowadzić migrację istniejących danych z poprzedniej głównej wersji (sprzed 9.2) PostgreSQL, zobacz:
http://www.postgresql.org/docs/9.2/static/upgrading.htmlŁadowanie rozszerzeń
Domyślnie Homebrew tworzy wszystkie dostępne rozszerzenia Contrib. Aby zobaczyć listę wszystkich dostępnych rozszerzeń, z wiersza poleceń psql, uruchom:
SELECT * FROM pg_available_extensions;Aby załadować dowolne nazwy rozszerzeń, przejdź do żądanej bazy danych i uruchom: CREATE EXTENSION [nazwa rozszerzenia];
Na przykład, aby załadować rozszerzenie tablefunc do bieżącej bazy danych, uruchom: CREATE EXTENSION tablefunc;
Więcej informacji na temat polecenia CREATE EXTENSION można znaleźć pod
adresem : http://www.postgresql.org/docs/9.2/static/sql-createextension.html Więcej informacji na temat rozszerzeń można znaleźć pod adresem :
http://www.postgresql.org/ docs / 9.2 / static / contrib.htmlInny
Niektóre maszyny mogą wymagać udostępnienia pamięci współdzielonej:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC Podczas instalowania klejnotu postgres, w tym ARCHFLAGS jest zalecane: ARCHFLAGS = "- arch x86_64" gem install strAby zainstalować klejnoty bez sudo, zobacz wiki Homebrew.
Aby uruchomić uruchamianie postgresql przy logowaniu: ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents Następnie, aby załadować postgresql teraz: launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist Lub , jeśli nie chcesz / potrzebujesz launchctl, możesz po prostu uruchomić: pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start Ostrzeżenie: Nie można połączyć postgresql. Odłączanie ... Błąd:
brew link
Krok nie został ukończony pomyślnie Formuła została zbudowana, ale nie jest dowiązana symbolicznie do / usr / local Możesz spróbować ponownie używając `brew link postgresql '==> Summary 🍺 /usr/local/Cellar/postgresql/9.2 .4: 2831 plików, 38 MB, zbudowany w 4,9 minuty
ROZWIĄZANIE:
Wykonuję to polecenie, aby zmienić uprawnienia do folderu:
sudo chown jeanosorio / usr / local / share / man / man7
Następnie
brew link postgresql Linking /usr/local/Cellar/postgresql/9.3.1 ... Utworzono 421 linków symbolicznych
I w końcu:
sudo ARCHFLAGS = "- arch x86_64" gem install pg
Pobieranie: pg-0.17.0.gem (100%) Tworzenie rozszerzeń natywnych. Może to chwilę potrwać ... Pomyślnie zainstalowano pg-0.17.0
źródło
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
Użyj naparu, aby się dostać
postgresql
Sprawdź, czy masz pg_config w zainstalowanym pliku brew. Znalazłem swoje w
Sprawdź przez:
Po zakończeniu zainstaluj
pg
klejnot za pomocąźródło
ls /usr/local/Cellar/postgresql/9.*/bin/pg_config
aby znaleźć prawdziwą ścieżkę i połączenv ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=$(ls /usr/local/Cellar/postgresql/9.*/bin/pg_config)
Nie mogłem zainstalować postgres przez MacPorts. Zamiast tego zainstalowałem Postgress.app . i zadzwonił
Uwaga: w nowszych wersjach (przynajmniej w wersji 9.3) ścieżka jest w rzeczywistości:
/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
źródło
Jeśli masz homebrew, po prostu wpisz:
źródło
gem install pg
Oto kolejna alternatywa na wypadek, gdybyś chciał bezpośrednio użyć instalatora postgresql. Po przejściu na Mavericks musisz przejść przez kilka obręczy. Oto co zrobiłem:
Najpierw zainstaluj narzędzia wiersza poleceń xcode:
Pobierz i zainstaluj najnowszą wersję PostgreSQL (9.3.1), w moim przypadku użyłem tylko graficznego instalatora. Oto link do strony pobierania:
Po prostu wybierz wszystkie podane wartości domyślne. W moim przypadku zainstalował postgres w następującym katalogu, jeśli zainstalowałeś go w innym katalogu, po prostu zapamiętaj wybraną ścieżkę, ponieważ będziesz jej wkrótce potrzebować.
Jeśli teraz spróbujesz zainstalować najnowszą pg gem (0.17.0), będziesz musiał podać kilka opcji w linii poleceń. Oto, czego użyłem:
Jeśli zainstalowałeś postgres w innej lokalizacji, musisz naprawić ścieżkę do pliku pg_config.
Jeśli narzeka na brakujący plik „libpq.5.dylib” podczas próby instalacji pg gem, musisz utworzyć dowiązanie symboliczne wskazujące na rzeczywistą lokalizację tego pliku. Postgres szuka go w twoim katalogu / usr / local / lib /, więc utwórz tam dowiązanie symboliczne i przekieruj je do jego rzeczywistej lokalizacji. W moim przypadku musiałem biec:
Gdy to zrobisz, spróbuj ponownie zainstalować klejnot i miejmy nadzieję, że zadziała to tak samo, jak u mnie.
źródło
Dla mnie w Yosemite nie musiałem określać
pg_config
ścieżki. Wykonano to następująco.Wygląda na to, że kluczem jest flaga architektury.
źródło
W moim przypadku (potrzebowałem PG 0.16.0 na Mavericks), zainstalowałem postgresql przez MacPorts
i wtedy
W przypadku najnowszej wersji musisz odjąć -v '0.16.0'
Jeśli masz zainstalowany program Homebrew, nie instaluj MacPorts, zanim przeczytasz o ich współistnieniu
źródło
Umieść brakujące
--with-pg-config
w pliku konfiguracyjnym Bundlera:/Users/<your_user>/.bundle/config
aby ułatwić sobie życie.Następnie biegnij
bundle install
ponownie.źródło
To działa dla mnie! (Postgres 93, Mac ox 10.9.1) 1. pobierz @ http://postgresapp.com/ i niż
źródło
Utknąłem na instalacji pakietu na 3 dni. Próbowałem Wszystko jak dodanie env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config
Mogłem zobaczyć, jak pg gem instaluje się po tym poleceniu, ale nadal nie instalował się z instalacji pakietu, co było uciążliwe, ponieważ nie wiem, co napisać w Gemfile z wyjątkiem gem 'pg'
Rzeczą, która ostatecznie pracował dla mnie było stwierdzić, że mój pg_config był w /Library/PostgreSQL/9.3/bin/pg_config i domyślnie Gemfile Bundle zainstalować spojrzenia w / usr / local / bin / pg_config
Po prostu uruchomiłem następujące polecenie i magia się wydarzyła. bundle config build.pg --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
źródło
W moim przypadku nie zadziałało, jeśli nie określisz flag arch, OS X 10.10.3 i plakatów App 9.4
źródło
Najłatwiejszym sposobem rozwiązania tego problemu było użycie Postgres.app i skonfigurowanie moich zmiennych env, aby
gem install pg
po prostu działały (zamiast wymagać--with-pg-config
flagi).Używając Homebrew Cask ,
źródło
Oto, co mi się udało:
źródło
W moim przypadku odinstalowałem wersję zainstalowaną przez homebrew i przerzuciłem się na Postgres.app (wersja 9.3.4.2 w momencie pisania).
Wydawało się, że działa tylko podczas dodawania flag architektury środowiska i określania ścieżki do
pg_config
. Twój przebieg może się różnić, więc ta odpowiedź może pomóc w różnicach wpg_config
lokalizacji.Oto ostatnie, kompletne polecenie, które zadziałało dla mnie:
źródło
sudo ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / bin / pg_config
źródło
ARCHFLAGS="-arch x86_64" bundle install
Otrzymałem ten sam błąd podczas uruchamiania instalacji pakietu dotyczącej pg gem (używając Mac OS X Mavericks). Po godzinach poszukiwań znalazłem rozwiązanie. Zainstalowałem postgres za pomocą homebrew
Po zainstalowaniu tego utworzyłem nową aplikację railsową przy użyciu postgres. Pobiegłem
bezskutecznie (otrzymałem ten sam błąd co pytanie). użyłem
aby dowiedzieć się, gdzie został zainstalowany mój postgres, zwrócił
Przed ponownym uruchomieniem instalacji pakietu musiałem zmienić ścieżkę globalną na build.pg, uruchamiając następujące polecenie
Następnie ponownie uruchomiłem instalację pakietu i voila! Użyłem postgresów, w których zainstalowałem brew.
źródło
W systemie OS X Mavericks z najnowszą aplikacją Postgres wykonaj następujące czynności z uprawnieniami sudo
źródło
To, co działało dla mnie w 10.9.3 z Xcode 5.1.1, było następujące:
Potrzebowałem pg 0.17.1
źródło
Dla każdej zagubionej duszy, która nadal ma ten problem bez rozwiązania i ma
brew
zainstalowany rubin i postgres . Oto następujące kroki, aby upewnić się, że:ruby
nie została zainstalowana z--universal
flagą.--universal
co było ostatecznym źródłem problemu.postgresql
poprawnie za pomocą poleceńinitdb
icreatedb
(poszukaj innych kroków, aby to zrobić).Xcode
(opcjonalnie) icommand line tools
jest zainstalowany; na terminalu:xcode-select --install
sudo xcodebuild -license
(jeśli zainstalowano Xcode) lub otwórz aplikację i zaakceptuj umowę licencyjną.which ruby
,which gem
Iwhich postgres
powinien pokazać/usr/local/bin/ruby
,/usr/local/bin/gem
i/usr/local/bin/postgres
szacunkiem.Na trasie terminalu:
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
Upewniając się, że wszystkie te kroki są spełnione, udało mi się rozwiązać następujące błędy:
ruby.h
błąd nagłówkadeveloper tools installed first
błądźródło
Przede wszystkim znajdź lokalizację pg_config
Odpowiedź to /Library/PostgreSQL/9.1/bin/pg_config w mojej konfiguracji (MAC Maverick)
Następnie spróbuj zainstalować coś takiego jak poniżej
gem install pg - --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config
jeśli to nie zadziała, spróbuj sprawdzić, w jaki sposób zainstalowałeś postgresql
brew / mac port / setup
wtedy musisz wypróbować odpowiednią opcję do tego samego.
Dziękuję Ci.
Baran
źródło
Miałem ten sam problem, to było rozwiązanie, które znalazłem.
Jeśli uruchomisz
brew doctor
, powie ci, że prawdopodobnie zainstalowałeś coś bez naparu, co zmieniło uprawnienia w niektórych folderach, więc musisz zmienić uprawnienia z powrotem do tego folderu.Wewnątrz
/usr/local/share/man
możesz wykonać następujące czynności:sudo chown [yourusername] man7
I wtedy:
brew link postgres
Mam nadzieję, że to pomoże!
źródło
Podobnie, po zainstalowaniu Mavericks 'bundle update' wyrzucał błąd na pg gem, który jest używany tylko na produkcji, a nie lokalnie.
Używam Brew do zarządzania moimi pakietami, a postgresql jest już zainstalowany, ale nadal otrzymuję błąd „no pg_config”.
Rozwiązaniem było po prostu „zaparz odinstalować postgresql”, a następnie „zaparzyć instalację postgresql”. Po czym od razu mogłem pomyślnie przeprowadzić „aktualizację pakietu”
źródło
następnie
pracował na 10.10.2
źródło
Jeśli po wypróbowaniu wszystkiego tutaj nadal nie można zainstalować, spróbuj otworzyć Xcode i zaakceptować umowę licencyjną.
źródło
U mnie komunikat błędu wyglądał tak:
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
Jak pokazuje komunikat o błędzie, program próbuje wykonać polecenie / skrypt „pg_config”. Więc po prostu dodaj go do ścieżki z dowolnego miejsca instalacji Postgres. W moim przypadku zrobiłem:
export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH
następnie
bundle
Otóż to.
źródło
Postgres 9.4:
źródło