На офіційній сторінці про такий випадок не згадується. Але багатьом користувачам потрібна лише psqlбез локальної бази даних (у мене на AWS). Варення не мають psql.
На офіційній сторінці про такий випадок не згадується. Але багатьом користувачам потрібна лише psqlбез локальної бази даних (у мене на AWS). Варення не мають psql.
Відповіді:
Ви також можете використовувати homebrew для встановлення libpq.
brew install libpq
Це дасть вам psql, pg_dump та цілу купу інших утиліт клієнта без встановлення Postgres.
Потім ви додаєте каталог встановлення до свого шляху. У моєму випадку розташування каталогу:
/usr/local/Cellar/libpq/10.3/bin
brew link --force libpqале це створить купу інших символічних посилань, які вам можуть не потрібні / потрібні.
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
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встановленої вами.
Homebrew насправді має лише формулу postgres і не має жодної конкретної формули, яка лише встановлює psqlінструмент.
Отже, «правильним способом» отримати psqlпрограму є насправді встановити формулу postgres , і ви побачите внизу розділу «застереження», що вона насправді не запускає базу даних, вона просто розміщує файли у вашій системі :
$ 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, і не буде запускати локальний, хоча ви могли б, якщо б справді хотіли.
Щоб переконатися, що локальний postgresдемон не запущений, перевірте встановлені служби домашньої роботи:
$ brew services list
Name Status User Plist
mysql stopped
postgresql stopped
Якщо у вас не встановлені служби Homebrew , просто
$ brew tap homebrew/services
... і ви отримаєте цю функціональність. Щоб отримати додаткову інформацію про послуги Homebrew , прочитайте цю чудову публікацію в блозі, яка пояснює, як це працює .
brew linkкроку. Примусове посилання за допомогою libpq необхідне через декларацію keg_only у формулі. Враховуючи це конкретне ускладнення , я вважаю, що ця відповідь є "правильним" способом зробити те, що задає питання. Я усвідомлюю, що багато користувачів все ж віддадуть перевагу такому libpqпідходу.
libpq 11.2
MacOS & zsh або bash
нижче працює
libpqbrew install libpq
оновити PATH
якщо використовувати zsh:
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
якщо використовувати bash:
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profileecho 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profileякщо ви використовуєте bash.
Якщо вам справді не потрібен postgresql, то вам навіть не потрібно змінювати свій шлях для використання бібліотеки, просто посилайте libpq. Документи кажуть, що єдина причина - це уникати конфліктів з пакетом PostgreSQL.
brew uninstall postgresql
brew install libpq
brew link --force libpq
Я знайшов все це насправді незадовільним, особливо якщо вам доводиться підтримувати кілька версій postgres. НАБАГАТО простішим рішенням є завантаження двійкових файлів тут:
https://www.enterprisedb.com/download-postgresql-binaries
І просто запустіть виконувану версію, psqlяка відповідає базі даних, з якою ви працюєте, без зайвих кроків.
приклад:
./path/to/specific/version/bin/psql -c '\x' -c 'SELECT * FROM foo;'
Ви можете спробувати brew install postgresql
Але це забезпечує приємний графічний інтерфейс для управління базами даних https://postgresapp.com
brew install postgresqlвстановити psql із самою базою даних :(