본문 바로가기

DB/PostgreSQL

[ PostgreSQL ] build - 소스 Build해서 설치하기 (RHEL 7.6)

반응형

RHEL(Red Hat Enterprise Linux)에서 PostgreSQL을 빌드하여 설치하는 방법을 단계별로 안내합니다. PostgreSQL은 소스 코드를 다운로드하여 컴파일 후 설치할 수 있습니다. 아래는 그 과정을 설명한 단계입니다.


 

1. 필요 패키지 설치

PostgreSQL 빌드를 위해 필요한 도구와 라이브러리를 설치합니다.

sudo yum groupinstall "Development Tools" -y
sudo yum install -y gcc readline-devel zlib-devel

 

2. PostgreSQL 소스코드 다운로드

PostgreSQL 공식 웹사이트에서 원하는 버전의 소스코드를 다운로드합니다.

wget https://ftp.postgresql.org/pub/source/vXX.X/postgresql-XX.X.tar.gz

XX.X는 설치하려는 PostgreSQL 버전을 나타냅니다. 예: 15.3

 

3. 소스코드 압축 해제

다운로드한 소스코드를 압축 해제합니다.

tar -xvf postgresql-XX.X.tar.gz
cd postgresql-XX.X

 

4. 구성(Configuration)

PostgreSQL 소스를 빌드하기 전에 ./configure 스크립트를 실행하여 환경을 설정합니다.

./configure --prefix=/usr/local/pgsql --with-includes=/usr/include --with-libraries=/usr/lib

옵션:

  • --prefix: PostgreSQL이 설치될 경로를 지정합니다. (예: /usr/local/pgsql)
  • --with-includes--with-libraries: 헤더 파일 및 라이브러리 경로를 명시합니다.

 

5. 빌드(Build)

컴파일 과정을 실행합니다.

make

 

6. 설치(Install)

컴파일이 완료되면 PostgreSQL을 시스템에 설치합니다.

sudo make install

 

7. PostgreSQL 데이터 디렉토리 초기화

PostgreSQL을 사용하려면 데이터 디렉토리를 초기화해야 합니다.

sudo mkdir -p /usr/local/pgsql/data
sudo chown $USER /usr/local/pgsql/data
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

 

8. PostgreSQL 서버 시작

PostgreSQL 서버를 백그라운드에서 실행합니다.

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

 

9. PostgreSQL 서버 시작

PostgreSQL 설치 후 postgres 사용자를 sudo 권한을 가지는 사용자로 변경하려면 아래 단계를 따르세요. 다만, 기본적으로 postgres 사용자는 데이터베이스 관리에만 사용되며, 일반적으로 보안 관점에서 이 사용자에게 루트 권한을 부여하지 않는 것이 좋습니다.

그럼에도 불구하고 필요에 따라 postgres 사용자를 sudoer로 변경하는 방법을 안내드립니다.

1. sudo 설치 여부 확인

RHEL에 sudo가 설치되어 있는지 확인하세요. 없다면 아래 명령어로 설치합니다.

sudo yum install -y sudo

2. postgres 사용자 확인

PostgreSQL 설치 시 생성된 postgres 사용자가 있는지 확인합니다.

id postgres

출력 결과에 postgres 사용자의 UID와 그룹 정보가 나타나야 합니다.

3. postgressudo 그룹에 추가

sudo 그룹에 postgres 사용자를 추가합니다.

sudo useradd postgres
sudo passwd postgres
sudo usermod -aG wheel postgres
  • RHEL에서는 기본적으로 wheel 그룹에 속한 사용자가 sudo 권한을 가집니다.
  • 다른 그룹으로 설정된 경우 /etc/sudoers 파일을 확인해 필요에 따라 변경해야 합니다.

4. sudo 권한 테스트

postgres 계정으로 전환 후, sudo 명령어를 실행하여 권한을 테스트합니다.

su - postgres
sudo whoami

출력이 root라면 성공적으로 설정된 것입니다.

5. (선택 사항) 특정 명령에만 sudo 허용

만약 postgres 사용자에게 특정 명령만 sudo 권한으로 실행할 수 있도록 제한하려면 /etc/sudoers 파일을 편집합니다.

sudo visudo

sudoers 파일에 다음 줄을 추가합니다:

postgres ALL=(ALL) NOPASSWD: /path/to/command

위 설정은 postgres 사용자가 /path/to/command를 암호 없이 sudo로 실행할 수 있도록 허용합니다.

6. 주의사항

  • postgres 사용자에게 sudo 권한을 부여하면 시스템 전체에 대한 관리 권한이 주어지므로 보안상 위험할 수 있습니다.
  • 가능하다면 PostgreSQL 관리 전용으로 postgres 사용자를 유지하고, 별도의 시스템 관리 계정을 사용하는 것이 좋습니다.

 

10. 환경 변수 설정 (선택 사항)

PostgreSQL 바이너리가 있는 경로를 시스템 PATH에 추가하여 편리하게 실행할 수 있도록 설정합니다.

echo "export PATH=/usr/local/pgsql/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc

 

11. PostgreSQL 클라이언트 실행

PostgreSQL 명령줄 클라이언트를 실행합니다.

/usr/local/pgsql/bin/psql

 

12. PostgreSQL version 확인

PostgreSQL 명령줄 클라이언트를 실행합니다.

SELECT version();

이제 PostgreSQL이 RHEL에서 빌드 및 설치되어 사용 준비가 완료되었습니다! 🎉

참고: 빌드 설치 대신 RHEL의 공식 리포지토리 또는 PostgreSQL Yum Repository를 사용하는 방법도 있으며, 이는 더 간단한 설정 및 관리에 유리합니다.

반응형