[리눅스마스터 2급 2차] 1과목 – 5. 소프트웨어 설치

[1과목: 리눅스 운영 및 관리]

1. 파일 시스템 관련 명령어

2. 쉘(Shell)

3. 프로세스 관리

4. 에디터(Editor)


5. 소프트웨어 설치

5. 1. 개념 및 사용법 ★

  • 리눅스 시스템에서 소프트웨어를 관리하는 방법은 다음과 같음
    • 배포 업체의 패키지를 설치
    • 소스 코드를 직접 컴파일
  • 슬렉웨어과 같은 예외도 있지만 리눅스는 레드햇 계열데비안 계열로 나뉨

레드햇 계열

  • 배포 업체: Fedora, CentOS, RHEL, openSUSE, mandirva
  • 패키지 툴: rpm(기본), yum(온라인) ★★★

데비안 계열

  • 배포 업체: Debian, Ubuntu, Xandros, Linspire
  • 패키지 툴: dpkg(기본), apt-get(온라인), aptitude ★★★

cf) 수세 계열 패키지 툴: YaST(기본), Zypper(온라인) ★★★
cf) 페도라(레드햇 계열) 패키지 툴: dnf ★★★


5. 2. 소프트웨어 설치 및 삭제

5. 2. 1. 배포 업체 패키지 설치 ★

rpm

  • 레드햇 사에서 만든 패키지 관리 툴
  • 새로운 패키지를 설치하거나 업그레이드, 삭제 시 사용
  • Windows의 setup.exe와 유사하게 만든 프로그램
  • 패키지 파일 확장자명: *.rpm
#rpm [옵션] [패키지명]

[명령어]
rpm -i [패키지명]: 패키지 설치
rpm -U [패키지명]: 패키지 업그레이드, 낮은 버전이라도 설치(다운그레이드)
rpm -e [패키지명]: 패키지 제거
-v: 진행 과정 메시지로 표시
-h: progress를 해시(#)으로 표시
rpm -q: 패키지 설치 여부 확인
rpm -qa: 시스템에 설치 된 전체 패키지 정보 확인
rpm -qi: 설치 되어 있는 패키지의 상세 정보 확인
rpm -ql: 패키지가 설치한 파일 목록 확인

yum

  • 네트워크를 통해 기본 rpm패키지 다운로드 및 설치, 제거, 업데이트 수행
  • rpm 패키지 설치 시 발생하는 의존성 문제를 해결하기 위한 유틸리티
  • 페도라 22버전 이후 yum의 문제점을 보완하여 DNF로 전환됨

[명령어]
yum install [패키지명]: 설치 승인 질문 후 설치
yum -y install [패키지명]: 설치 승인(yes) 및 설치
yum update [패키지명]: 패키지 업데이트
yum groupinstall [패키지명]: 패키지 그룹 설치
yum localinstall [패키지명]: 네트워크를 통해 다운로드해서 설치하지 않고, 현재 디렉터리 내에 *.rpm설치
yum remove [패키지명]: 패키지 제거
yum groupremove [패키지명]: 패키지 그룹 제거
yum info [패키지명]: 패키지 자세한 정보 확인
yum list: 전체 패키지 목록 확인 (설치된 + 설치가능)
yum list update: 업데이트가 필요한 목록 간단하게 확인
yum grouplist: 설치된 패키지의 그룹별 정보 확인
yum serach [문자열]: 해당 문자열이 포함된 패키지 검색
yum check-update: 업데이트가 가능한 패키지 목록 확인
yum history: 패키지 설치 및 삭제 등 작업 이력 확인

dpkg

  • 데비안의 저레벨(low level) 패키지 관리 툴
  • deb 패키지의 설치, 삭제, 확인 등 기능
  • root권한으로 패키지 설치와 삭제 가능
  • 패키지 설치 및 제거 시 rpm과 같은 의존성 문제 존재
  • 패키지 파일 확장자명: *.deb

[명령어]
dpkg -i [패키지명]: 패키지 설치
dpkg -r [패키지명]: 패키지 삭제
dpkg -P [패키지명]: 패키지와 설정 정보 모두 삭제
dpkg -s [패키지명]: 패키지 상세 정보 확인
dpkg -l: 설치된 패키지 정보 확인

apt-get

  • 데비안 리눅스에서 네트워크를 이용한 소프트웨어 설치, 제거를 위한 패키지 관리 툴
  • 패키지 설치 시 발생할 수 있는 의존성과 충돌 문제를 해결하기 위해 /etc/apt/source.list파일 참조

[명령어]
apt-get install [패키지명]: 패키지 설치
apt-get -y install [패키지명]: 모든 질문에 승인(yes) 및 패키지 설치
apt-get remove [패키지명]: 패키지 제거
apt-get purge [패키지명]: 환경 설정 파일 포함 패키지 제거
apt-get update: 새 패키지 목록 가져오기. /etc/apt/source.list의 인덱스 정보를 업데이트
apt-get upgrade: 최신 버전으로 업그레이드 실행

cf) update vs upgrade
 'apt-get update'는 운영체제에서 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트하는 명령어다. 설치되어 있는 패키지를 최신으로 업데이트하는 것이 아닌, 설치 가능한 리스트를 업데이트하는 것이다.
 'apt-getupgrade'는 운영체제에 apt-get install 명령으로 설치한 패키지들을 최신 버전으로 업그레이드 하는 명령어다. apt-get upgrade명령을 이용하면 apt-get update로 가져온 각 패키지들의 최신 버전에 맞게 업그레이드를 진행한다.

cf) alien: 다른 패키지 형식으로 변환할 때 사용


5. 2. 2. 소스 코드 파일 설치 ★

파일 압축 / 해제 (#tar) ★★★★★

  • tar는 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용 (테이프 아카이버; Tape ARchiver)
  • tar자체는 데이터의 크기를 줄이기 위한 파일 압축이 아닌, 여러 파일을 하나의 파일로 묶는 용도
  • 데이터의 크기를 줄이기 위한 압축은 별도의 옵션(-z(gzip), -j(bzip2), -J(xz))을 지정하여 수행
  • cf) 압축률은 compress(.Z) < gzip(.gz) < bzip(.bz2) < xz(.xz) 순 고압축 ★★★
#tar [옵션] [파일명] [압축할 파일]

[옵션]
-f [파일명]: 아카이브 파일명 지정 (디폴트)
-c: 압축
-x: 압축 해제
-v: 진행 사항 화면에 출력
-t: 아카이브 내용 확인
-z: gzip(.gz) 옵션 적용
-j: bzip2(.bz2) 옵션 적용
-J: xz(.xz) 옵션 적용

tar -cvf A.tar *               # 현재 디렉터리의 모든 파일을 A.tar로 묶기
tar -cvf B.tar [파일1] [파일2]  # [파일1]과 [파일2]를 B.tar로 묶기
tar -cvf C.tar [경로]           # 해당 [경로]의 디렉토리의 파일을 C.tar로 묶기

tar -xvf D.tar                 # D.tar 아카이브를 현재 디렉토리에 풀기
tar -tvf E.tar                 # E.tar 아카이브 내용 확인

tar -zxvf F.tar.gz *           
  # 현재 디렉토리의 모든 파일을 F.tar로 묶은 후 gzip으로 압축 (F.tar.gz)생성
tar -xvf G.tar.gz              
  # G.tar.gz(gzip)으로 압축된 아카이브를 현재 디렉토리에 압축풀기
cf) .Z / .gz / .bz2 / .xz로 직접 압축, 압축해제
[압축]
compress(.Z) / gzip(.gz) / bzip2(.bz2) / xz(.xz) [파일명]
[압축 해제]
uncompress / gunzip / bunzip2 / unxz [파일명]
 또는
gzip -d / bzip2 -d / xz -d [파일명
[압축 내용 확인]
zcat(.gz) / bzczt(.bz2) / xzczt(.xz) [파일명]

소스 코드 컴파일 ★★★

cf) 컴파일 순서: ./configure(환경설정) -> make(컴파일) -> make install(파일설치) ★

[./configure]

  • 프로그램 설치 과정에서 설치될 경로 등 필요한 환경파일(makefile)생성

[make]

  • 코드의 관리와 컴파일의 자동화를 해주는 명령
  • makefile을 기반으로 소스파일을 컴파일
  • make수행 후 소스파일은 실행파일(setup)로 전환

[make install]

  • 컴파일 된 실행파일을 개발자의 의도에 맞춰 지정된 속성, 지정된 디렉터리 설치
cf) Cmake(Cross Platform Make)
 - make의 대체프로그램
 - make 과정 없이 운영체제 별 makefile 생성
 - 소프트웨어 빌드에 특화된 언어로, 독자적인 설정 스크립트 이용
 - Microsoft Visual Studio, .Net, Qt 등 지원
 - 평행 빌드 지원 및 크로스 컴파일 가능
 - 타임스탬프를 통해 파일 내용의 변화를 알 수 있음

Leave a Comment