MacOS पर पूर्ण पोस्टग्रेज के बिना psql को स्थापित करने का सही तरीका?


99

आधिकारिक पेज में ऐसे मामले का उल्लेख नहीं है। लेकिन कई उपयोगकर्ताओं को केवल psqlस्थानीय डेटाबेस के बिना (मुझे यह AWS पर है) की आवश्यकता है। काढ़ा नहीं है psql


आपको क्या लगता है कि ऐसा करने के लिए "सही तरीका" मौजूद है, यह देखते हुए कि आपने आधिकारिक डाउनलोड पृष्ठ से लिंक किया है, जो कहता है कि कोई रास्ता नहीं है?
श्सविफ्ट

MacPorts पर उन लोगों के लिए, मैंने यहां क्या किया: superuser.com/questions/305031/…
sudo

4
@Ssift यह नहीं कहता कि कोई रास्ता नहीं है, बस यह नहीं कहता कि कोई रास्ता नहीं है।
sudo

जवाबों:


250

तुम भी libbreq स्थापित करने के लिए homebrew का उपयोग कर सकते हैं।

brew install libpq

यह आपको Postgres स्थापित किए बिना psql, pg_dump और अन्य क्लाइंट उपयोगिताओं का एक पूरा गुच्छा देगा।

आप फिर स्थापना निर्देशिका को अपने पथ पर जोड़ें। मेरे मामले में, निर्देशिका स्थान है:

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

14
सिमलिंक बनाने के बाद आकर्षण की तरह काम करता है: ln -s /usr/local/Cellar/libpq/10.3/bin/psql / usr / local / bin / psql
Engrost

20
आप ऐसा भी कर सकते हैं, brew link --force libpqलेकिन यह अन्य सहेलियों का एक समूह बना देगा जिन्हें आप नहीं चाहते / आवश्यकता हो सकती है।
डेव

2
सिम्लिंक डु पत्रिका ln -s /usr/local/Cellar/libpq/11.3/bin/psql /usr/local/bin/psql/ ln -s /usr/local/Cellar/libpq/11.3/bin/pg_dump /usr/local/bin/pg_dump/ln -s /usr/local/Cellar/libpq/11.3/bin/pg_restore /usr/local/bin/pg_restore
सिम्लिंक पत्रिका

प्रतीक जो libpq संस्करण पर निर्भर नहीं करते हैं:for cmd in psql pg_dump pg_restore; do ln -s ../opt/libpq/bin/$cmd /usr/local/bin/$cmd; done
डेविड हल

PATH=/usr/local/opt/libpq/bin:$PATHएक निर्देशिका में अपने मार्ग पर सभी आदेशों को जोड़ने के लिए, निर्देशिका नाम का उपयोग करके, libpqजो आपके द्वारा इंस्टॉल किए गए संस्करण के साथ नहीं बदलता है ।
जॉर्ज हॉकिन्स

42

Homebrew में वास्तव में केवल पोस्टग्रेज सूत्र है, और इसका कोई विशिष्ट सूत्र नहीं है जो केवल psqlटूल को स्थापित करता है।

तो psqlआवेदन प्राप्त करने के लिए "सही तरीका" वास्तव में पोस्टग्रेज सूत्र को स्थापित करना है, और आप "कैविट्स" अनुभाग के नीचे की ओर देखेंगे कि यह वास्तव में डेटाबेस नहीं चलाता है, यह सिर्फ आपके सिस्टम पर फाइलें डालता है। :

$  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

अब आप उपयोग कर सकते हैं psql रिमोट पोस्टग्रेज सर्वर से कनेक्ट करने के लिए , और एक स्थानीय एक नहीं चल रहा होगा, हालांकि आप अगर आप वास्तव में चाहते थे।

यह सत्यापित करने के लिए कि स्थानीय postgresडेमॉन नहीं चल रहा है, अपनी स्थापित होमब्रे सेवाओं की जाँच करें:

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

यदि आपके पास Homebrew सेवाएँ स्थापित नहीं हैं , तो बस

$ brew tap homebrew/services

... और आपको यह कार्यक्षमता मिलेगी। अधिक जानकारी के लिएHomebrew Services के , यह उत्कृष्ट ब्लॉग पोस्ट पढ़ें जो बताती है कि यह कैसे काम करता है


1
यह वास्तव में इस सवाल का जवाब नहीं देता है, जो "कैसे मैं psql स्थापित करता हूं (और शायद अन्य पोस्टग्रेज उपयोगिताओं को स्थापित किए बिना) पोस्टग्रेज स्थापित करने के लिए"। @ पीपीएस का जवाब stackoverflow.com/a/49689589/2469559 सही है।
बेंजामिन आर

2
IMO, यह बेहतर विकल्प है क्योंकि इसे brew linkचरण की आवश्यकता नहीं है । सूत्र में keg_only घोषणा के कारण libpq के साथ लिंक को मजबूर करना आवश्यक है। इस विशिष्ट जटिलता को देखते हुए , मैं इस सवाल के "सही" तरीके के रूप में इस सवाल का जवाब देता हूं। मैं मानता हूं कि कई उपयोगकर्ता अभी भी libpqदृष्टिकोण को पसंद करेंगे ।
एंड्रयू बोबुलस्की

36

libpq 11.2
MacOS & zsh या bash

नीचे काम करता है

  1. इंस्टॉल libpq
brew install libpq
  1. अद्यतन करें

    अगर उपयोग zsh:

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

    यदि बैश का उपयोग करें:

    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_profileयदि आप बैश का उपयोग कर रहे हैं।
हेनरी

1
@ हेनरीप हां, धन्यवाद, बैश बहुत अधिक सामान्य है, मेरा जवाब zsh पर आधारित था।
सीके

10

Libpq स्थापित करें:

 brew install libpq

फिर, एक सिमलिंक बनाएं:

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

आशा करता हूँ की ये काम करेगा।


9

यदि आपको वास्तव में पोस्टग्रैक्स्ल की आवश्यकता नहीं है, तो आपको लिब्रा का उपयोग करने के लिए अपना पथ बदलने की आवश्यकता नहीं है, बस लिंक करें libpq। डॉक्स कहते हैं कि एकमात्र कारण यह नहीं है कि PostgreSQL पैकेज के साथ संघर्ष से बचें।

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

मुझे पसंद है कि मुझे मैन्युअल रूप से सिमलिंक बनाने की आवश्यकता नहीं है। यह स्वीकृत उत्तर होना चाहिए। धन्यवाद!
demisx

0

मैंने इन सभी को वास्तव में असंतोषजनक पाया, खासकर यदि आपको पोस्टग्रेज के कई संस्करणों का समर्थन करना है। एक आसान समाधान यहाँ बायनेरिज़ को डाउनलोड करना है:

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

और psqlबिना किसी अतिरिक्त कदम के जिस डेटाबेस के खिलाफ आप काम कर रहे हैं, उस पर अमल करें।

उदाहरण:

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.