02. 리눅스 운영 및 관리 - 5

castlehi·2022년 3월 1일
0

LinuxMaster Level2

목록 보기
8/12
post-thumbnail

05. 소프트웨어 설치 및 관리

Section 1 : 패키지 설치 및 제거

패키지

  • 프로그램을 설치하고 관리하는 방법
  • 소스 코드를 컴파일설치하도록 도와주는 관리 도구

RPM(Redhat Package Manager)

  • 레드햇 사에서 개발
  • 패키지를 설치, 업그레이드, 제거 시
  • 파일 확장자명 : *.rpm
  1. 패키지 구성
    1) 일반 패키지

    httpd-2.4.6-93.el7.centos.x86_64.rpm
    구성이름설명
    httpd패키지명특정 서비스나 라이브러리를 의미하는 이름
    2.4.6버전주버전(2), 부버전(4), 패치번호(6)
    93릴리즈 번호패키지를 업데이트하여 배포할 때마다 붙여지는 번호
    el7.centosCentOS 버전CentOS에서 배포할 경우 붙여짐
    x86_64아키텍쳐Intel 또는 AMD 계열 64비트 CPU
    rpm확장자RPM 패키지 의미

    2) 커널 패키지

    kernel-3.10.0-957.el7.x86_64.rpm
    구성이름설명
    kernel패키지명특정 서비스나 라이브러리를 의미하는 이름
    3.10.0버전주 버전(3), 부 버전(10), 패치 번호(0)
    부 버전 짝수 : 안정 버전 / 홀수 : 불안정 버전(개발 버전)
    957.el7릴리즈 번호패키지를 업데이트하여 배포할 때마다 붙여지는 번호
    x86_64Intel 또는 AMD 계열 64비트 CPU
    rpm확장자RPM 패키지 의미
  2. 기본 형식

    [root@localhost ~]# rpm [옵션][패키지명]
  3. 옵션

    옵션설명
    -a모든 패키지 검색
    -e패키지 제거
    -f해당 파일을 포함한 패키지에 대해 질의
    -F-f 옵션과 같지만 파일명을 표준 입력에서 읽음
    -h패키지 설치 시 해시 마크 출력
    -i패키지 설치
    -K서명 검증
    -V패키지 검증
    -q패키지 설치 여부 확인
    -U기존 패키지 업그레이드
    -v자세한 정보 출력
    -vv디버깅 정보 출력
    --force기존에 설치된 패키지가 존재할 경우 강제로 설치
    --nodeps의존성 무시
    --oldpackage구버전으로 다운그레이드
    --replacepkgs패키지 재설치
    --replacefiles설치하려는 패키지가 기존에 설치된 패키지의 파일을 교체하는 경우 rpm은 설치를 거부하거나, 이 옵션을 추가하면 설치를 진행

yum(Yellow Updater Modified)

  • 네트워크를 통해서 설치
  1. 기본 형식
[root@localhost ~]# yum [옵션][명령어][패키지명]
  1. 설치
명령설명
-y install패키지 설치
-y update패키지 업데이트
localinstall로컬에 존재하는 패키지 설치
groupinstall그룹 패키지 설치
  1. 제거
명령설명
remove패키지 제거
groupremove그룹 패키지 제거
  1. 확인
명령설명
info패키지 정보 출력
search해당 문자열이 포함된 패키지 출력
check update업데이트 가능한 패키지 목록 출력
check-update업데이트가 필요한 패키지 출력
list전체 패키지 정보 출력
grouplist그룹 패키지 정보 출력
history패키지 설치, 업데이트, 제거 등의 작업 이력 출력

dpkg(Debian Package Manager)

  • 데비안의 저레벨 패키지 관리자
  • 파일 확장자 : *.deb
  1. 패키지 구성
emacs_15.04_all.deb
구성이름설명
emacs패미지명특정 서비스나 라이브러리를 의미하는 이름
15.04버전15.04 버전
all아키텍처모든 아키텍처 사용 가능
deb확장자Debian 패키지 의미
  1. 옵션
옵션설명
-c패키지에 포함된 파일 목록 출력
-i패키지 설치
-I패키지 정보 출력
-l설치된 패키지 목록 출력
-L설치된 패키지에 포함된 파일 목록 출력
-P패키지 제거
-r설치된 패키지만 제거
-S패키지 상세 정보 출력

apt-get(Advanced Packaging Tool get)

  • 리눅스 시스템에서 패키지를 설치, 제거, 확인하는 데비안 패키지 관리 도구
  • 네트워크를 기반으로 수행
  • 참조 : /etc/apt/source.list
  1. 기본 형식
[root@localhost ~]# apt-get [옵션][명령어][패키지명]
  1. 옵션
옵션설명
-b소스 패키지를 다운로드한 후 빌드
-d압축 파일을 다운로드만 하기
-f오류 패키지 수정
-u업그레이드 패키지 목록 출력
-V상세한 버전 정보 출력
-y모든 질의에 'yes' 처리
  1. 명령어
명령어설명
autoremove사용하지 않는 모든 패키지를 자동으로 제거
autoclean다운로드한 압축 파일 중 오래된 것 지우기
build-dep소스 패키지의 빌드 의존성 설정
check의존성 오류 패키지 확인
clean다운로드한 압축 파일 지우기
dist-upgrade배포판 업그레이드
download현재 디렉터리로 바이너리 패키지 다운로드
install패키지 설치
purge패키지와 환경설정 파일을 함께 제거
remove패키지 제거
source소스 압축 파일 다운로드
update새로운 패키지 목록 다운로드
upgrade업그레이드 실행

Section 2 : 소스 파일 설치 및 제거

파일 아카이브(File Archive)와 압축

  • 여러 개의 파일이나 디렉터리를 하나의 파일로 묶는 것
  • 파일을 이동하거나 백업
  • 파일 확장자 : *.tar
  1. 기본 형식
[root@localhost ~]# tar [옵션][아카이브 파일명][묶을 파일명]
  1. 옵션
옵션설명
-A지정된 파일을 아카이브에 추가
-c아카이브 파일 생성
-C대상 디렉토리 경로 지정
-d아카이브와 파일 시스템 차이점 비교
-e첫 번째 오류 발생 시 중지
-f대상 아카이브 지정
-j'bzip2' 압축 또는 해제
-J'xz' 압축 또는 해제
-k아카이브 추출 시 기존 파일 유지
-p아카이브 파일 생성 시 권한을 그대로 유지
-P최상위 '/'를 포함하여 절대 경로로 관련 정보를 유지
-r아카이브의 마지막에 파일 추가
-t아카이브에 포함된 내용 확인 (해체하지 않음)
-u아카이브에 포함된 파일보다 새로운 파일로 업데이트
-U아카이브 추출 시 기존 파일 제거
-v처리 과정 출력
-w모든 진행 과정 확인 요청
-x아카이브에서 파일 추출
-z'gzip'압축 또는 해제

파일 압축과 해제

  1. gzip과 gunzip

    • 파일 확장자 : *.gz

    1) 기본 형식

    [root@localhost ~]# gzip [옵션][파일명]
    [root@localhost ~]# gunzip [파일명]

    2) 옵션

    옵션설명
    -c압축 결과를 출력하고, 원본 파일은 그대로 유지
    -d압축 해제
    -f강제 압축
    -l압축 파일의 정보 출력
    -n'n'은 1부터 9까지 숫자. 1이 가장 빠르지만, 압축률은 가장 낮음
    -r디렉터리를 지정 시 디렉터리에 포함된 모든 파일 압축
    -t압축 파일 테스트
    -v압축 혹은 해제 시 자세한 정보 출력
  2. bzip2와 bunzip2

    • 파일 확장자 : *.bz2

    1) 기본 형식

    [root@localhost ~]# bzip2 [옵션][파일명]
    [root@localhost ~]# bunzip2 [파일명]

    2) 옵션

    옵션설명
    -c압축하거나 압축 해제한 파일을 표준 출력으로 보냄
    -d압축 해제
    -f압축 혹은 해제 시 파일명이 같은 파일이 있을 경우 덮어씀
    -k원본 파일 유지하며, 압축 또는 해제
    -v상세한 정보 출력
    -z파일 압축
    -1~-9압축 블록 크기 지정
  3. xz와 unxz

    • 파일 확장자 : *.xz

    1) 기본 형식

    [root@localhost ~]# xz [옵션][파일명]
    [root@localhost ~]# unxz [파일명]

    2) 옵션

    옵션설명
    -d압축 해제
    -l압축 파일에 대한 정보 출력
    -t압축 파일의 무결성 검사
    -z파일 압축
  4. compress와 uncompress

    • 파일 확장자 : *.Z

    1) 기본 형식

    [root@localhost ~]# compress [옵션][파일명]

    2) 옵션

    옵션설명
    -b최대 비트 수 제한
    -c기본 생성 파일인 '*.Z' 파일이 아닌 지정한 파일로 생성
    -d압축 해제
    -f압축 혹은 해제 시 파일명이 같은 파일이 있을 경우 덮어씀
    -r디렉터리 압축 시 하위 디렉터리의 파일들까지 압축
    -v압축 과정 출력
    -V버전 정보 출력
  5. zip과 unzip

    • 파일 확장자 : *.zip

    1) 기본 형식

    [root@localhost ~]# zip [옵션][파일명]

    2) 옵션

    옵션설명
    -e'zip'파일에 암호 설정
    -r디렉터리까지 압축
    -x압축 시 파일 제외
    -1빠른 압축(압축률 최소)
    -9높은 압축률(속도 느림)

소스 코드 설치

  • 압축 해제 후 순서에 따라 컴파일
  • 대부분 C언어로 작성

1) 컴파일 순서

순서단계파일설명
1단계환경설정./configure프로그램 설치과정에서 필요로 하는 makefile 생성
2단계컴파일makemaefile을 기반으로 소스 파일을 컴파일
'make'가 끝나면 소스 파일은 실행 파일로 변환
3단계파일 설치make install컴파일된 실행 파일을 지정된 디렉터리에 설치

2) CMake(Cross Platform Make)

  • 멀티 플랫폼을 사용할 수 있는 make를 대체할 프로그램을 만들기 위한 오픈 소스 프로젝트
  • 운영 체제에 맞게 'make'파일을 생성
  • 유닉스 계열은 물론 윈도 계열의 프로그램 도구도 지원
profile
Back-end Developer

0개의 댓글

관련 채용 정보