PostgresQL #.1 설치 및 구동

개요

PostgreSQL은 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템(ORDBMS)의 하나이다. BSD 허가권으로 배포되며 오픈소스 개발자 및 관련 회사들이 개발에 참여하고 있다. 데이터베이스 서버로서 주요 기능은 데이터를 안전하게 저장하고 다른 응용 소프트웨어로부터의 요청에 응답할 때 데이터를 반환하는 것이이다. 소규모의 단일 머신 애플리케이션에서부터 수많은 동시 접속 사용자가 있는 대형의 인터넷 애플리케이션(또는 데이터 웨어하우스용)에 이르기까지 여러 부하를 관리할 수 있으며 macOS 서버의 경우 PostgreSQL은 기본 데이터베이스이다. 마이크로소프트 윈도우, 리눅스(대부분의 배포판에서 제공됨)용으로도 이용 가능하다. PostgresQL의 전신은 Ingres DB로 실제 프로젝트의 공식 명칭은 “post-Ingres” 데이터베이스이다.

설치

Postgresql 사이트에서 yum 리포지터리 RPM을 다운로드 받을 수 있다.

이렇게 제공된다. 아래 텍스트를 복사-붙여넣기 하여 설치하면 된다.
 # repository RPM 설치
 # 설치하면 postgresql repo 파일이 /etc/yum.repos.d 아래 생성된다.
[root@centos7:/root/]# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
 # PostgresQL 설치
[root@centos7:/root/]# yum install -y postgresql12-server
 
 # 이렇게 설치 해도 된다.
[root@centos7:/root/]# yum install -y postgresql12-*

초기화
initdb를 이용해 데이터 디렉토리 생성 및 지정이 필요하다.
postgresql 서버를 설치하면 postgres 계정이 자동으로 생성되고 DBMS의 최고 권한은 이 postgres 계정이 가지게 된다. 서버 프로세스의 구동부터 모든 작업이 postgres 계정으로 진행되어야 하므로 디렉토리 생성등을 할 경우 postgres 계정에 모든 권한을 부여해야 한다.

 # DB 초기화 등 작업

 # 초기화 :  /var/lib/pgsql/12/data 가 데이터 디렉토리로 '자동'지정된다.
[postgres@centos7:/home/]$ /usr/pgsql-12/bin/initdb 
이 데이터베이스 시스템에서 만들어지는 파일들은 그 소유주가 "postgres" id로
지정될 것입니다. 또한 이 사용자는 서버 프로세스의 소유주가 됩니다.

데이터베이스 클러스터는 "ko_KR.UTF-8" 로케일으로 초기화될 것입니다.
기본 데이터베이스 인코딩은 "UTF8" 인코딩으로 설정되었습니다.
initdb: "ko_KR.UTF-8" 로케일에 알맞은 전문검색 설정을 찾을 수 없음
기본 텍스트 검색 구성이 "simple"(으)로 설정됩니다.

자료 페이지 체크섬 기능 사용 하지 않음

이미 있는 /var/lib/pgsql/12/data 디렉터리의 액세스 권한을 고치는 중 ...완료
하위 디렉터리 만드는 중 ...완료
사용할 동적 공유 메모리 관리방식을 선택하는 중 ... posix
max_connections 초기값을 선택하는 중 ...100
기본 shared_buffers를 선택하는 중... 128MB
기본 지역 시간대를 선택 중 ... Asia/Seoul
환경설정 파일을 만드는 중 ...완료
부트스트랩 스크립트 실행 중 ... 완료
부트스트랩 다음 초기화 작업 중 ... 완료
자료를 디스크에 동기화 하는 중 ... 완료

initdb: 경고: 로컬 접속용 "trust" 인증을 설정 함
이 값을 바꾸려면, pg_hba.conf 파일을 수정하든지,
다음번 initdb 명령을 사용할 때, -A 옵션 또는 --auth-local,
--auth-host 옵션을 사용해서 인증 방법을 지정할 수 있습니다.

작업완료. 이제 다음 명령을 이용해서 서버를 가동 할 수 있습니다:

    ./pg_ctl -D /var/lib/pgsql/12/data -l 로그파일 start
# 초기화 : -pgdata= 로 지정한 디렉토리가 지정된다. 
 # 이경우 지정한 디렉토리의 소유자는 postgres이어야 하고 모든 권한을 가져야 한다.
[root@centos7:/home/]# mkdir /home/postgres
[root@centos7:/home/]# chown -R postgres /home/postgres
 # 쉘에 주의하자 여기까지는 root 이다.
[postgres@centos7:/home/]$ mkdir /home/postgres/data
[postgres@centos7:/home/]$ /usr/pgsql-12/bin/initdb  --pgdata=/home/postgres/data

/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12

구동
initdb 작업 결과의 명령대로 구동하면 된다.

[postgres@centos7:/home/]$ /usr/pgsql-12/bin//pg_ctl -D /var/lib/pgsql/12/data -l /var/lib/pgsql/12/data/pgsql.log start
서버를 시작하기 위해 기다리는 중.... 완료
서버 시작됨

확인

[root@host0 bin]# netstat -nltp |grep postgres
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      96383/postgres

CentOS swap 영역 해제하기

swap 의 사전적 의미. (daum 사전)

개요

Linux의 swap 메모리, swap 영역은 정확히 사전적 의미그대로의 영역을 말한다.
(윈도우는 가상 메모리)

CPU(Cache) – RAM – HDD (혹은 SSD를 포함하는 모든스토리지) 가 있는 컴퓨터는
사용자가 특정한 프로그램을 실행하면
1. HDD에서 필요한 데이터를 읽어서
2. RAM에 일정량을 저장하고
3. 다시 CPU의 Cache 메모리에 일정량을 저장하고
4. CPU에서 연산을 하고
5. 결과를 반환한다.


보통은 위 5단계에서 아무런 문제가 일어나지 않지만 요즘 게임을 하거나, 사진을 찍어서 편집을 하고 하다보면 메모리(RAM) 사용량이 늘어나는 것을 볼 수 있다.

예컨대 RAM이 4GB인데 동영상 편집을 할 때 동영상의 크기가 8GB를 넘어간다면?

바로 이 때 Paging(단편화1 복잡하게 생각 할 필요 없다. 책을 한권 램에 올려야 하는데 램의 크기가 작아서 페이지를 떼어서 올리는 것이라고 생각하면 된다. 우리가 실행하는 게임이건 포토샵이건 다 매 한가지다.) 이라는 작업이 일어나고 swapping 이 필요해 진다.

일단 동양상 편집을 위해 4GB램의 PC에서 8GB짜리 동영상을 로드하게 되면
1. 우선 HDD에 있는 8GB의 데이터 중 4GB의 데이터가 램으로 이동한다.
2. 사용자가 현재 램에 있는 4GB의 동영상 편집을 수행한다.

그런데 이 때 현재 램에 있는 4GB 말고 나머지 반쪽의 내용을 불러와야 한다면?
1. 현재 4GB의 동영상을 HDD의 스왑 파티션으로 이동한다. 2여기서 램에 있는 내용을 삭제 하지 않는 이유는 사용자가 아직 기존에 램에 있던 4GB의 데이터의 작업을 완료하지 않았기 때문이다.
2. HDD에 남아있던 나머지 뒤쪽 4GB를 램에 올린다.
3. 다시 편집 작업을 한다.

그래서 보통 물리 메모리(RAM)의 1배~2배 정도로 설정을 하는데 익히 알고 있다시피 HDD건, SSD건 RAM보다 느린데다가, swap 되는 데이터의 크기 두배3RAM에 있는 데이터를 읽어서, swap에 쓰고 다시 HDD의 데이터를 읽어서 RAM에 올려야 하므로swap으로 만큼 읽고 쓰기가 일어나므로 swapping 이 잦아지면 작업 지연이 생길 수 밖에 없다. 4지금이야 대부분의 PC에 SSD가 달려있어서 잘 못느끼지만 HDD가 주류이던 시절 게임을 하다 지역 이동을 하거나 할 때 본체의 빨간불이 깜빡이며 열심히 HDD가 돌아가고 화면이 멈춰있거나 느려지거나.. 경험 했을 것이다.

swap 영역 해제

 # 현재 swap 정보 확인
[root@centos7:~]# free -h
              total        used        free      shared  buff/cache   available
Mem:            62G        5.5G         54G        264M        2.9G         56G
Swap:           31G          0B         31G

[root@centos7:~]# blkid
/dev/sda1: UUID="d8888888-80c0-4156-8b73-6b5323dd2c01" TYPE="xfs"
/dev/sda2: UUID="p22222-84DI-Hvny-RZ7Z-FbHq-QBq2-tTl5yK" TYPE="LVM2_member"
/dev/sdb1: UUID="45555555-0ca0-4b99-86b5-33e45689fc10" TYPE="xfs"
/dev/mapper/centos-root: UUID="5999999-877a-4fe9-a464-5376cb476310" TYPE="xfs"
/dev/mapper/centos-swap: UUID="2333333-b2d1-4f58-9123-865739a3c2eb" TYPE="swap"    

 # 현재 swap 영역을 사용하고 있으면 해제할 수 없다.
 # swap 영역이 여러개일 때
[root@centos7:~]# swapoff  /dev/mapper/centos-swap

 # 현재 모든 swap을 해제 할 때
[root@centos7:~]# swapoff -a

# 해제 여부 확인.
 # swap 이 모두 0B인 것을 확인할 수 있다.
[root@centos7:~:]# free -h
              total        used        free      shared  buff/cache   available
Mem:            62G        7.7G         52G        161M        3.0G         54G
Swap:            0B          0B          0B
# swap 파티션 마운트 정보 변경
[root@centos7:~:]# vi /etc/fstab
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=d675d2d3-80c0-1234-8j72-6b5323dd2c01 /boot                   xfs     defaults        0 0
# type이 swap 인 파티션에 대해 주석 처리 해 준다.
# 삭제 해도 된다.
#/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1       /data  xfs     defaults        0       0

NTP 설정 (서버 구축 & 클라이언트)

네트워크 타임 프로토콜(Network Time Protocol, NTP)은 패킷 교환, 가변 레이턴시 데이터 네트워크를 통해 컴퓨터 시스템 간 시간 동기화를 위한 네트워크 프로토콜이다. 1위키백과에서 발췌

동일한 시간을 사용해야 하는 장비들 간 시간을 동기화 하기 위한 프로토콜이다.
외부 서비스를 하지 않고, 단일 서버만 운영되는 경우는 큰 의미가 없을 수도 있으나, 네트워크로 연결 되어있고, 구성요소간 시간이 동일해야 하는 경우 2예: hadoop 클러스터간 동기화, 결재 서비스를 하는 서버가 여러대로 구축 되어있을 경우 등 NTP 서버를 기준으로 시간을 동기화 한다.

NTP 서버

설치

 [root@ntp-server: ~ ]# yum install -y ntp
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
everything-disc                                                                                                                                         | 2.9 kB  00:00:00
Resolving Dependencies
--> Running transaction check
중략
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================================================
 Package                             Arch                               Version                                              Repository                                   Size
===============================================================================================================================================================================
Updating:
 ntp                                 x86_64                             4.2.6p5-29.el7.centos                                everything-disc                             548 k
Updating for dependencies:
 ntpdate                             x86_64                             4.2.6p5-29.el7.centos                                everything-disc                              86 k

Transaction Summary
===============================================================================================================================================================================
Upgrade  1 Package (+1 Dependent package)
중략
Downloading packages:
No Presto metadata available for everything-disc
(1/2): ntpdate-4.2.6p5-29.el7.centos.x86_64.rpm                                                                                                         |  86 kB  00:00:00
(2/2): ntp-4.2.6p5-29.el7.centos.x86_64.rpm                                                                                                             | 548 kB  00:00:00
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                          5.8 MB/s | 635 kB  00:00:00
중략
Running transaction
  Updating   : ntpdate-4.2.6p5-29.el7.centos.x86_64                                                                                                                        1/4
중략
  Verifying  : ntp-4.2.6p5-28.el7.centos.x86_64                                                                                                                            4/4

Updated:
  ntp.x86_64 0:4.2.6p5-29.el7.centos

Dependency Updated:
  ntpdate.x86_64 0:4.2.6p5-29.el7.centos

Complete!

서버 구축을 위한 설정
이 꼭지에서 수정한 설정파일로 nptd를 구동한 서버는 ‘기준’ 이 된다.
이 서버를 바라보는 클라이언트들은 이 서버를 기준으로 시간이 동기화 된다.

 # 서버도 /etc/ntp.conf 클라이언트도 동일하게 /etc/ntp.conf 파일을 수정한다.
 # 설정 변경.
[root@ntp-server: ~ ]# vi /etc/ntp.conf
#이대로 붙여 넣는다.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap
 # 특별한 경로를 사용하는 경우만 여기서부터
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
 # 여기까지 수정한다.
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 3
 # 서버 시작
[root@ntp-server: ~ ]# service ntpd start
Starting ntpd:                                             [  OK  ]
 # 구동확인, NTPd는 123번 포트, UDP 프로토콜로 통신한다.
[root@ntp-server: ~ ]# netstat -nlup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
udp        0      0 192.168.4.160:123           0.0.0.0:*                               10290/ntpd
udp        0      0 192.168.4.254:123           0.0.0.0:*                               10290/ntpd
udp        0      0 127.0.0.1:123               0.0.0.0:*                               10290/ntpd
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               10290/ntpd
udp        0      0 0.0.0.0:636                 0.0.0.0:*                               1013/portreserve
udp        0      0 192.168.4.160:53            0.0.0.0:*                               25447/named
udp        0      0 192.168.4.254:53            0.0.0.0:*                               25447/named
udp        0      0 127.0.0.1:53                0.0.0.0:*                               25447/named
[root@ntp-server: ~ ]# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*127.127.1.0     .LOCL.           3 l   39   64   37    0.000    0.000   0.004

동기화를 위한 클라이언트 설정

[root@ntp-client: ~ ]# vi /etc/ntp.conf
 # 아래에 NTP 서버의 IP만 고쳐서 붙여넣는다.
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

 # 위에서 ntp 서버로 설정한 서버의 IP가 192.168.0.1 이라면
server 192.168.0.1 iburst

includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
 # 서비스 재시작. 시간 동기화는 꾸준히 해야 하기 때문에 데몬을 구동한다.
[root@ntp-client: ~ ]# service ntpd restart
 # 서버측과의 결과 값과 비교해 보자.
 # 현재 클라이언트의 시각과 딜레이등의 정보가 표시 되는 것을 확인할 수 있다.
[root@ntp-client: ~ ]# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 192.168.0.1   LOCAL(0)         4 u    1   64    1    0.683  197.879   0.081

WGET 다운로더

GNU Wget(간단히 Wget, 이전 이름: Geturl)는 웹 서버로부터 콘텐츠를 가져오는 컴퓨터 프로그램으로, GNU 프로젝트의 일부이다. 이 프로그램의 이름은 월드 와이드 웹과 get에서 가져온 것이다. HTTP, HTTPS, FTP 프로토콜을 통해 내려받기를 지원한다. 1위키백과에서 발췌

이런걸 다운 받을 때 사용한다.
웹브라우저가 있다면 클릭 한번이면 되지만
웹브라우저가 없는 터미널 환경 등에서 파일을 다운로드 하기 위해 사용한다.

기본 명령은 단순하다.
“wget 다운로드할_파일주소”

[root@host ~]# wget http://mirror.kakao.com/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-boot.iso         --2020-09-09 18:11:46--  http://mirror.kakao.com/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-boot.iso
Resolving mirror.kakao.com (mirror.kakao.com)... 113.29.189.165
Connecting to mirror.kakao.com (mirror.kakao.com)|113.29.189.165|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 654311424 (624M) [application/octet-stream]
Saving to: ‘CentOS-8.2.2004-x86_64-boot.iso’

13% [========>                                                                ] 89,458,496  11.2MB/s  eta 49s

다운로드 시 파일명 변경
원본 파일명은 CentOS-8.2.2004-x86_64-boot.iso이지만
다운로드 파일 이름은 centos-boot.iso 이 된다.

[root@host ~]샾 wget -O centos-boot.iso http://mirror.kakao.com/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-boot.iso

HTTPS 사이트에서 인증서 오류 등 발생 시

[root@host ~]샾 wget --no-check-certificate http://mirror.kakao.com/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-boot.iso

하위 디렉토리를 포함해 여러 파일을 다운로드 하고 싶을 때

[root@host ~]샾 wget -r http://mirror.kakao.com/centos/8.2.2004/isos/x86_64/ 
 # 파일 이름을 지정하지 않음을 기억하자.

robots.txt 로 인해 순환 다운로드(-r)가 안될 때

[root@host ~]샾 wget -r -e robots=off 
 http://mirror.kakao.com/centos/8.2.2004/isos/x86_64/ 

Linux 패스워드 관련 정책 설정

1. 패스워드 사용 기간 설정

[root@hostname ~]# vi /etc/login.defs
 #아래 값들을 변경한다.
PASS_MAX_DAYS 90
 #패스워드 최대 사용 기간. 90일 지나면 변경 해야 함
PASS_MIN_DAYS 0
 #패스워드 최소 사용 기간. 변경 최소 0일간 변경 불가.
PASS_MIN_LEN 9
 #패스워드 최소 길이. 9자 이상.
PASS_WARN_AGE 10
 #패스워드 변경 경고 출력 기간. 변경일로부터 10일 전부터 표시.

2. 패스워드 복잡도 설정

[root@hostname ~]# vi /etc/security/pwquality.conf

minlen = 8
 #패스워드 최소 길이
minclass = 4
 #각기 다른 문자의 조합 수 
 #즉 4로 설정 했을 경우 숫자, 대문자, 소문자, 특수문자가 모두 포함 되어야한다.
 #0은 설정 안함.
maxrepeat = 2
 #연속으로 같은 문자의 사용 허용
maxclassrepeat = 0
 #연속으로 같은 종류의 문자 사용 허용.

3. 계정 임계 값 설정

[root@hostname ~]# vim /etc/pam.d/system-auth

auth required pam_tally2.so deny=5 unlock_time=60
 #5회 로그인 실패 시 계정이 잠기고 60초 이후에 풀린다.

YUM 기본 패키지

‘필수’ 의미의 기본이 아니라 이래저래 많이 사용되는 패키지들이다.
필요할 때마다 하나씩 선택해서 설치해도 되고, 귀찮음을 줄이기 위해 일단 설치 해도 되는 패키지들이다.

sudo yum -y install  wget vim setup gdb setuptool nfs-utils autofs rdate gcc iotop ntp curl traceroute unzip lsof tree net-tools nmap it compat-libcap1 gcc-C++ glibc glibc-devel ksh libaio compat-libstdc++-33 libaio-devel libgcc libstdc++ libstdc++-devel libXi libXi libXtst libXtst make sysstat xorg-x11-apps xrdp epel-release maven telnet bind-utils nmap htop tmux

YUM (Yellow-dog Updater Modified)

1. 개요
Yum은 Yellow dog Updater, Modified의 약자로 RPM 기반의 시스템을 위한 자동 업데이터 겸 패키지 설치/제거 도구이다. 듀크 대학교의 Linux@DUKE 프로젝트의 일부분으로 개발되었다. yumex 같은 GUI 기반 확장 도구도 있다.
Yum 이전에 있었던 Yellowdog Updater (YUP) 도구를 대체하며, 듀크 대학교 물리학부에서 사용되었던 레드햇 리눅스 시스템 관리를 위해서 등장하였다. 그 이후로 페도라, CentOS 등 많은 RPM 기반 리눅스 배포판에서 사용되었다. 레드햇의 패키지 관리자 up2date에서도 Yum 저장소에 접근할 수 있다.
현재 GNU 일반 공중 사용 허가서 버전 2 이상으로 사용 가능하다.
Yum은 페도라 22 버전 이후부터 DNF로 전환되고 있다. 그러나 여전히 Yum의 전신인 rpm, 그리고 후신인 DNF와 같이 사용 가능하다.

rpm 패키지들에 대해 검색, 다운로드, 설치 기능을 편리하게 해 주는 것이 가장 큰 역할이지만, 가장 큰 장점은 의존성 1‘A’라는 패키지 설치를 위해 ‘가’ 라는 패키지가 필요할 경우 ‘A’에 대한 설치 명령만 수행해도 ‘가’ 패키지를 함께 다운로드하고 설치 해 준다. 문제를 자동으로 해결 해준다는 점이다.

2. Repository 파일
/etc/yum.repo.d/ 아래에 존재한다.
※ CentOS Base repository 예

[CentOS-repo]
name=CentOS-7- Base
 # 리포지터리 이름 (단지 이름이다.) 
baseurl=http://mirrorlist.centos.org
 # 패키지를 다운로드할 수 있는 미러 목록이 포함된 URL 또는 저장소 자체 지정
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
 # 리포지터리 주소
enabled=1
 # 활성화 여부
gpgcheck=0
 # gpg key 검증 여부
 # 리포지터리에 있는 패키지 파일이 정상적인 파일인지확인한다. (변조 여부 등)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 #gpg key 위치 

3. 사용법 : 검색 관련

[HOSTNAME:/root]# yum clean all
 # Yum cache 삭제

[HOSTNAME:/root]# rm -rf /var/cache/yum
 # yum clean all 명령의 에러 발생 등의 경우

[HOSTNAME:/root]# yum repolist
 # /etc/yum.repo.d/ 아래의 모든 리포지터리 정보를 갱신한다.

[HOSTNAME:/root]# yum search PACKAGE_NAME
 # PACKAGE_NAME 이라는 이름을 포함한 패키지를 검색한다.

[HOSTNAME:/root]# yum provides LIBRARY_NAME
 # LIBRARY_NAME 이라는 라이브러리를 포함한 패키지를 검색한다.

[HOSTNAME:/root]# yum list 
 # 패키지 리스트를 출력한다.

 [HOSTNAME:/root]#  yum list installed 
 # 현재 설치된 패키지 리스트를 출력한다.

[HOSTNAME:/root]#  yum list PACKAGE_FULL_NAME --show duplicate
 # PACKAGE_FULL_NAME 패키지의 중복 여부 정보를 출력한다.

[HOSTNAME:/root]# yum list PACKAGE-VERSION
  # PACKAGE 란 이름의 패키지 중 VERSION 에 해당하는 버전의 목록을 출력한다. 

4. 사용법 : 패키지 설치

[HOSTNAME:/root]# yum install PACKAGE_NAME
 # PACKAGE_NAME 패키지를 설치한다.

[HOSTNAME:/root]# yum install PACKAGE_NAME*
 # PACKAGE_NAME으로 시작하는 이름의 패키지들을 설치한다.

[HOSTNAME:/root]# yum install PACKAGE_1 PACKAGE_2 PACKAGE_3
 # PACKAGE_1, PACKAGE_2, PACKAGE_3 세개의 패키지를 설치한다.

[HOSTNAME:/root]# yum -y install PACKAGE_NAME
 #  명령어 수행 시 사용자의 확인이 필요한 경우('진짜로 설치 하시겠습니까? 등 ')자동으로 y 가 입력되는 것과 같다

5. 사용법 : RPM 패키지 설치

 [HOSTNAME:/root]# yum install /tmp/PACKAGE_1.rpm
 # /tmp/PACKAGE_1.rpm 을 설치한다. 의존성 패키지가 필요한경우 리포지터리에서 자동으로 다운로드 하고 함께 설치 된다.

 [HOSTNAME:/root]# yum install /tmp/*
 # /tmp 디렉토리 내에 모든 rpm 을 설치한다.

※ yum 명령은 관리자 권한(root)으로 수행 해야 한다.