[이것이 리눅스다 4-3] RPM, YUM, cron

2024. 11. 14. 13:48Linux

이것이 리눅스다 강의 목차

4.6 RPM 사용법, YUM 사용법

4.7 YUM 고급 사용법

4.8 파일 압축과 묶기, cron 과 at

의 내용을 축약해서 담고 있습니다.


 

프로그램 설치를 위한 RPM [1] 

RPM : redhat package manager

확장명은 *.rpm이다. ls -l로 조회시,

예 ) gedit-3.8.3-6.el7.x86_64.rpm

같은 형식으로 출력된다. 해석해보자면

gedit 3.8.3 6 el7 x86_64
패키지 이름 버전 릴리즈번호 centOS 버전 아키텍처

 

자주 사용되는 RPM 명령어 옵션

# 설치
rpm -Uvh package_name.rpm

U → 패키지 설치/업그레이드

v → 설치 과정의 확인

h → 설치 진행 과정을 "#" 마크로 화면에 출력

 

# 삭제
rpm -e package_name

 

이미 설치된 패키지 질의

rpm -qa package_name # 패키지가 전부 설치되었는지 확인
rpm -qf 절대경로 # 파일이 어느 패키지에 포함된 것인지 확인

rpm -qlp package_name.rpm # 패키지 파일에 어떤 파일들이 포함되어있는지 확인 
rpm -qip package_name.rpm # 패키지 파일의 상세 정보

 

RPM의 단점

A 패키지를 설치한다고 가정할때, A패키지가 의존하고 있는 B패키지에 대한 내용은 RPM으로 해결이 어려움

즉, 의존성 문제가 발생하여 해당 문제를 해결하기 위해 YUM 등장

 


 

편리한 패키지 설치, YUM [1] 

: yellowdog updater modified

→ 인터넷을 통하여 필요한 파일을 저장소에서 자동으로 모두 다운로드해서 설치함

 

YUM 기본 설치 방법 

yum install package_name # 기본 설치 명령어
yum -y install package_name # 모든 질문에 yes로 간주하고 설치를 진행한다는 옵션

 

기본적인 명령어

yum localinstall rpm파일이름.rpm 
# 해당 패키지에 필요한 의존성 파일을 인터넷에서 찾아서 다운 받아줌

yum check-update # 업데이트 가능한 패키지 목록 보기
yum update 패키지이름 # 해당 패키지 업데이트 
yum remove 패키지이름 # 삭제
yum info 패키지이름 # 정보 확인

 

YUM 고급 사용법

yum groupinstall "패키지그룹이름" # 패키지 그룹 설치
yum list "패키지이름" # 패키지 리스트 확인
yum provides "파일이름" # 특정 파일이 속한 패키지 이름 확인 
yum install --nogpgcheck rpm파일이름.rpm # CentOS19에서 검증되지 않은 패키지 강제 설치
yum clean all # 기존 저장소 목록 지우기

 

명령어는 직접 사용하며 익숙해지는게 가장 편한것같다.

YUM의 원리  

yes를 입력받는 과정이 필요

 

  RPM YUM
의존성 처리 자동 처리 수동 처리 필요
설치 소스 온라인 저장소, 로컬 파일 로컬 RPM 파일만

 

YUM 작동 방식 설정 파일

/etc/yum.conf 파일

/etc/yum.repos.d/ 디렉터리 : 네트워크의 주소가 들어있는 파일 목록

/etc/yum.repos.d/ 디렉터리의*.repo파일  : 출시 시점의 원본 패키지만 설치됨

 


 

파일의 압축과 묶기

 

파일 압축

압축 파일 확장명 : xz, bz2, gz, zip, Z

xz, bz2 압축률 우수

# 파일명이 myfile이라고 칠때

# xz
xz myfile
xz -d myfile.xz #압축 풀기

# bzip2 (bunzip2도 옵션 동일)
bzip2 myfile
bzip2 -d myfile.bz2

# gzip (gunzip도 옵션 동일)
gzip myfile
gzip -d myfile.gz

 

파일 묶기

파일 묶기 명령어는 'tar'이며, 묶인 파일 확장명도 'tar'이다

동작 : c(묶기), z(풀기), t(경로 확인)

옵션 : f(파일), v(과정 보이기), J(tar+xz),  j(tar+bzip2), Z(tar+compress), z(tar+gzip)

옵션 기능
J tar + xz
j tar + bzip2
Z tar + compress
z tar + gzip

 

tar cvf my.tar etc/sysconfig/ #묶기
tar cvfJ my.tar.xz /etc/sysconfig/ /etc/sysconfig/ # 묶기 + xz 압축
tar xvf my.tar # tar 풀기
tar xvfJ my.tar.xz /etc/sysconfig/ # xz 압축 해제 + tar 풀기

 

파일 위치 검색

find 경로 옵션 조건 action : 기본 파일 찾기

옵션 : -name, -user(소유자), -newer(전, 후), -perm(허가권), -size(크기)

  action : -print(디폴트), -exec(외부명령 실행)

find /etc -name "*.conf"
find /bin -size +10K -size -100k
find /home -name "*.swp" -exec rm {} \;

which 실팽파일이름 : PATH에 설정된 디렉터리만 검색

whereis 실행파일이름 : 실행 파일, 소스. man페이지 파일까지 검색

locate 파일이름 : 파일 목록 데이터베이스에서 검색

 


시스템 설정

날짜 및 설정 (system-config-date) 

: system-config로 시작하는 명령어들은 거의 GUI 기반이다. 

네트워크 설정 (nmtui)

방화벽 설정 (firewall-config)

서비스 설정 (ntsysv)


CRON과 AT

cron

주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정

관련된 데몬(서비스)은 "croud", 관련 파일은 "/etc/crontab"

 

/etc/crontab 예시

01 * * * * root run-parts /etc/cron.hourly

01 * * * * root run-parts /etc/cron.hourly
매시간 1분 매시간 매일 매월 매요일(0-일요일) root 사용자 권한으로 디렉터리 내 실행 가능한
스크립트를 실행
실행할 스크립트가 있는 디렉터리

 

at

일회성 작업을 예약

at 3:00an tomorrow # 내일 새벽 3시
at 11:00am January 30 # 1/30 오후 11시
at now + 1 hours

at> 프롬포트에 접근하게 되면 수행할 명령어 작성

완료되면 ctrl+D를 통해 빠져나온다.

 

at -l # 예약 리스트 확인
atrm <작업번호> # 예약 취소