MacOS'ta tam Postgres olmadan psql'yi kurmanın doğru yolu?


107

Resmi sayfa böyle bir durumdan bahsetmiyor. Ancak birçok kullanıcının yalnızca psqlyerel bir veritabanı olmadan ihtiyacı var (AWS'de sahibim). Brew yok psql.


Bir yolu olmadığını söyleyen resmi indirme sayfasına bağlantı verdiğiniz göz önüne alındığında, bunu yapmanın "doğru bir yolu" olduğunu düşünüyorsunuz?
Ssswift

MacPorts'dakiler için yaptığım şey şu: superuser.com/questions/305031/…
sudo

4
@Ssswift Bir yolu yok demiyor, sadece bir yolu var demiyor.
sudo

Yanıtlar:


269

Libpq'i kurmak için homebrew de kullanabilirsiniz.

brew install libpq

Bu size psql, pg_dump ve bir sürü başka istemci yardımcı programını Postgres kurmadan verecektir.

Daha sonra kurulum dizinini yolunuza eklersiniz. Benim durumumda, dizin konumu:

/usr/local/Cellar/libpq/10.3/bin

14
Sembolik bağ oluşturduktan sonra bir cazibe gibi çalışır: ln -s /usr/local/Cellar/libpq/10.3/bin/psql / usr / local / bin / psql
Engrost

21
Ayrıca yapabilirsiniz, brew link --force libpqancak bu, istemediğiniz / ihtiyaç duymayabileceğiniz bir dizi başka sembolik bağ oluşturacaktır.
Dave

2
ln -s /usr/local/Cellar/libpq/11.3/bin/psql /usr/local/bin/psqlln -s /usr/local/Cellar/libpq/11.3/bin/pg_dump /usr/local/bin/pg_dumpln -s /usr/local/Cellar/libpq/11.3/bin/pg_restore /usr/local/bin/pg_restore
symlinks

Libpq sürümüne bağlı olmayan simgeler:for cmd in psql pg_dump pg_restore; do ln -s ../opt/libpq/bin/$cmd /usr/local/bin/$cmd; done
David Hull

PATH=/usr/local/opt/libpq/bin:$PATHlibpqyüklediğiniz sürümle değişmeyen bir dizin adı kullanarak tek seferde yolunuza tüm komutları eklemek için.
George Hawkins

43

Homebrew yalnızca postgres formülüne sahiptir ve yalnızca psqlaracı yükleyen belirli bir formüle sahip değildir .

Dolayısıyla, psqluygulamayı almanın "doğru yolu" aslında postgres formülünü yüklemektir ve "uyarılar" bölümünün en altına doğru veritabanını gerçekten çalıştırmadığını, yalnızca dosyaları sisteminize koyduğunu göreceksiniz. :

$  brew install postgres
==> Downloading https://homebrew.bintray.com/bottles/postgresql-9.6.5.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring postgresql-9.6.5.sierra.bottle.tar.gz
==> /usr/local/Cellar/postgresql/9.6.5/bin/initdb /usr/local/var/postgres
==> Caveats
<snip>
To have launchd start postgresql now and restart at login:
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start
==> Summary
🍺  /usr/local/Cellar/postgresql/9.6.5: 3,269 files, 36.7MB

Artık psqluzak Postgres sunucularına bağlanmak için kullanabilirsiniz ve gerçekten isteseniz de yerel bir sunucu çalıştırmayacaksınız.

Yerel postgresdaemonun çalışmadığını doğrulamak için, kurulu homebrew hizmetlerinizi kontrol edin:

$ brew services list
Name       Status  User Plist
mysql      stopped      
postgresql stopped      

Homebrew Hizmetleri yüklü değilse , sadece

$ brew tap homebrew/services

... ve bu işlevi alacaksınız. Homebrew Hizmetleri hakkında daha fazla bilgi için , nasıl çalıştığını açıklayan bu mükemmel blog yazısını okuyun .


1
Bu aslında "postgres yüklemeden psql'yi (ve belki diğer postgres yardımcı programlarını) nasıl yüklerim" sorusuna cevap vermez. @ PPS'nin yanıtı stackoverflow.com/a/49689589/2469559 doğru olanıdır.
Benjamin R

2
IMO, bu daha iyi bir seçenektir çünkü brew linkadım gerektirmez . Formüldeki keg_only bildirimi nedeniyle bağlantıyı libpq ile zorlamak gereklidir . Bu özel karmaşıklık göz önüne alındığında , sorunun sorulduğunu yapmanın "doğru" yolu olarak bu cevabın yanında duruyorum. Yine de birçok kullanıcının bu libpqyaklaşımı tercih edeceğini biliyorum .
Andrew Bobulsky

38

libpq 11.2
MacOS & zsh veya bash

Aşağıda işler

  1. Yüklemek libpq
brew install libpq
  1. PATH güncellemesi

    zsh kullanıyorsanız:

    echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    

    bash kullanıyorsanız:

    echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
    source ~/.bash_profile
    

1
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profilebash kullanıyorsanız.
HenryC

1
@HenryC evet, teşekkürler, bash çok daha yaygın, cevabım zsh'a dayanıyordu.
CK

13

Postgresql'e gerçekten ihtiyacınız yoksa, o zaman libra kullanmak için yolunuzu değiştirmek zorunda bile değilsiniz, sadece bağlantı kurun libpq. Dokümanlar, olmamasının tek nedeninin PostgreSQL paketiyle çakışmaları önlemek olduğunu söylüyor.

brew uninstall postgresql
brew install libpq
brew link --force libpq

Sembolik bağlantıyı manuel olarak oluşturmak zorunda olmamam hoşuma gidiyor. Kabul edilen cevap bu olmalıdır. Teşekkür ederim!
demisx

12

Libpq'yi yükleyin:

 brew install libpq

Ardından bir sembolik bağlantı oluşturun:

ln -s /usr/local/opt/libpq/bin/psql /usr/local/bin/psql

Umarım yardımcı olur.


0

Bunların hepsini gerçekten yetersiz buldum, özellikle postgres'in birden çok sürümünü desteklemeniz gerekiyorsa. ÇOK daha kolay bir çözüm, ikili dosyaları buradan indirmektir:

https://www.enterprisedb.com/download-postgresql-binaries

Üstelik psql, üzerinde çalıştığınız veritabanıyla eşleşen yürütülebilir sürümü herhangi bir ekstra adım olmadan çalıştırın.

misal:

./path/to/specific/version/bin/psql -c '\x' -c 'SELECT * FROM foo;'

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.