제목

리눅스 마스터 2급 대비 정리(8) (소프트웨어 설치 및 삭제 - 프로그램 설치, 소스 파일 설치)

   2023년08월20일     12분읽었습니다.

리눅스 마스터 2급 시험 대비를 위해 관련 책을 바탕으로 내용들을 정리하는 포스트입니다. 이번 포스트는 리눅스의 소프트웨어 설치 및 삭제를 이해하는 파트로 프로그램 설치, 소스 파일 설치에 대해 알아보겠습니다.


개요

이번 포스트는 프로그램 설치 및 소스 파일 설치에 대해 알아보겠습니다.
참고한 책은 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴입니다. 실습한 리눅스 버전은 CentOS 7이고, ISO 명은 CentOS-7-x86_64-Minimal-2009.iso입니다.

목차

  1. 프로그램 설치
  2. 소스 파일 설치

프로그램 설치

  • 리눅스 시스템에서 소프트웨어를 설치하고 관리하는 방법에는 배포업체의 패키지를 설치하거나 소스코드를 컴파일 하는 것이 있습니다
  • 슬렉웨어와 같은 예외도 있지만 일반적으로 리눅스는 데비안 계열과 레드햇 계열로 나뉩니다.
  • 데비안 계열의 배포 업체는 Dabian, Ubuntu, Xandros, Linspire가 있고, 패키지 툴은 dpkg, apt-get, aptitude가 있습니다
  • 레드햇 계열은 Fedora, CentOS, RHEL, openSuSE, mandirva가 배포 업체로 있고, 패키지 툴은 rpm과 yum이 있습니다.

RPM(RedHat Package Manager)

  1. 레드햇 사에서 만들어낸 패키지 관리 툴입니다.
  2. 새로운 패키지를 설치하거나 업그레이드, 삭제 시 사용합니다.
  3. Windows의 setup.exe와 유사하게 만든 프로그램입니다.
  4. 레드햇 계열의 패키지 파일 확장명은 ‘*.rpm’입니다. 파일 구성은 패키지명, 버전, 릴리즈번호, 해당 OS(페도라, CentOS 등) 버전, 아키텍쳐로 구성되어 있습니다.
  5. 형식은 rpm [옵션] 패키지명 이고, 옵션은 아래 표와 같습니다.
옵션기능
-i새로운 패키지 설치
-h패키지를 풀 때 해시 마크 표시
-U기존 패키지 업그레이드
-e패키지 제거
-q패키지 설치 여부 확인, 질의 옵션과 같이 사용되는 옵션 –f<파일>: 파일을 포함하는 패키지에 대해 질문을 수행, --F: -f와 같지만 파일 이름을 표준 입력에서 읽음
-v진행 과정을 메시지로 표시
-vv메시지를 상세히 명시
–nodeps의존성 관계를 무시하고 설치
–oldpackage구 버전으로 다운그래이드
–replacepkgs패키지 재설치
–replacefiles이미 설치된 다른 패키지의 파일을 덮어쓰면서라도 패키지를 강제로 설치
–force–replacepkgs, –replacefiles, –oldpackage를 모두 사용, 기존에 설치된 패키지와 관계없이 강제로 설치
-Vverify의 약자로 검증할 때 쓰는 기본 옵션
-a모든 패키지 검사

검증 코드

옵션기능
5MD5체크섬을 변경
S파일의 크기를 변경
L심볼릭 링크를 변경
T파일의 수정일을 변경
D장치파일을 변경
U파일 사용자/소유자가 변경
G파일 그룹이 변경
M파일 모드가 변경

YUM(Yellowdog Updater Modified)

  1. 네트워크를 통해 기존 RPM 패키지 파일의 업데이트 자동 수행, 새로운 패키지 설치 및 제거를 수행합니다
  2. RPM의 의존성 문제를 해결하기 위한 유틸리티입니다.
  3. 인터넷을 기반으로 설치하므로 네트워크가 정상적으로 연결된 상태여야만 합니다
  4. YU<은 페도라 22 버전 이후부터 YUM의 문제점을 보완한 DNF로 전환되고 있습니다
구분기능
yum install 패키지명사용자에게 설치 여부를 묻는 부분이 나옴
yum groupinstall 패키지명지정한 패키지 그룹 설치
yum -y install 패키지명설치 여부를 묻는 질문에 Yes로 간주하고 자동 설치
yum update 패키지명yum install과 동일한 기능
yum localinstall 패키지명인터넷을 통해 다운로드해서 설치하지 않고 현재 디렉터리 내의 *.rpm 파일을 설치
yum remove 패키지명지정한 패키지 제거
yum groupremove 패키지명지정한 패키지 그룹 제거
yum info 패키지명패키지 요약 정보 확인
yum list전체 패키지에 대한 정보 출력
yum grouplist패키지 그룹 정보 출력
yum check update패키지 중에서 업데이트가 가능한 패키지 목록 출력
yum search 문자열해당 문자열이 포함된 패키지 검색
yum check-update업데이트가 필요한 패키지 출력
yum history패키지 설치, 삭제 등 작업 이력 확인

dpkg

  1. dpkg는 데비안의 low Level 패키지 관리 툴입니다.
  2. deb 패키지의 설치, 삭제, 정보 제공을 위해 사용됩니다. 확장자 deb 파일은 데비안 패키지 파일입니다.
  3. 형식은 패키지명_버전-릴리즈번호-리비전_아키텍처.deb로 되어 있습니다.
    • 리비전: 소스 버전이 업그레이드되지는 않았지만 패키지의 보안 문제나 의존성 변화, 스크립트의 변화 등이 있음을 의미합니다
    • 아키텍쳐: all은 시스템과 상관없는 문서나 스크립트 등을 의미합니다
  4. 루트 권한으로 패키지 설치와 삭제를 할 수 있습니다
  5. 패키지 설치 및 제거 시 RPM과 같은 의존성 문제를 일으킵니다
  6. 형식은 dpkg [옵션] 패키지명.deb이고, 옵션은 아래 표와 같습니다
옵션기능
-i패키지 설치, 패키지들 간의 의존성 문제로 정상적인 설치가 안되는 경우 발생
-r설치된 패키지만 삭제
-P패키지와 설정 정보 모두 삭제
-s패키지의 상황 정보(피키지 버전, 관리자, 간략 설명 등)을 나타냄
-Ldpkg가 설치한 모든 파일 목록을 확인할 수 있음

apt-get(advanced packaging tool get)

  1. 데비안 리눅스에서 소프트웨어 설치와 제거를 위한 패키지 관리 유틸리티입니다
  2. 패키지 관련 정보를 확인하거나 패키지 설치 시 발생할 수 있는 의존성과 충돌문제를 해결하기 위해 ‘/etc/apt/sources.list’ 파일을 참조합니다
  3. Sources.list 파일에는 패키지 유형(바이너리, 소스), 저장소 주소(URL), 우분투 버전 정보, 카테고리로 구성되어 있습니다
  4. apt-get의 형식은 apt-get [옵션] 명령어 패키지명 으로 나타낼 수 있고, 명령어와 옵션은 아래 표와 같습니다.
명령어기능
install새 패키지 설치
dist-upgrade의존성을 검사하며 설치
update새 패키지 목록 가져오기, /etc/apt/sources.list의 인덱스 정보를 업데이트
upgrade업그레이드 실행
remove패키지 제거
옵션기능
-y모든 질문을 표시하지 않고 ‘예’로 자동 처리
-u업그레이드한 패키지 목록 표시
-V자세한 버전 표시

aptitude

  1. 우분투의 패키지 관리 유틸리티로 APT처럼 패키지 관리를 자동화합니다.
  2. 형식은 aptitude 서브명령입니다.

소스 파일 설치

파일 아카이브

  1. 파일 아카이브는 다수 개의 파일이나 디렉터리를 하나의 파일로 묶는 것입니다.
  2. 아카이브 파일은 다른 시스템으로 다수 개의 파일을 한 번에 전송하거나 파일 백업용으로 사용합니다.
  3. 형식은 tar [옵션] 파일명 이고, 옵션은 아래 표와 같습니다.
옵션기능
c새로운 아카이브 파일 tar 생성
xtar로 묶은 파일을 원본 파일로 복원
d아카이브에 있는 파일과 비교
r아카이브된 파일의 마지막 부분에 파일 추가
t아카이브 파일 안에 있는 파일 목록 나열
u아카이브에 있는 기존 파일보다 새로운 파일로 업데이트
f아카이브 파일명을 지정, 생략하면 디폴트 파일명으로 지정
v처리하고 있는 파일의 정보를 화면에 출력
zgzip으로 압축하거나 해제
jbzip2로 압축하거나 해제
P절대 경로 정보 유지
Jxz 옵션으로 압축 파일인 tar.xz에 사용
–exclude특정 디렉터리를 제외하고 묶음

파일 압축과 해제

  1. 대표적 파일 압축 명령은 compress, gzip, bzip2, xz가 있습니다
  2. 일반적으로 많이 사용되는 압축 명령어는 gzip과 bzip2가 있습니다
  3. 압축률이 가장 낮은 것은 compress이며 가장 높은 것은 xz입니다.

compress와 uncompress

  • 압축 파일명은 .Z입니다.
압축/해제 명령어기능
compress [옵션] 파일명파일 압축, -d(파일 압축을 해제), -c(기본 생성 파일인 Z가 아닌 지정 파일로 생성), -v(압축 진행과정을 화면에 표시), -V(compress 명령어 버전 정보 출력)
uncompress 파일명압축 해제

gzip과 gunzip

  • 압축 파일명은 .gz입니다.
압축/해제 명령어기능
gzip [옵션] 파일명파일 압축, -d(압축 해제), -l(압축된 파일 정보 나타냄), -v(압축 과정을 화면에 표시)
gunzip 파일명압축 해제
zcat 파일명압축된 파일의 내용을 출력

bzip2와 bunzip2

  • 압축 파일명은 .bz2입니다.
압축/해제 명령어기능
bzip2 [옵션] 파일명파일 압축, gzip의 옵션과 동일
bunzip2 파일명압축 해제
bzcat 파일명압축 파일 내용 출력

xz와 unxz

  • 압축 파일명은 .xz입니다.
압축/해제 명령어기능
xz [옵션] 파일명파일 압축, -z(강한 파일 압축), -d(강한 파일 압축 해제), -v(압축 과정을 화면에 표시)
unxz 파일명압축 해제

소스 코드 설치

  1. 소스 코드를 압축 해제 후 컴파일 순서에 따라 프로그램을 설치합니다
    • 리눅스에서는 대부분 C언어로 코드를 작성합니다
  2. 컴파일 순서는 환경설정, 컴파일, 파일 설치입니다
    • ./configure -> make -> make install
    • ./configure: 프로그램 설치 과정에서 필요로 하는 환경파일 makefile 생성
    • make: makefile을 기반으로 소스 파일 컴파일, 컴파일이 끝나면 소스 파일은 실행파일로 전환
    • make install: 컴파일된 실행파일을 지정된 속성으로 지정된 디렉터리에 설치

참고 자료

  1. 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴