bxm's IT Story
Linux #6 - 리눅스 압축 도구 본문
## 리눅스 압축 도구
- tar (tape archiving) : 다수의 데이터들을 묶음 형태로 저장.
1) 생성 : tar -cvf [archiving filename].tar [source]
2) 풀기 : tar -xvf [archiving filename].tar -C [destination-dir]
-c | 새로운 묶음을 생성 |
-x | 묶인 파일을 풀어줌 |
-t | 묶음을 풀기 전에 목록을 보여줌 |
-f | 묶음 파일명을 지정해줌 |
-v | 파일이 묶이거나 풀리는 과정을 보여줌 |
-z | tar+gzip |
-j | tar+bzip |
- Gzip
Gzip [파일명] 10
Unzip [파일명] ,gzip-d [파일명]
Bzip2 [파일명] gz확장자, 원본 사라짐.
## 과제 1 ##
/root 디렉토리의 모든 파일을 묶은 후 압축하여 /temp에 roottest.tar.gz으로 생성하세요.
gzip 또는 bzip으로 압축하시오.
## 과제 2 ##
roottest.tar.gz 파일의 압축을 푼 후 tar 파일 묶음을 /temp/roottestdir에 푸세요.
## 과제 3 ##
/bin 디렉토리 안의 모든 내용을 gzip 압축 및 tar로 묶어서 /home 디렉토리 안에 binlist.tar.gz 파일로 생성하세요.
i) tar -cvf /home/binlist.tar /bin/*
ii) gzip /home/binlist.tar
iii) tar + gzip : tar -cvzf /home/binlist1.tar.gz /bin/*
tar -xvzf /home/binlist1.tar.gz
tar + bzip2 : tar -cvjf /home/binlist.tar.bz2 /bin/*
tar -xvjf /home/binlist.tar.bz2
지금까지 생성하고 푸는 것을 따로 했었는데, 한방에 같이 하는 것을 해보자!!
1) 한방에 묶고 압축
2) 한방에 풀어보기
## Linux package installation
1. 소스 -> 컴파일 -> 환경설정 -> 설치 -> 실행 : tar
2. x x x -> 설치 -> 실행 : rpm
( package ) ## tar의 과정을 package로 모두 생략해버린게 rpm임.
3. 인터넷 : yum
# RPM (Rdehat Package Manager) #
- 리눅스 초창기에는 없었던 패키지 개념을 도입하여 설치와 삭제, 업그레이드 등을 편리하게 만들었다.
예컨대 vin-enhanced- 7. 0. 109 - 3. i386.rpm
[패키지명] [주버전] [보조버전] [수정버전] [배포버전] [아키텍처]
& noarch : 모든 cpu에 설치 가능 (NO ARCHitecture)
# RPM 사용법 #
- 설치 : rpm -i(U)vh [packagename] --.rpm -nodeps // no dependancy
- 삭제 : rpm -e [packagename] // e : 삭제
- 확인 : rpm -qa | grep [packagename]
// -qa : 시스템에 설치되어 있는 전체 패키지 목록 조회
// grep (Global REgix Print) : 패턴 검색
rpm -ivh 이름 --.rpm
# RPM 설치 및 삭제시 유의 사항 #
1. 의존성 오류를 무시하지 말자.
2. 의존성 오류를 제기한 패키지들부터 작업을 한다.
3. 가급적 의존성 오류 무시 (-nodeps)를 사용하지 말자 (상호 의존의 경우는 제외)
4. lib으로 시작하고, 중간에 so가 들어간 것은 패키지가 아니므로 무시한다.
5. 패키지는 대표 패키지부터 작업을 한다.
6. 나머지는 화면에 보이는 순서대로 작업을 한다.
7. 되도록 버전을 일치시킨다.
CD롬을 Mount 시켜보자.
rpm -e vim-minimal-7.4. 160-2.el7.x86_64 --nodeps
# 전부 다 지웠다가 다시 재설치 #
rpm -ivh vim-minimal-7.4.160-2.el7.x86_64.rpm
rpm -ivh vim-enhanced-7.4.160-2.el7.x86_64.rpm
rpm -ivh vim-common-7.4.160-2.el7.x86_64.rpm
rpm -ivh vim-filesystem-7.4.160-2.el7.x86_64.rpm
# YUM : Yellowdog Updater, Modified #
Redhat Linux 에서는 제공하지 않다가 Fedora Core Project로 넘어오면서 RedHat, RedHat 계열의 리눅스에
포팅 되었다. 단, 네트워크 연결이 되어 있어야만 사용 가능하다.
지정된 서버 주소로부터 업데이트된 패키지들을 검사하여 다운로드하고 설치까지 해주는 텍스트 기반의 업데이트
프로그램이다. 또한 의존성 문제도 같이 검사하여 관련 패키지들을 자동으로 설치해주기 때문에 이전에 다소 불편하던
RPM j기반의 프로그램 설치 및 업데이트를 대폭 개선한 패키지 관리자이다. 단, 패키지명을 알고 있어야 사용
가능하다.
[y 옵션] : 패키지가 여러개일 경우 ~을 설치할까요? 하는 질문에 대해 바로 yes를 입력해줌.
- yum [-y] update : 업데이트 가능한 최신 패키지 조회 후 업데이트. 주로 리눅스 설치 직후 작업을 실시한다.
- yum [-y] install [packagename] : 패키지 설치
- yum [-y] remove [packagename] : 패키지 삭제
- yum list : 업데이트 가능한 패키지 확인
- /etc/yum.conf : yum의 설정파일의 위치로 업데이트 서버의 URL과 기타 세부적인 사항이 기록되어 있다.
yum -y install "vim-*"
# DNF : DaNdiFied yum #
RPM 기반 리눅스 배포판을 위한 패키지 관리 도구이다. 페도라22와 리눅스 8부터 기존의 Yum을 대신하여
기본 패키지 관리 도구로 채택되었다. DNF 명령은 RPM 명령의 패키지 의존성 문제를 완전히 해결해준다.
즉, 특정 패키지를 설치하고자 할 때, 의존성이 있는 다른 패키지를 자동으로 먼저 설치해준다. 단, 인터넷에 연결된
상태여야 하며, CentOS 프로젝트가 제공하는 RPM 파일 저장소(Repository)의 URL을 알아야 한다. 해당 URL은
/etc/yum.repos.d/ 디렉토리에 저장되어 있다.
- 설치 : # dnf mysql-errmsg -> dnf install mysql-errmsg
- 삭제 : # dnf remove 패키지명
- 정보확인 : # dnf info 패키지명
- 업데이트 가능한 목록 보기 : # dnf check-update
## dnf clean all로 저장소 목록 제거 후
- 패키지 그룹 설치 : # dnf groupinstall "패키지 그룹명"
- 패키지 그룹 리스트 확인 : # dnf grouplist
## "그냥 dnf라는게 있다!!" 이정도로 알아두기
# Runlevel #
** 6.x 에서는 /etc/inittab 파일에서 설정 가능
0 | halt -> 종료, 기본값으로는 사용 안함. |
1 | single user mode, 단일 사용자, 윈도우 안전모드, 비밀번호 재설정, 파일시스템 체크, 복구 작업 |
2 | multi usermode, without NFS, 다중 사용자 모드, 네트워크 지원 안함. |
3 | Full multi usermode, 다중 사용자 모드, 네트워크 지원 |
4 | unused, 예약됨, 1~3 까지는 CLI 환경 |
5 | X11, 그래픽모드 지원, 네트워크 지원, 다중사용자, GUI 환경 부팅 |
6 | reboot |
## init 6 하면 재부팅된다 ㅋ.ㅋ
## vi /etc/inittab 을 통해서 들어가보니, 위에 0~6까지의 설명이 영어로 쓰여져 있음. 그.런.데!! 맨 윗줄을 보니
더이상 쓰지 않는다고 나옴. Ver6까지만 쓰였다!!
** 7.x / 8.x
runlevel 0 | poweroff.target |
runlevel 1 | rescue.target |
runlevel 2 | |
runlevel 3 | multi-user.target |
runlevel 4 | |
runlevel 5 | |
runlevel 6 |
## multi-user.target이 runlevel 3으로 나오는데 확인해보자. 그 전에 multi-user.target 기본값 확인.
systemctl get-default (현재 GUI 모드라는 것임)
## runlevel 바꾸기.
systemctl set-default multi-user.target
init 6
## 검은색 화면만 뜬다. multi-user 라서 그럼.
systemctl set-default graphical.target
오늘은 여기까지!!
'서버 > Linux' 카테고리의 다른 글
서버 구축 - Apache Web Server (0) | 2021.07.02 |
---|---|
Linux #7 - Root password 복구(Grub)와 SELinux 보안 (0) | 2021.07.01 |
Linux 이론#6 - User와 Group 관련 명령어 / chmod (허가권,소유권) / Process(bg, fg, kill) (0) | 2021.06.24 |
Linux 이론#5 - Shell, 기타 명령어 (0) | 2021.06.23 |
Linux 이론#4 - Mount, Snapshot(복원지점), vi, cat (0) | 2021.06.22 |