2018년 12월 18일 화요일

PostgreSQL RHEL(RedHat) 7.4 설치

RHEL(RedHat) 은 유료 프로그램이다.
CD 이미지 (iso 파일) 은 무료로 배포하고, 기술지원을 돈을 받는 형태이다.
또한 yum 을 돈을 받고 사용할 수 있도록 하고 있다.
그걸 sub scription 이라고 부르고 있다.

결국,,,, 뭐, 설치 및 사용은 자유롭게 해도 되지만,
yum 은 돈 내고 해라 라는 의미라서,
yum 을 사용할라면, 아래 처럼 명령어를 실행해 줘야 하는거 같다.

# subscription-manager register --username <username> --password <password> --auto-attach

만약 그게 싫다면 rpm 을 알아서 설치해 줘야 하는 삽질을 해야 한다.
dependencies 때문에 이게 좀 골치가 아프다.
aaa.RPM 설치하려고 하면 bbb.RPM 이 필요하다고 하고.....
bbb.RPM 설치하려고 하면 ccc.RPM 이 필요하다고 하고.....

일단 내 목적은 RHEL(RedHat) 에 PostgreSQL 이 정상적으로 돌아가도록 하는것이므로,
거기에만 촛점을 맞춰서 시도를 해봤다.

redhat 은 아래 경로에서 download 가능하다.
https://access.redhat.com/downloads/content/

부팅을 해보면, 아래처럼 설치화면이 나온다.


"설치소스"는 건드리지 말고,
"설치대상"은 입맛대로 하면 되고,
"네트워크 및 호스트명"은 입맛대로 하면 되고,
"최소설치"를 클릭한다.


"선택한 환경의 기능"에서 "디버깅도구, 호환성 라이브러리, 개발용 도구, 보안 도구"를 선택한다. "보안 도구"는 안해도 상관없다.


"설치 시작"을 클릭해서, 설치를 진행하고 마무리 한다.

RHEL(RedHat) 설치가 완료되었으면, PostgreSQL 을 설치해 보자.


https://www.postgresql.org
접속해서, Download 를 클릭하자


직접 컴파일해서 설치를 할 것이므로, Source 를 클릭하자.


2018.12 기준 최신 버전이 v11.1 이므로 이거를 클릭하자.


tar.gz 존재하는지 확인하자.


마우스 오른쪽 버튼을 눌러서, "링크 주소 복사" 를 클릭하자.

RHEL(RedHat) 에 접속해서, 다운로드 하자.
% curl -O https://ftp.postgresql.org/pub/source/v11.1/postgresql-11.1.tar.gz

압축을 해제하자.
% tar vxzf postgresql-11.1.tar.gz

설정을 하자.
% cd postgresql-11.1
% ./configure --prefix=/tmp/postgresql

아래와 같은 에러가 발생한다.
If you have readline already installed, see config.log for details on the
failure.  It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.

환경설정, 컴파일에 필요한 library 가 없어서 발생하는 에러다.
yum 을 통해서 library 를 설치해 주면 편할텐데 앞서 말한것처럼,
무료 RHEL(RedHat) 는 yum 을 사용할 수 없다.
그러므로 수동으로 RPM 을 설치해 줘야 한다.


RHEL(RedHat) iso 파일을 넣어준다.

read-only 형태로 마운트 한다.
% mount -r /dev/cdrom /mnt
% cd /mnt/Packages
% ls

RPM 파일들이 주루룩 나오는걸 볼 수 있다.
이것들을 수동으로 설치해 줘야 한다.

dependencies 에 걸리지 않도록 아래 순서대로 설치를 진행한다.

rpm -Uvi wget-1.14-15.el7.x86_64.rpm
rpm -Uvi ncurses-devel-5.9-13.20130511.el7.x86_64.rpm
rpm -Uvi readline-devel-6.2-10.el7.x86_64.rpm
rpm -Uvi zlib-devel-1.2.7-17.el7.x86_64.rpm
rpm -Uvi keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm
rpm -Uvi libcom_err-devel-1.42.9-10.el7.x86_64.rpm
rpm -Uvi libkadm5-1.15.1-8.el7.x86_64.rpm
rpm -Uvi libverto-devel-0.2.5-4.el7.x86_64.rpm
rpm -Uvi libsepol-devel-2.5-6.el7.x86_64.rpm
rpm -Uvi pcre-devel-8.32-17.el7.x86_64.rpm
rpm -Uvi libselinux-devel-2.5-11.el7.x86_64.rpm
rpm -Uvi krb5-devel-1.15.1-8.el7.x86_64.rpm
rpm -Uvi openssl-devel-1.0.2k-8.el7.x86_64.rpm
rpm -Uvi xz-devel-5.2.2-1.el7.x86_64.rpm
rpm -Uvi libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm
rpm -Uvi pam-devel-1.1.8-18.el7.x86_64.rpm
rpm -Uvi python-devel-2.7.5-58.el7.x86_64.rpm
rpm -Uvi cyrus-sasl-2.1.26-21.el7.x86_64.rpm
rpm -Uvi cyrus-sasl-devel-2.1.26-21.el7.x86_64.rpm
rpm -Uvi openldap-devel-2.4.44-5.el7.x86_64.rpm
rpm -Uvi tcl-8.5.13-8.el7.x86_64.rpm
rpm -Uvi tcl-devel-8.5.13-8.el7.x86_64.rpm
rpm -Uvi libgpg-error-devel-1.12-3.el7.x86_64.rpm
rpm -Uvi libgcrypt-devel-1.5.3-14.el7.x86_64.rpm
rpm -Uvi libxslt-devel-1.1.28-5.el7.x86_64.rpm
rpm -Uvi systemd-devel-219-42.el7.x86_64.rpm
rpm -Uvi libuuid-devel-2.23.2-43.el7.x86_64.rpm

설치 완료 후, 다시 시도해 보자.
% cd postgresql-11.1
% ./configure --prefix=/tmp/postgresql

잘 되었으면 컴파일을 하자.
% make

잘 되었으면 설치를 하자.
% make install

Database 초기화가 잘 되는지 확인해 보자.
% initdb -D DATA

DB 실행이 잘 되는지 확인해 보자.
% pg_ctl -D DATA start

WinSCP 기부

나는 리눅스(Linux)를 많이 사용하는 편이다. 회사에서도 사용하고, 개인적으로도 사용하고 있다. 그러다 보니 자연스럽게, SFTP를 많이 사용하게 된다. 리눅스에서는 SFTP에 대해 기본적으로 이렇게 저렇게 잘 지원을 해주는 편인데, 윈도...