웹사이트 검색

Linux에서 소스 코드를 사용하여 PostgreSQL을 설치하는 방법


오픈 소스 관계형 데이터베이스 관리 시스템인 PostgreSQL은 강력한 기능과 확장성으로 널리 알려져 있습니다. 많은 Linux 배포판은 패키지 관리자를 통해 PostgreSQL을 제공하지만 소스에서 설치하면 더 나은 사용자 정의 및 제어가 가능합니다.

이 글에서는 Linux 시스템에서 소스코드 설치를 이용하여 PostgreSQL 16을 설치하는 방법을 설명하겠습니다.

배포 패키지 관리자에서 더 쉬운 설치 방법을 원하는 경우 아래 지침을 따르십시오.

전제조건

PostgreSQL 설치 프로세스를 시작하기 전에 시스템이 다음 전제조건을 충족하는지 확인하세요.

  • Linux 배포판(이 가이드에서는 데모 목적으로 Debian을 사용합니다)
  • sudo 권한을 가진 루트가 아닌 사용자가 있는 Linux 시스템.
  • GCC, Make 등 필수 개발 도구가 설치됩니다.

1. Linux에 필수 구성 요소 설치

먼저, 그림과 같이 배포 패키지 관리자를 사용하여 GCC, Make 등 필수 개발 도구를 설치합니다.

CentOS, Fedora, Rocky LinuxAlma Linux와 같은 RHEL 기반 배포판:

sudo yum groupinstall development-tools
sudo yum install zlib-devel readline-devel libicu-devel

UbuntuLinux Mint와 같은 Debian 기반 배포판.

sudo apt install gcc build-essential zlib1g-dev libreadline6-dev libicu-dev pkg-config

2. PostgreSQL 소스 코드 다운로드

필요한 필수 구성 요소가 설치되면 시스템에서 직접 다음 wget 명령을 사용하여 공식 postgres 웹 사이트에서 소스 코드 tar 파일을 다운로드합니다. 글을 쓰는 시점에서 최신 버전은 PostgreSQL 16.1입니다.

wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2

다음으로 tar 명령을 사용하여 다운로드한 tarball 파일을 추출합니다. postgresql-16.1이라는 새 디렉터리가 생성됩니다.

tar -xvf postgresql-16.1.tar.bz2
cd postgresql-16.1/
ls -l

샘플 출력:

-rw-r--r--.  1 tecmint tecmint    365 Nov  7 03:34 aclocal.m4
drwxr-xr-x.  2 tecmint tecmint   4096 Nov  7 03:47 config
-rwxr-xr-x.  1 tecmint tecmint 584560 Nov  7 03:34 configure
-rw-r--r--.  1 tecmint tecmint  87292 Nov  7 03:34 configure.ac
drwxr-xr-x. 61 tecmint tecmint   4096 Nov  7 03:47 contrib
-rw-r--r--.  1 tecmint tecmint   1192 Nov  7 03:34 COPYRIGHT
drwxr-xr-x.  3 tecmint tecmint   4096 Nov  7 03:47 doc
-rw-r--r--.  1 tecmint tecmint   4288 Nov  7 03:34 GNUmakefile.in
-rw-r--r--.  1 tecmint tecmint    277 Nov  7 03:34 HISTORY
-rw-r--r--.  1 tecmint tecmint  64601 Nov  7 03:48 INSTALL
-rw-r--r--.  1 tecmint tecmint   1875 Nov  7 03:34 Makefile
-rw-r--r--.  1 tecmint tecmint 102017 Nov  7 03:47 meson.build
-rw-r--r--.  1 tecmint tecmint   6266 Nov  7 03:34 meson_options.txt
-rw-r--r--.  1 tecmint tecmint   1213 Nov  7 03:34 README
drwxr-xr-x. 16 tecmint tecmint   4096 Nov  7 03:48 src

3. 소스에서 PostgreSQL 구성

postgres는 오픈 소스 데이터베이스이므로 필요/요구 사항에 따라 소스 코드에서 구축할 수 있습니다. 다양한 추가 기능에 대해 하나 이상의 명령줄 옵션을 제공하여 빌드 및 설치 프로세스를 맞춤설정할 수 있습니다.

표시된 대로 다양한 옵션 및 구성 사용법에 대한 도움말을 보려면 다음 명령을 사용하십시오.

./configure --help

이제 시스템의 종속성을 확인하고 이에 따라 빌드를 구성하는 구성 스크립트를 실행하십시오.

./configure

4. 소스에서 PostgreSQL 설치

구성한 후에는 다음 명령을 사용하여 소스에서 PostgreSQL을 빌드하고 설치합니다.

make
sudo make install

5. Postgres 사용자 생성

이제 데이터베이스 클러스터 초기화를 위한 data 디렉터리로 사용할 postgres 사용자와 디렉터리를 만듭니다. 이 data 디렉토리의 소유자는 postgres 사용자여야 하며 권한은 700이어야 하며 편의를 위해 postgresql 바이너리 경로도 설정해야 합니다.

sudo useradd postgres
sudo passwd postgres
sudo mkdir -p /pgdatabase/data
sudo chown -R postgres: /pgdatabase/data
sudo sh -c "echo 'export PATH=$PATH:/opt/PostgreSQL/bin' > /etc/profile.d/postgres.sh"
source /etc/profile.d/postgres.sh 

6. Postgres 데이터베이스 초기화

이제 postgres 명령을 사용하기 전에 postgres 사용자로 다음 명령을 사용하여 데이터베이스를 초기화하십시오.

su postgres
initdb -D /pgdatabase/data/ -U postgres -W

여기서 -D는 이 데이터베이스 클러스터의 위치이거나 데이터베이스 클러스터를 초기화하려는 데이터 디렉터리라고 말할 수 있습니다. -U는 데이터베이스 수퍼유저 이름이고 -W는 db 수퍼유저에 대한 비밀번호 프롬프트입니다.

더 많은 정보와 옵션을 보려면 initdb --help를 참조하세요.

7. PostgreSQL 서비스 시작

데이터베이스를 초기화한 후 데이터베이스 클러스터를 시작하거나, 포트를 변경하거나 서버의 주소를 수신해야 하는 경우 데이터 디렉터리에 있는 /pgdatabase/data/postgresql.conf 파일을 편집합니다. 데이터베이스 서버.

nano /pgdatabase/data/postgresql.conf

이제 PostgreSQL 서비스를 시작하세요.

pg_ctl -D /pgdatabase/data/ start

데이터베이스를 시작한 후 다음 ps 및 netstat 명령을 사용하여 postgres 서버 프로세스의 상태를 확인합니다.

ps -ef |grep -i postgres
netstat -apn |grep -i 51751

데이터베이스 클러스터가 정상적으로 실행되고 있는 것을 확인할 수 있으며, 데이터베이스 클러스터를 시작하면서 -l 옵션으로 지정한 위치에서 시작 로그를 확인할 수 있다.

pg_ctl -D /pgdatabase/data/ -l logfile start

8. PostgreSQL에 연결

이제 데이터베이스 클러스터에 연결하고 다음 명령을 사용하여 데이터베이스를 생성합니다.

psql -p 5432
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console

PostgreSQL을 관리하기 위해 pgAdmin이라는 그래픽 도구를 찾고 있다면 다음 가이드에 따라 Linux 배포판에 pgAdmin을 설치하세요.

결론

Linux 시스템의 소스에서 PostgreSQL을 성공적으로 설치했습니다. 이 프로세스는 PostgreSQL 설치에 대한 유연성과 제어 기능을 제공하므로 특정 요구 사항에 맞게 설치할 수 있습니다.