티스토리 뷰

 

[설치버전]
CentOS version7.5
Postgresql12
Postgis version3.2

[리눅스 설치 환경]
소프트 웨어 선택 -> 개발 및 창조를 위한 워크스테이션
-> 선택한 환경의 기능 : 추가개발, 호환성 라이브러리, 개발용 도구, FTP 서버, Perl - Web용, 플랫폼 개발

※ 필자는 서버A와 서버B로 나누어서 진행할 것이다.
서버A: 네트워크가 연결된 환경으로 사전에 필요한 Postgresql12, Postgis 설치 라이브러리 파일을 준비하는 과정이다.
서버B: 서버A에서 내려받은 라이브러리 파일을 폐쇄망으로 옮기고, 다운받은 라이브러리 파일을 이용해 Postgresql12, Postgis를 설치하는 과정이다.

[centos 버전 확인방법]
# cat /etc/redhat-release

[ip주소 확인방법]
# ip addr
# ifconfig

 

 

 

PostgreSQL12 설치



1. 필요 패키지 다운받기
# yum install yum-utils





2. postgresql12 패키지 파일 다운로드
- 아래의 경로에 내려받는다.
# cd /home/opc/postgresql12/

- postgresql을 다운받기 위한 저장소 추가
# yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

- 아래명령어는 postgresql12를 설치하지 않고, 설치에 필요한 rpm파일과 의존성 패키지들을 다운로드 받는다.
(단, 현재 환경에 필요한 패키지만 다운로드함)
# yumdownloader --downloadonly --resolve postgresql12 postgresql12-server postgresql12-contrib



아래 디렉토리에 해당 패키지가 설치 되었는지 확인
# cd /home/opc/postgresql12/
# ls

------------------------------------------------------------------------------------------------------------
*yumdownloader
rpm을 설치하다보면 의존성 에러때문에 답이없다.
수많은 관련 파일을 하나하나 다운로드 받기도 힘들고,
의존성실패나는 파일을 하나하나 찾기도 힘들다. ㅜㅜ
yumdownloader는 현재 환경에 필요한 의존성 관련 패키지를 한번에 자동으로 내려받아준다.
- resolve 옵션: 의존되는 모든 패키지들도 다운받도록 해준다.
- destdir 옵션: 저장되는 디렉토리를 지정할 수 있다. 
(yumdownloader --help로 확인가능)
------------------------------------------------------------------------------------------------------------





3. postgresql development 내려받기  
# yumdownloader --downloadonly --resolve postgresql12-devel.x86_64

--> Running transaction check
---> Package postgresql12-devel.x86_64 0:12.11-1PGDG.rhel7 will be installed
--> Processing Dependency: llvm5.0-devel >= 5.0 for package: postgresql12-devel-12.11-1PGDG.rhel7.x86_64
--> Processing Dependency: llvm-toolset-7-clang >= 4.0.1 for package: postgresql12-devel-12.11-1PGDG.rhel7.x86_64
--> Finished Dependency Resolution
Package: postgresql12-devel-12.11-1PGDG.rhel7.x86_64 (pgdg12)
    Requires: llvm5.0-devel >= 5.0
Package: postgresql12-devel-12.11-1PGDG.rhel7.x86_64 (pgdg12)
    Requires: llvm-toolset-7-clang >= 4.0.1
Dependency resolution failed, some packages will not be downloaded.
postgresql12-devel-12.11-1PGDG.rhel7.x86_64.rpm                                                           | 2.3 MB  00:00:02     
exiting because "Download Only" specified
==> dependency 파일 다운 실패, postgresql12-devel 파일만 다운로드 받아졌음.





4. 의존성 파일 따로 불러오지 못해서 아래 라이브러리는 개별적으로 다운받을것이다.
(1) llvm5.0-devel       (2) llvm-toolset-7-clang

4-1. 의존성 패키지 다운받기
먼저 yum list에 위의 파일들이 있는지 확인한다.
yum list 목록에 패키지가 있어야지 yumdownloader로 패키지 내려받아서 설치가능해진다.
# yum list llvm*
위의 두 패키지가 없었기 때문에 외부에서 직접 따로하는 방법을 생각했다.
하지만 https://centos.pkgs.org/7/epel-x86_64/llvm5.0-devel-5.0.1-7.el7.x86_64.rpm.html 사이트에서 
Install Howto를 살펴보면 외부에서 rpm파일을 직접 다운로드 받지 않고도 설치가 가능한 방법이 나와있음

(1) llvm5.0-devel
https://centos.pkgs.org/7/epel-x86_64/llvm5.0-devel-5.0.1-7.el7.x86_64.rpm.html
위의 사이트에서 Install Howto를 본다.
epel-release이거 설치하고 나면 yum list에 llvm5.0-devel이 목록에 생긴다. 
# cd /home/opc/postgresql12 
# yumdownloader --downloadonly --resolve epel-release
# rpm -i epel-release-7-11.noarch.rpm
# yumdownloader --downloadonly --resolve llvm5.0-devel 


(2) llvm-toolset-7-clang
https://centos.pkgs.org/7/centos-sclo-rh-x86_64/llvm-toolset-7-clang-5.0.1-4.el7.x86_64.rpm.html
위의 사이트에서 Install Howto를 본다.
centos-release-scl-rh이거 설치하고 나면 yum list에 llvm-toolset-7-clang이 목록에 생긴다.
# yumdownloader --downloadonly --resolve centos-release-scl-rh
# rpm -i centos-release-scl-rh-2-3.el7.centos.noarch.rpm 
# yumdownloader --downloadonly --resolve llvm-toolset-7-clang





 

 

Postgis3.2.0 설치

 


1.  postgis3.2.0 설치 요구사항 확인
아래사이트에서 확인 가능
https://postgis.net/docs/postgis_installation.html
------------------------------------------------------------------------------------------
- PostgreSQL11이상
- gcc
- make -v확인
- Proj 4.9이상 (4.9는 몇몇 기능 이상이 있을수도 있으니까 5.0이상 설치하기)
- GEOS 3.6이상 (3.9이상 설치, 3.11은 안정화된 버전 아니니까 피하기)
- LibXML2 version 2.5.x 이후 
- JSON-C 0.9 이후
- GDAL 3.0~3.4
------------------------------------------------------------------------------------------





2. 라이브러리 설치 여부 및 버전 확인
rpm -qa | grep gcc
make -v
proj -v   -------------------------> 설치 필요
geos-config --version  ---------------------------> 설치 필요
rpm -qa | grep LibXML
rpm -qa | grep json
gdalinfo --version  ---------------------------> 설치 필요





3. 라이브러리 다운로드
필자는 proj, geos, gda 이 세가지의 패키지가 설치 되어있지 않았으므로, 각각의 패키지 해당 링크에서 호환가능한 버전의 라이브러리를 다운로드 받았다.
아래파일은 서버B로 라이브러리를 옮겨 설치할 것이다.

[proj-6.0.0]
https://proj.org/download.html

[geos-3.9.2]
https://libgeos.org/usage/download/

[gdal-3.3.0]
http://download.osgeo.org/gdal/3.3.0/

[postgis-3.2.0 설치]
# yum list postgis*
위의 명령어를 통해 설치 가능한 postgis 버전을 확인한다.
필자는 postgis3.2.0 을 설치해야하는데, 해당 버전이 없어서 아래 사이트에서 압축파일로 다운받았다.
내가 원하는 버전이 yum list에 있다면 yum downloader 명령어를 이용해서 라이브러리를 내려받을 수 있다.
하지만 아래 사이트에서 다운로드 받아서 진행해도 된다.
http://postgis.net/stuff/





4. 라이브러리 준비 끝 ----> 서버B로 넘어가자

 

다음글

https://wldnjd2.tistory.com/55

 

폐쇄망에서 Postgresql, PostGIS 설치2 (서버B)

[설치버전] CentOS version7.5 Postgresql12 Postgis version3.2 [리눅스 설치 환경] 소프트 웨어 선택 -> 개발 및 창조를 위한 워크스테이션 -> 선택한 환경의 기능 : 추가개발, 호환성 라이브러리, 개발용 도구,.

wldnjd2.tistory.com






Ref.

https://lifeplan-b.tistory.com/201
https://yangeok.github.io/linux/2021/04/27/centos-offline-pgsql-nifi.html
https://geekpeach.net/ko/%EC%A2%85%EC%86%8D%EC%84%B1%EC%9D%B4-%EC%9E%88%EB%8A%94-rpm-%ED%8C%A8%ED%82%A4%EC%A7%80-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-yumdownloader-vs-yum-downloadonly-vs-repoquery

 

종속성이 있는 RPM 패키지 다운로드 [ yumdownloader Vs yum-downloadonly Vs repoquery] - GeekPeach.net

때때로 패키지를 설치하지 않고 다운로드해야 할 수도 있습니다. 다운로드하려는 RPM 패키지에 여러 종속성이 있는 경우 이는 어렵고 시간이 많이 소요될 수 있습니다. 시간과 복잡성을 줄이기

geekpeach.net

 

Yangeok

Yangwook Ian Jeongs' Development Blog

yangeok.github.io

 

Yum 없이 패키지 설치(feat. CentOS gcc 설치)

인터넷이 가능한 서버 or PC에서 gcc / gcc-c++을 설치할때는, 아주 간단하게 "yum install gcc" 하면 해결이 된다. 그러면, 의존성 패키지까지 함께 설치가 완료된다. 그러나, Yum을 사용하지 못하는 환경

lifeplan-b.tistory.com

 

댓글