LINUX(Server)

패키지 관리

천천히, 한 걸음씩 2024. 4. 20. 16:39

패키지 관리

* 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 서버

'LINUX(Server)' 카테고리의 다른 글

Bonding  (0) 2024.04.22
네트워크 기초  (0) 2024.04.21
파일시스템 관리  (4) 2024.04.19
프로세스 관리  (2) 2024.04.18
권한 관리  (0) 2024.04.17