bxm's IT Story

Linux #6 - 리눅스 압축 도구 본문

서버/Linux

Linux #6 - 리눅스 압축 도구

bxmsta9ram 2021. 6. 25. 13:55

리눅스 압축도구.txt
0.01MB

## 리눅스 압축 도구

  • 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

 

/temp 안에 test 라는 디렉토리 생성 (나는 예전에 만들어서 이미 있음.)
/etc에 있는 *(모든 파일)들을 /temp/test로 복사해서 tar로 압축을 풀어보았음.

 

  • Gzip 

     Gzip [파일명]    10

     Unzip [파일명]  ,gzip-d [파일명]

     Bzip2 [파일명]   gz확장자, 원본 사라짐.


## 과제 1 ##

 /root 디렉토리의 모든 파일을 묶은 후 압축하여 /temp에 roottest.tar.gz으로 생성하세요.

gzip 또는 bzip으로 압축하시오.

roottest.tar.gz 파일이 생성되었다!! 성공


## 과제 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. 되도록 버전을 일치시킨다.

vim* 으로 하니까 너무 많이 나온다..! vim 까지만 붙여서 다시 해보자.

 

CD롬을 Mount 시켜보자.

마운트 과정 / 마운트 성공
VI 에디터인데 이걸 한번 지워보자.

 

 

1. common에 의지한단다. common으로 지워보자.
2. common은 또 enhanced에 의존함. 하..
enhanced 제거 성공!
마지막 남은 잔챙이가 vim이 아닌 파일에 의존하고 있음. vim이 아닌 파일을 지우면 안되므로, 

rpm -e vim-minimal-7.4. 160-2.el7.x86_64 --nodeps

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과 기타 세부적인 사항이 기록되어 있다.

ifconfig로 IP 확인.
vim으로 시작하는 모든 것들을 다 지웠음. "vim-*" 으로 시작하는 것들을 다 지우라는 뜻임. 이것도 일일이 지워줘야 함.

 

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 info mysql-errmsg 를 쳤더니 dnf를 지원하지 않음.
패키지를 설치할 때 참고하는 URL 목록임. 중요한 파일!!


억지로 dnf 깔아봤음
억지로 dnf 깔아봤음(2)

 

CentOS 8 부터 지원되기 때문에 안된다 ㅠㅠ..

 

## "그냥 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까지의 설명이 영어로 쓰여져 있음. 그.런.데!! 맨 윗줄을 보니 더이상 쓰지 않는다고 나옴.

   ## 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

이렇게 치고, init6 명령을 시행하면 원위치로 돌아가게 된다.
원상복구 되었음.

 

오늘은 여기까지!!