전체 PostgreSQL을 설치하지 않고 PSQL 설치

Bilal Shahid 2023년6월20일
  1. 전체 PostgreSQL을 설치하지 않고 psql 설치
  2. 전체 PostgreSQL 서버 패키지를 설치하지 않고 psql 설치
전체 PostgreSQL을 설치하지 않고 PSQL 설치

이 문서는 전체 PostgreSQL 서버 패키지를 설치하지 않고 psql을 설치하는 절차를 설명하기 위해 특별히 구성되었습니다.

전체 PostgreSQL을 설치하지 않고 psql 설치

전체 PostgreSQL 없이 psql을 설치하는 절차에는 기술적이고 복잡한 명령이 포함되지 않습니다. 대신 몇 분이면 되는 따라하기 쉬운 절차입니다.

전체 PostgreSQL 서버 패키지를 설치하지 않고 psql을 사용하는 절차는 전체 Postgres를 설치하지 않고 psql을 사용하는 데 사용되는 Homebrew 소프트웨어의 도움이 필요합니다.

설치를 진행하기 전에 아래에서 psql과 PostgreSQL의 차이점을 이해해 봅시다.

psql과 PostgreSQL 서버의 차이점

PostgreSQL 서버는 psql과 다릅니다. 이 섹션은 기사 전체에서 이 두 용어 사이의 혼동을 피하기 위해 미리 두 용어를 구별하도록 특별히 작성되었습니다.

PostgreSQL은 모든 다른 클라이언트 연결과 독립적으로 실행되는 서버입니다. pg_ctl 명령 또는 init 스크립트는 서버를 시작하고 중지합니다.

클라이언트가 연결되기 전에 서버를 시작해야 합니다. 반면 psql은 명령줄 클라이언트입니다. PostgreSQL 서버에 대한 터미널 기반 프런트 엔드입니다.

psql은 서버에 연결되어 쿼리를 입력하고 PostgreSQL에 쿼리를 발행하고 결과를 볼 수 있습니다. 파일에서 쿼리를 입력하거나 명령줄 인수를 사용할 수 있습니다.

어느 쪽이든 쿼리는 PostgreSQL 서버에 대한 문제이며 결과는 사용자에게 표시됩니다. 따라서 PostgreSQL 서버와 psql은 서로 다른 두 가지라는 점을 분명히 해야 합니다.

전체 PostgreSQL 서버 패키지를 설치하지 않고 psql 설치

Homebrew 소프트웨어는 사용자가 전체 PostgreSQL 패키지를 설치하지 않고도 psql을 쉽게 사용할 수 있도록 합니다. 대신 몇 가지 명령만 실행하면 PostgreSQL 서버의 기능과 함께 psql을 사용할 수 있습니다.

이 기사에는 psql을 사용하는 두 가지 방법이 포함되어 있습니다. 첫 번째 방법은 사용자가 PostgreSQL 서버 패키지를 설치할 필요가 없습니다. 그러나 두 번째 방법은 사용자가 백엔드에서 실행할 PostgreSQL 서버 패키지를 설치해야 합니다.

두 절차 모두 프로세스를 쉽게 수행할 수 있도록 자세히 설명되어 있습니다.

해결 방법 1: Homebrew 소프트웨어를 사용하여 PostgreSQL 서버 없이 psql 설치

이 솔루션은 Homebrew 소프트웨어를 사용하며 PostgreSQL 서버를 설치할 필요가 없습니다. PostgreSQL 서버 없이 psql을 사용하는 과정은 아래에서 설명합니다.

먼저 Homebrew 소프트웨어를 사용하여 libpq를 설치합니다. 다음 명령으로 이 작업을 수행할 수 있습니다.

brew install libpq

libpq를 성공적으로 설치하면 psql, pg_dump 및 기타 여러 클라이언트 유틸리티가 제공됩니다. 이러한 클라이언트 유틸리티를 사용하기 위해 PostgreSQL 서버를 설치할 필요는 없습니다.

사용자에게는 전체 PostgreSQL 서버 패키지에 포함된 것과 동일한 유틸리티가 제공됩니다. 또한, brew는 클라이언트 유틸리티를 "keg-only"로 설치합니다.

설치된 파일은 공유 bin, lib 및 기타 디렉토리에 연결되지 않습니다. 대신, 이러한 바이너리를 사용하려면 경로에 연결하고 추가해야 합니다.

바이너리를 연결하는 세 가지 절차가 아래에 설명되어 있습니다.

  1. 파일을 연결하는 첫 번째 절차는 경로를 업데이트하는 것입니다. 아래 언급된 명령을 사용하여 수행할 수 있습니다.

    • 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
      

    바이너리의 경로echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc로 업데이트되었을 수 있음을 기억하십시오.

  2. 경로 업데이트의 대안은 필요한 유틸리티에 대한 심볼릭 링크를 생성하는 것입니다. symlink 생성의 예는 다음과 같습니다.

    ln -s /usr/local/Cellar/libpq/10.3/bin/psql /usr/local/bin/psql
    

    위 명령에서 10.3 대신 설치된 버전을 사용해야 합니다.

  3. 바이너리를 경로에 연결하는 데 사용할 수 있는 마지막 절차는 모든 바이너리를 경로에 연결하도록 Homebrew 소프트웨어에 지시하는 것입니다. 예를 들어 다음 명령은 이 작업을 실행합니다.

    brew link --force libpq
    

    이 절차의 문제는 나중에 PostgreSQL 패키지를 설치할 수 없다는 것입니다. 또한 이 명령은 필요하지 않을 수 있는 많은 symlinks를 생성합니다.

해결 방법 2: Homebrew 소프트웨어를 사용하여 PostgreSQL 서버에 psql 설치

psql을 얻는 두 번째 솔루션은 PostgreSQL 서버를 다운로드하는 것입니다. 그러나 서버는 사용되지 않습니다. Homebrew에는 postgres 명령이 있지만 psql 명령은 없습니다.

PostgreSQL 패키지는 Homebrew postgres 명령을 사용하여 설치해야 합니다. caveats 섹션의 아래쪽을 보면 이것이 데이터베이스를 실행하지 않는다는 것을 알 수 있습니다.

대신 시스템에 파일만 저장합니다.

> 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 launched, 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 명령은 이제 원격 PostgreSQL 서버에 연결할 수 있습니다. 이 프로세스를 사용하면 시스템에서 로컬 서버가 실행되지 않습니다.

설치된 Homebrew 서비스를 확인하여 확인할 수도 있습니다.

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

Homebrew 서비스는 설치되어 있지 않아도 액세스할 수 있습니다. 다음 명령을 사용하여 기능을 얻을 수 있습니다.

> brew tap homebrew/services

따라서 첫 번째 솔루션을 사용하면 전체 PostgreSQL 서버 패키지를 설치하지 않고도 psql을 사용할 수 있습니다. 반면 두 번째 솔루션은 PostgreSQL 서버를 설치한 후 psql을 사용할 수 있도록 합니다.

그러나 두 번째 솔루션을 사용하면 로컬 PostgreSQL 서버를 실행하지 않고도 원격 서버에 연결할 수 있습니다.

작가: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub