패키지 관리
* RPM ( Redhat Package Management )
- 패키지 관리도구
+@ 프로그램을 설치하고 동작시키기위한 기능이 묶여있는 파일
Ex) install.exe , setup.exe , install.msi
- 패키지 파일 이름 구조
xterm-253-1.el6.x86_64.rpm
[패키지명,버젼]
xterm , 253-1
[릴리즈]
el6
- Enterprise Linux 6 커널에서 설치 및
동작이 가능한 패키지
[아키텍처]
x86_64
x86 : 많이 사용되는 인텔 CPU들을 통틀어 x86이라고 한다.
64 : 64bit 연산을 지원하는 CPU
( 64bit를 조작할 수 있는 운영체제에서 동작가능한 패키지 )
i386 : 32bit 연산을 지원하는 CPU
( 32bit를 조작할 수 있는 운영체제에서 동작가능한 패키지 )
noarch : CPU구조와 상관없이 모두 설치가 가능한 패키지
[확장자]
rpm
* rpm 패키지 설치 ( -ivh )
-i ( install ) : 설치
-v ( verbose ) : 설치과정 출력
-h ( hash # ) : 설치과정을 #으로 출력
#rpm -ivh xterm-253-1.el6.x86_64.rpm
의존성 오류 발생
f - #rpm -qf [파일명]
파일이 포함되어있는 패키지 명을 출력
Ex)
#rpm -qf /bin/ls
coreutils-8.4-46.el6.x86_64
i - #rpm -qi [패키지명]
패키지 상세 정보 확인
Ex)
#rpm -qi coreutils
l - #rpm -ql [패키지명]
패키지에 포함된 파일을 확인
Ex)
#rpm -ql coreutlis
R - #rpm -qR [패키지명]
패키지 의존성 확인
Ex)
#rpm -qR coreutils
e - #rpm -e [패키지명]
패키지 삭제
Ex)
#rpm -e coreutils
+@ 자주 사용되어지는 옵션
#rpm -qa 패키지명 //특정 패키지가 시스템에
설치되어 있는지 확인
"공백"이 화면에 출력될시 설치가 되지 않은 상태
yum ( yellow dog updater modified )
- rpm 기반의 패키지 관리도구로
의존성 문제를 자동으로 해결한다.
- 패키지를 분석하여 시스템에 설치되어있는
패키지와 비교하여 자동으로 업데이트도
진행된다.
- 패키지 정보와 파일을 가지고 있는
저장소 ( Repository )를 이용한다.
* yum 명령어
[ 형식 ]
#yum [옵션] [명령어] [패키지명]
- 명령어
install // 패키지 설치
upgrade // 패키지 업그레이드
update // 패키지 업데이트
check-update // 업데이트 여부 확인
remove // 패키지 제거
list // 목록 확인
list all // 이미 설치가 되어있거나
설치 가능한 패키지 목록 출력
list update // 업데이트 가능한 패키지 목록 출력
list installed // 설치된 패키지 목록 출력
list available // 설치 가능한 패키지 목록 출력
info // 패키지 정보 확인
search // 특정 패키지 검색
* yum 그룹 패키지
- 특정 환경을 구성하기 위해 필요한
패키지를 그룹으로 묶어 설치할 수 있도록 만든 패키지
[ 형식 ]
#yum grouplist // 그룹 패키지 확인
#yum groupinstall [그룹패키지명] // 그룹 패키지 설치
Ex)
#yum grouplist
#yum groupinstall 백업 서버 // x 백업따로 서버 따로
#yum groupinstall "백업 서버" // o
영어로 그룹 패키지 설치하기
#echo $LANG // 언어 확인
ko_KR.UTF-8
#LANG=en_US.UTF-8 // 영어로 변경
#echo $KANG //언어 확인
en_US.UTF-8
#yum grouplist
#yum groupinstall "Backup Server"
* yum 동작 과정
1) #yum 명령어 사용
2) /etc/yum.repos.d/ 디렉터리에 위치한
*.repo 파일을 확인
CentOS-Base.repo // 기본 저장소가 있는 파일
3) mirrorlist 혹은 baseurl에 명시된 저장소 주소를
확인하여 저장소에 위치한 패키지 목록 파일과
패키지를 다운받는다.
! 실 습 - 로컬 repo서버 만들기
@root
#rpm -qa | grep httpd // httpd 설치유무 확인
#yum install httpd // 다운받는 repository 확인
N // 취소
-> Server-A 우클릭 -> Settings
-> DVD1 이미지 탑재 ( 상단에 반드시 connect 체크 )
@root
#mount -t iso9660 /dev/cdrom /mnt // 마운트진행
#df -h // 확인
#cd /mnt/Packages
#ll // 미러사이트에 있는
패키지와 동일한 패키지
#cd /etc/yum.repos.d
#mkdir ./backup // 테스트 백업 디렉터리 생성
#mv ./*.repo ./backup // .repo파일을 전부 백업으로 이동
#vi myRepo.repo // 새 파일 생성
---------------------------------
[my-repo]
name=Local Repositary Server
baseurl=file:///mnt
enable=1
:wq
--------------------------------
#yum clean all // 기존 패키지 목록 삭제
#yum install httpd // 다운받는 경로 확인(my-repo)
! 실 습 - 특정 repo를 지정하기
( 스냅샷 )
#vi /etc/yum.repos.d/CentOS-base.repo
-------------------------------------
1) 미러리스트가 동작하지 않도록 #을 넣어서 주석처리
Ex) mirrolist로 시작하는 부분 #
2) 식별자 변경
[base] -> [kaist-base]
[updates] -> [kaist-update]
[extras] -> [kaist-extras]
3) baseurl 주소를 변경
16번 baseurl=http://ftp.kaist.ac.kr/CentOS/8/os/x86_64/
24번 baseurl=http://ftp.kaist.ac.kr/CentOS/8/updates/x86_64/
32번 baseurl=http://ftp.kaist.ac.kr/CentOS/8/extras/x86_64/
:wq
--------------------------------------
#yum clean all
#yum install httpd // 저장소 확인
+@
식별자
[base-daumkakao]
[update-daumkakao]
[extras-daumkakao]
url : http://ftp.daumkakao.com
#vi /etc/yum.repos.d/CentOS-Base.repo
--------------------------------------
1) 미러리스트가 동작하지 않도록 #을 넣어서 주석처리
Ex)
mirrolist로 시작하는 부분 #
2) 식별자 변경
[base] -> [base-daumkakao]
[updates] -> [updates-daumkakao]
[extras] -> [extras-daumkakao]
3) baseurl 주소를 변경
16번 baseurl=http://mirror.kakao.com/centos/8/os/x86_64/
24번 baseurl=http://mirror.kakao.com/centos/8/updates/x86_64/
32번 baseurl=http://mirror.kakao.com/centos/8/extras/x86_64/
:wq
--------------------------------------
#yum clean all
#yum install httpd // 저장소 확인
* yum이 동작하지 않을 경우 확인해야 할 사항
1) yum 프로세스는 "순차적"으로 실행된다.
- 특정 이유 때문에 yum프로세스가 동작이 안되는 경우
yum을 종료하기 위해서 보통 Ctrl+C를 사용한다.
그런데 yum프로세스는 Ctrl+C가 동작하지 않는 경우가 있다.
그래서 Ctrl+Z를 사용한다. ( Background 프로세스 Stop )
Ctrl+Z를 입력할경우 사용자가 프롬프트를 사용할 수 있기 때문에
또 yum 명령어를 실행을 한다.
하지만 백그라운드의 프로세스가 yum을 사용하고 있기 때문에
무한정 대기해야된다.
=> kill 명령어로 yum 프로세스를 강제로 종료시키면 사용이 가능하다.
2) 리졸빙(해석)을 할 수 없는 경우
-> yum 사용
-> /etc/yum.repos.d/*.repo파일에서
mirrorlist주소 혹은 baseurl을 확인
-> DNS( Domain Name Service)서버에게
baseurl 혹은 mirrorlist주소의 IP 주소를 요청
-> 요청에 응답받은 IP주소로 패키지를 요청
! DNS서버가 올바로 잡혀있지 않은지 확인
#vi /etc/sysconfig/network-scripts/ifcfg-eth0 //DNS확인
#cat /etc/resolv.conf //nameserver확인
+@ 대표 DNS 서버 주소
1) 구글
8.8.8.8 // 1차 DNS 서버
8.8.4.4 // 2차 DNS 서버
2) KT
168.126.63.1 // 1차 DNS 서버
168.126.63.2 // 2차 DNS 서버