macOS에서 전체 Postgres없이 psql을 설치하는 올바른 방법은 무엇입니까?


101

공식 페이지 는 그러한 경우를 언급하지 않습니다. 그러나 많은 사용자 psql는 로컬 데이터베이스없이 만 필요 합니다 (AWS에 있습니다). BREW가 없습니다 psql.


방법이 없다고 말하는 공식 다운로드 페이지에 링크 한 경우,이를 수행하는 "올바른 방법"이 있다고 생각하는 이유는 무엇입니까?
Ssswift

MacPorts 사용자를
sudo

4
@Ssswift 방법이 없다고 말하지 않고 방법이 있다고 말하지 않습니다.
sudo

답변:


253

homebrew를 사용하여 libpq를 설치할 수도 있습니다.

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있지만 그것은 당신이 원하거나 필요하지 않을 수있는 다른 심볼릭 링크를 생성합니다.
Dave

2
symlinks du jour 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
hotzen

libpq 버전에 의존하지 않는 Symlink :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:$PATHlibpq설치 하는 버전에 따라 변경되지 않는 디렉토리 이름을 사용하여 경로에 모든 명령을 한 번에 추가합니다 .
George Hawkins

42

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데몬이 실행되고 있지 않은지 확인하려면 설치된 homebrew 서비스를 확인하십시오.

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

Homebrew Services가 설치되어 있지 않으면

$ brew tap homebrew/services

...이 기능을 사용할 수 있습니다. 에 대한 자세한 내용은 브루 서비스 읽고 어떻게 작동하는지 설명이 우수 블로그 게시물을 .


1
이것은 실제로 "postgres를 설치하지 않고 psql (그리고 아마도 다른 postgres 유틸리티)을 설치하는 방법"으로 요약되는 질문에 실제로 대답하지 않습니다. @PPS의 답변 stackoverflow.com/a/49689589/2469559 가 올바른 답변 입니다.
Benjamin R

2
IMO, 이것은 brew link단계가 필요하지 않기 때문에 더 나은 옵션 입니다. 수식 의 keg_only 선언으로 인해 libpq와의 링크를 강제 실행해야합니다 . 이 특정한 문제를 감안할 때 , 나는이 대답이 질문이 요구하는 것을 수행하는 "올바른"방법이라고 생각합니다. 그래도 많은 사용자가 여전히 libpq접근 방식을 선호한다는 것을 알고 있습니다.
Andrew Bobulsky

36

libpq 11.2
MacOS 및 zsh 또는 bash

아래 작품

  1. 설치 libpq
brew install libpq
  1. 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_profile

1
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profilebash를 사용하는 경우.
HenryC

1
@HenryC 예, 감사합니다. bash는 훨씬 더 일반적이며 내 대답은 zsh를 기반으로했습니다.
CK

10

libpq를 설치합니다.

 brew install libpq

그런 다음 심볼릭 링크를 만듭니다.

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

도움이되기를 바랍니다.


10

정말로 postgresql이 필요하지 않다면 libra를 사용하기 위해 경로를 변경할 필요도 없습니다 libpq. 문서는 그것이 아닌 유일한 이유는 PostgreSQL 패키지와의 충돌을 피하는 것이라고 말합니다.

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

심볼릭 링크를 수동으로 만들 필요가 없다는 점이 마음에 듭니다. 이것은 받아 들여진 대답이어야합니다. 감사합니다!
demisx

0

특히 여러 버전의 postgres를 지원해야하는 경우이 모든 것이 정말 불만족 스러웠습니다. 훨씬 더 쉬운 해결책은 여기에서 바이너리를 다운로드하는 것입니다.

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

psql추가 단계없이 작업중인 데이터베이스와 일치 하는 실행 가능한 버전을 실행하기 만하면 됩니다.

예:

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.