저는 Ubuntu ARM32에서 최신 버전의 PostgreSQL(17.4)을 성공적으로 컴파일 및 설치했습니다.
이 문서의 명령은 주로 PostgreSQL 공식 문서에서 가져왔습니다. 이 문서의 각 명령을 실제로 테스트했습니다.
여기에서 성공적으로 설치할 수 있는 시스템을 볼 수 있습니다. PostgreSQL 빌드 팜
PostgreSQL 17.4 컴파일 및 설치
1. 디렉터리 생성 및 이동
mkdir postgresql && cd postgresql
mkdir postgresql
:postgresql
이라는 새 디렉터리를 만듭니다.cd postgresql
: 방금 만든postgresql
디렉터리로 이동합니다.
2. PostgreSQL 소스 코드 다운로드
wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
wget
: 지정된 URL에서 파일을 다운로드합니다.https://..../postgresql-17.4.tar.bz2
: PostgreSQL 17.4 버전의 압축된 소스 코드 패키지 다운로드 링크입니다. 링크가 만료된 경우 새 링크를 직접 찾을 수 있습니다.
3. 소스 코드 패키지 압축 해제
tar xjf postgresql-17.4.tar.bz2
-
tar
:.tar
압축 파일을 처리하는 데 사용됩니다. -
xjf
:tar
파일 압축을 해제하는 옵션:x
: 파일 압축을 해제합니다.j
: bzip2 압축 형식(.bz2)을 사용합니다.f
: 압축을 해제할 파일을 지정합니다.
-
postgresql-17.4.tar.bz2
: 압축을 해제할 파일 이름입니다.
4. 압축 해제된 소스 코드 디렉터리로 이동
cd postgresql-17.4
- 압축 해제된 PostgreSQL 17.4 소스 코드 디렉터리로 이동합니다.
5. 종속성 패키지 설치
sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
sudo apt install
:apt
패키지 관리자를 사용하여 패키지를 설치합니다.libssl-dev
,libsystemd-dev
,libxml2-dev
,libreadline-dev
: PostgreSQL 컴파일에 필요한 개발 라이브러리를 설치합니다. 각각 SSL 라이브러리, Systemd 라이브러리, XML 라이브러리 및 Readline 라이브러리입니다.
6. 컴파일 옵션 구성
./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
./configure
: PostgreSQL의 컴파일 환경을 준비합니다.--prefix=/usr/local/pgsql
: PostgreSQL 설치 디렉터리를/usr/local/pgsql
로 지정합니다.--with-openssl
: OpenSSL 지원을 활성화합니다.--with-libxml
: XML 지원을 활성화합니다.--with-systemd
: Systemd 지원을 활성화합니다.
7. 소스 코드 컴파일
make -j$(nproc)
make
: 컴파일 프로세스를 시작합니다.-j$(nproc)
:nproc
(시스템의 CPU 코어 수)를 사용하여 컴파일 작업을 병렬로 실행하여 컴파일 프로세스를 가속화합니다.
8. PostgreSQL 설치
sudo make install
sudo make install
:sudo
를 사용하여 관리자 권한으로 설치를 실행합니다.make install
은 컴파일된 파일을 시스템에 설치하고 이전./configure
명령에서 지정한/usr/local/pgsql
디렉터리에 설치합니다.
9. 환경 변수 설정
텍스트 편집기를 사용하여 1. /etc/profile
파일 편집:
sudo nano /etc/profile
sudo
: 슈퍼 사용자(관리자) 권한으로 명령을 실행함을 나타냅니다./etc/profile
파일을 수정하려면 관리자 권한이 필요합니다.nano
: 터미널 환경에서 파일을 편집하는 데 자주 사용되는 텍스트 편집기입니다./etc/profile
: 시스템 범위의 환경 변수 및 시작 구성을 설정하는 데 사용되는 전역 구성 파일입니다. 모든 사용자가 시스템에 로그인할 때 이 파일의 설정이 실행됩니다.
- 환경 변수 추가:
export PATH=/usr/local/pgsql/bin:$PATH
export
: 현재 및 하위 프로세스에서 사용할 수 있도록 환경 변수를 설정하는 데 사용됩니다.PATH
: 시스템에서 실행 파일의 디렉터리 목록을 포함하는 환경 변수입니다. 시스템은 명령을 실행할 때PATH
변수에 나열된 디렉터리에 따라 명령을 찾습니다./usr/local/pgsql/bin
: PostgreSQL 데이터베이스의 실행 파일 디렉터리입니다. 이를 추가하면 해당 디렉터리의 실행 파일(예:psql
)이 시스템에서 인식됩니다.:$PATH
: 여기서$PATH
는 원래 있던 경로를 나타냅니다. 새 경로/usr/local/pgsql/bin
을 원래PATH
앞에 추가합니다. 이렇게 하면 시스템이 새 디렉터리를 먼저 확인한 다음 원래 경로를 확인합니다.
이 명령의 기능은 PostgreSQL 실행 파일 디렉터리를 시스템의 환경 변수 PATH
에 추가하여 명령줄에서 전체 경로를 제공하지 않고도 PostgreSQL 명령(예: psql
)을 직접 실행할 수 있도록 하는 것입니다. 수정된 설정은 모든 사용자에게 적용됩니다.
PostgreSQL 데이터베이스 초기화
이러한 명령은 PostgreSQL 시스템 사용자 생성, 데이터베이스 초기화, 데이터베이스 서비스 시작 및 systemd
서비스로 등록하여 부팅 시 자동 시작을 포함하여 Linux 서버에서 PostgreSQL 데이터베이스 서버를 수동으로 구성하는 데 주로 사용됩니다.
1. PostgreSQL 사용자 생성
sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
sudo
: 슈퍼 사용자 권한으로 명령을 실행합니다.useradd
: 새 사용자를 만듭니다.-m
: 사용자의 홈 디렉터리를 만듭니다.-U
: 사용자 이름과 동일한 사용자 그룹을 동시에 만듭니다.-r
: 시스템 사용자(시스템 사용자 UID는 1000 미만이며 로그인에 사용되지 않음)를 만듭니다.-d /var/lib/postgresql
: 홈 디렉터리를/var/lib/postgresql
로 지정합니다.-s /bin/bash
: 셸을/bin/bash
로 지정합니다.postgres
: 사용자 이름입니다.
이 명령은 PostgreSQL 전용 시스템 사용자 postgres
를 만듭니다.
2. PostgreSQL 디렉터리의 소유자 변경
sudo chown postgres /usr/local/pgsql
chown postgres /usr/local/pgsql
:/usr/local/pgsql
디렉터리의 소유자를postgres
사용자로 변경하여 해당 디렉터리를 읽고 쓸 수 있도록 합니다.
3. PostgreSQL 사용자의 암호 설정
sudo passwd postgres
passwd postgres
:postgres
사용자의 암호를 수정합니다.
4. PostgreSQL 사용자로 전환
su postgres
su postgres
: PostgreSQL 관련 명령을 사용하기 위해postgres
사용자로 전환합니다.
5. 데이터베이스 초기화
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
initdb -D /usr/local/pgsql/data
:/usr/local/pgsql/data
디렉터리에서 데이터베이스 스토리지를 초기화합니다.
6. PostgreSQL 데이터베이스 시작
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
postgres -D /usr/local/pgsql/data
:postgres
프로세스로 데이터베이스를 시작합니다. 데이터는/usr/local/pgsql/data
디렉터리에 저장됩니다.
7. 다른 터미널 세션에서 데이터베이스에 접속
su postgres
/usr/local/pgsql/bin/psql
psql
: PostgreSQL의 명령줄 상호 작용 도구입니다. 데이터베이스 셸에 접속합니다.
8. 데이터베이스 사용자의 암호 설정
ALTER USER postgres WITH PASSWORD 'your_new_password';
- 데이터베이스 사용자
postgres
의 암호를 수정합니다.
9. systemd
서비스 생성
sudo nano /etc/systemd/system/postgresql.service
nano /etc/systemd/system/postgresql.service
:systemd
구성 파일을 편집하여 PostgreSQL을 서비스로 실행할 수 있도록 합니다.
구성 파일 내용:
[Unit]
Description=PostgreSQL server
#Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
User=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
Description=PostgreSQL server
: 해당 서비스가 PostgreSQL 서버임을 설명합니다.After=network-online.target
: 네트워크 연결을 사용할 수 있게 된 후 PostgreSQL을 시작합니다.User=postgres
:postgres
사용자로 실행합니다.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: PostgreSQL 서버를 시작합니다.ExecReload=/bin/kill -HUP $MAINPID
: 다시 로드할 때HUP
신호를 보냅니다.KillMode=mixed
: 혼합 종료 모드입니다.KillSignal=SIGINT
: PostgreSQL 프로세스를 종료하는 신호입니다.TimeoutSec=infinity
: 시간 초과를 무한대로 설정합니다.
10. systemd
서비스 활성화
sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
daemon-reload
:systemd
구성을 다시 로드하여 새postgresql.service
가 적용되도록 합니다.start postgresql
: PostgreSQL 서비스를 시작합니다.status postgresql
: PostgreSQL 실행 상태를 확인합니다.enable postgresql
: 부팅 시 PostgreSQL을 자동으로 시작합니다.
이러한 명령의 목적은 다음과 같습니다.
- PostgreSQL을 실행하는 데 전용으로 사용되는
postgres
사용자를 만듭니다. - 데이터베이스 스토리지 디렉터리를 초기화합니다.
- PostgreSQL 데이터베이스를 시작하고
psql
대화형 명령줄에 접속합니다. systemd
를 구성하여 PostgreSQL이 시스템 서비스로 실행되도록 하고 부팅 시 자동 시작을 지원합니다.
이렇게 하면 PostgreSQL 서버가 정상적으로 실행되고 시스템 시작 시 자동으로 시작할 수 있습니다.
참고 자료
PostgreSQL: Documentation: 17: Chapter 17. Installation from Source Code
이 웹 페이지의 다른 버전
이 문서에는 여러 언어 버전이 있습니다.
댓글을 게시하려면 다음 웹 페이지를 방문하세요.
이러한 웹 페이지는 탐색만 지원하며 댓글을 게시하거나 메시지를 남길 수 없지만 더 많은 언어 옵션을 제공하고 로드 시간이 더 짧습니다.
ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO
이 문서는 AI에 의해 중국어(간체)에서 한국어로 번역되었습니다.