냐냐한 IT/냐냐한 실습 기록

Ubuntu 16.04에 PostgreSQL 13 설치

소소하냐 2023. 2. 10. 17:28

Ubuntu 16.04에 PostgreSQL을 설치하려고 합니다.

PostgreSQL의 2023.02.10일 현재 최상위 버전은 15.2입니다. 

 

( 참고로, Ubuntu 포함 Linux 환경을 모르는 철저하게 윈도우 사용자로 살아온 사람입니다.

쉬운 방법을 두고 돌아가는 것일 수도 있고 잘못된 방법일 수도 있다는 점 참고부탁드립니다. )

 

PostgreSQL 지원 버전 확인

 

PostgreSQL 공식 홈페이지 > 다운로드 설명을 확인하니 아래와 같은 설명이 있습니다.

PostgreSQL Apt Repository가 지원하는 현재 Ubuntu 버전: 

- kinetic (22.10, non-LTS)
- jammy (22.04, LTS)
- focal (20.04, LTS)
- bionic (18.04, LTS)

다음 아키텍쳐:
- amd64
- arm64 (18.04 and newer; LTS releases only)
- i386 (18.04 and older)
- ppc64el (LTS releases only)

 

16.04 버전은 지원하지 않습니다... 

그래도 혹시 모르니, 위 페이지에서 설명하는대로, 따라 해보기로 합니다. 

 

실패 

# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Update the package lists:
sudo apt-get update

# Install the latest version of PostgreSQL.
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
sudo apt-get -y install postgresql-12

 

  • sudo apt-get update 명령어에서 부터 Ign, Err 가 많이 표시되는 것이 불안합니다. 
root@...:~# sudo apt-get update
Ign:1 http://apt.postgresql.org/pub/repos/apt xenial-pgdg InRelease
Hit:2 http://security.ubuntu.com/ubuntu xenial-security InRelease
Hit:3 http://kr.archive.ubuntu.com/ubuntu xenial InRelease
# ... 생략
Ign:11 http://apt.postgresql.org/pub/repos/apt xenial-pgdg/main Translation-en
Reading package lists... Done
W: The repository 'http://apt.postgresql.org/pub/repos/apt xenial-pgdg Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch http://apt.postgresql.org/pub/repos/apt/dists/xenial-pgdg/main/binary-amd64/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

 

그래도 계속 진행합니다. 

 

  • sudo apt-get -y install postgresql-12 명령어를 입력합니다. 
root@...:~# sudo apt-get install postgresql-12
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package postgresql-12

 

당연하게도? 실패합니다. 

(sudo apt-get -y install postgresql-11로 버전을 내려서 해도 동일합니다.)

 

 

원인

PostgreSQL wiki 사이트 > News에서 다음과 같은 내용을 확인할 수 있습니다. 

* 2022-09-19: Ubuntu xenial and impish have been removed from apt.postgresql.org.

 

Ubuntu xenial(16.04) 이 apt.postgresql.org에서 제거되었다고 합니다...

 

 

해결

열심히 검색 결과, Travis CI Community Form에서 해결 방법을 찾았습니다. 

I suggest changing apt.postgresql.org for apt-archive.postgresql.org in Xenial to solve the issue.

 

apt-archive.postgresql.org로 변경하라고 합니다. 

 

 

apt-archive로 연결 변경

  • 저는 이미 pgdb.list를 생성했으니 편집합니다. 해당 파일을 편집할 수 있게 엽니다. 
vi /etc/apt/sources.list.d/pgdg.list
  • 파일 내용 중, http://apt.postgresql.org/pub/repos/apt을 http://apt-archive.postgresql.org/pub/repos/apt로 변경합니다. 결과적으로 아래 내용과 같습니다: 
deb http://apt-archive.postgresql.org/pub/repos/apt xenial-pgdg main

/etc/apt/sources.list.d/pgdg.list 내용

 

이전 과정 다시 진행

  • 다시 위 과정을 진행합니다. 
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

 

  • 패키지 업데이트 
sudo apt-get update

 

(와우, 이번에는 잘 받아집니다.)

 

wget, update 진행

 

postgreSQL 다시 설치

위에서 진행한 명령어에서 postgresql-contrib 가 추가되었습니다. 부가 모듈을 추가로 설치하는 부분이라고 합니다. 

sudo apt-get install postgresql-13 postgresql-contrib-13

 

설치가 성공적으로 완료되었습니다. 

(처음에는 14 버전으로 시도했는데, 실패했습니다. 14 버전은 archive에도 없나 봅니다.) 

 

다음과 같은 성공 메시지가 나왔습니다. 

Success. You can now start the database server using:

    pg_ctlcluster 13 main start

Ver Cluster Port Status Owner    Data directory              Log file
13  main    5432 down   postgres /var/lib/postgresql/13/main /var/log/postgresql/postgresql-13-main.log
update-alternatives: using /usr/share/postgresql/13/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode
Processing triggers for ureadahead (0.100.0-19.1) ...
Processing triggers for systemd (229-4ubuntu21.31) ...

 

-- 설치 끝 --

 

 

PostgreSQL 연결 및 버전 확인 

postgreSQL 데이터베이스에 연결

sudo -u postgres psql

버전 확인

select version();

버전 확인, q를 누르니 이 화면에서 벗어날 수 있었습니다.


참고.

저의 경우 9.5 버전을 이미 설치한 상태에서, 제거 없이 상위 버전을 설치했습니다.

상위 버전으로 업그레이드해서 9.5 버전을 더 이상 사용할 수 없다는 내용으로 보입니다. 

그래도 깔끔하게 제거 후 다시 설치하기로 했습니다. 

제거 없이 설치하니 무서운 화면이 표시됩니다. Tab 키를 누르니 OK가 선택되고 화면을 나갈 수 있었습니다.

 

PostgreSQL과 관련 패키지 전체 삭제하기 

sudo apt-get --purge remove postgresql\*

확인

dpkg -l | grep postgres

다시 설치

위 내용을 다시 진행합니다. 


 

 

끝까지 읽어주셔서 감사합니다.