리눅스 마스터 2급 대비 정리(8) (소프트웨어 설치 및 삭제 - 프로그램 설치, 소스 파일 설치)
2023년08월20일 12분읽었습니다.
리눅스 마스터 2급 시험 대비를 위해 관련 책을 바탕으로 내용들을 정리하는 포스트입니다. 이번 포스트는 리눅스의 소프트웨어 설치 및 삭제를 이해하는 파트로 프로그램 설치, 소스 파일 설치에 대해 알아보겠습니다.
개요
이번 포스트는 프로그램 설치 및 소스 파일 설치에 대해 알아보겠습니다.
참고한 책은 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴입니다. 실습한 리눅스 버전은 CentOS 7이고, ISO 명은 CentOS-7-x86_64-Minimal-2009.iso입니다.
목차
- 프로그램 설치
- 소스 파일 설치
프로그램 설치
- 리눅스 시스템에서 소프트웨어를 설치하고 관리하는 방법에는 배포업체의 패키지를 설치하거나 소스코드를 컴파일 하는 것이 있습니다
- 슬렉웨어와 같은 예외도 있지만 일반적으로 리눅스는 데비안 계열과 레드햇 계열로 나뉩니다.
- 데비안 계열의 배포 업체는 Dabian, Ubuntu, Xandros, Linspire가 있고, 패키지 툴은 dpkg, apt-get, aptitude가 있습니다
- 레드햇 계열은 Fedora, CentOS, RHEL, openSuSE, mandirva가 배포 업체로 있고, 패키지 툴은 rpm과 yum이 있습니다.
RPM(RedHat Package Manager)
- 레드햇 사에서 만들어낸 패키지 관리 툴입니다.
- 새로운 패키지를 설치하거나 업그레이드, 삭제 시 사용합니다.
- Windows의 setup.exe와 유사하게 만든 프로그램입니다.
- 레드햇 계열의 패키지 파일 확장명은 ‘*.rpm’입니다. 파일 구성은 패키지명, 버전, 릴리즈번호, 해당 OS(페도라, CentOS 등) 버전, 아키텍쳐로 구성되어 있습니다.
- 형식은 rpm [옵션] 패키지명 이고, 옵션은 아래 표와 같습니다.
옵션 | 기능 |
---|
-i | 새로운 패키지 설치 |
-h | 패키지를 풀 때 해시 마크 표시 |
-U | 기존 패키지 업그레이드 |
-e | 패키지 제거 |
-q | 패키지 설치 여부 확인, 질의 옵션과 같이 사용되는 옵션 –f<파일>: 파일을 포함하는 패키지에 대해 질문을 수행, --F: -f와 같지만 파일 이름을 표준 입력에서 읽음파일> |
-v | 진행 과정을 메시지로 표시 |
-vv | 메시지를 상세히 명시 |
–nodeps | 의존성 관계를 무시하고 설치 |
–oldpackage | 구 버전으로 다운그래이드 |
–replacepkgs | 패키지 재설치 |
–replacefiles | 이미 설치된 다른 패키지의 파일을 덮어쓰면서라도 패키지를 강제로 설치 |
–force | –replacepkgs, –replacefiles, –oldpackage를 모두 사용, 기존에 설치된 패키지와 관계없이 강제로 설치 |
-V | verify의 약자로 검증할 때 쓰는 기본 옵션 |
-a | 모든 패키지 검사 |
검증 코드
옵션 | 기능 |
---|
5 | MD5체크섬을 변경 |
S | 파일의 크기를 변경 |
L | 심볼릭 링크를 변경 |
T | 파일의 수정일을 변경 |
D | 장치파일을 변경 |
U | 파일 사용자/소유자가 변경 |
G | 파일 그룹이 변경 |
M | 파일 모드가 변경 |
YUM(Yellowdog Updater Modified)
- 네트워크를 통해 기존 RPM 패키지 파일의 업데이트 자동 수행, 새로운 패키지 설치 및 제거를 수행합니다
- RPM의 의존성 문제를 해결하기 위한 유틸리티입니다.
- 인터넷을 기반으로 설치하므로 네트워크가 정상적으로 연결된 상태여야만 합니다
- 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
- dpkg는 데비안의 low Level 패키지 관리 툴입니다.
- deb 패키지의 설치, 삭제, 정보 제공을 위해 사용됩니다. 확장자 deb 파일은 데비안 패키지 파일입니다.
- 형식은 패키지명_버전-릴리즈번호-리비전_아키텍처.deb로 되어 있습니다.
- 리비전: 소스 버전이 업그레이드되지는 않았지만 패키지의 보안 문제나 의존성 변화, 스크립트의 변화 등이 있음을 의미합니다
- 아키텍쳐: all은 시스템과 상관없는 문서나 스크립트 등을 의미합니다
- 루트 권한으로 패키지 설치와 삭제를 할 수 있습니다
- 패키지 설치 및 제거 시 RPM과 같은 의존성 문제를 일으킵니다
- 형식은 dpkg [옵션] 패키지명.deb이고, 옵션은 아래 표와 같습니다
옵션 | 기능 |
---|
-i | 패키지 설치, 패키지들 간의 의존성 문제로 정상적인 설치가 안되는 경우 발생 |
-r | 설치된 패키지만 삭제 |
-P | 패키지와 설정 정보 모두 삭제 |
-s | 패키지의 상황 정보(피키지 버전, 관리자, 간략 설명 등)을 나타냄 |
-L | dpkg가 설치한 모든 파일 목록을 확인할 수 있음 |
- 데비안 리눅스에서 소프트웨어 설치와 제거를 위한 패키지 관리 유틸리티입니다
- 패키지 관련 정보를 확인하거나 패키지 설치 시 발생할 수 있는 의존성과 충돌문제를 해결하기 위해 ‘/etc/apt/sources.list’ 파일을 참조합니다
- Sources.list 파일에는 패키지 유형(바이너리, 소스), 저장소 주소(URL), 우분투 버전 정보, 카테고리로 구성되어 있습니다
- apt-get의 형식은 apt-get [옵션] 명령어 패키지명 으로 나타낼 수 있고, 명령어와 옵션은 아래 표와 같습니다.
명령어 | 기능 |
---|
install | 새 패키지 설치 |
dist-upgrade | 의존성을 검사하며 설치 |
update | 새 패키지 목록 가져오기, /etc/apt/sources.list의 인덱스 정보를 업데이트 |
upgrade | 업그레이드 실행 |
remove | 패키지 제거 |
옵션 | 기능 |
---|
-y | 모든 질문을 표시하지 않고 ‘예’로 자동 처리 |
-u | 업그레이드한 패키지 목록 표시 |
-V | 자세한 버전 표시 |
aptitude
- 우분투의 패키지 관리 유틸리티로 APT처럼 패키지 관리를 자동화합니다.
- 형식은 aptitude 서브명령입니다.
소스 파일 설치
파일 아카이브
- 파일 아카이브는 다수 개의 파일이나 디렉터리를 하나의 파일로 묶는 것입니다.
- 아카이브 파일은 다른 시스템으로 다수 개의 파일을 한 번에 전송하거나 파일 백업용으로 사용합니다.
- 형식은 tar [옵션] 파일명 이고, 옵션은 아래 표와 같습니다.
옵션 | 기능 |
---|
c | 새로운 아카이브 파일 tar 생성 |
x | tar로 묶은 파일을 원본 파일로 복원 |
d | 아카이브에 있는 파일과 비교 |
r | 아카이브된 파일의 마지막 부분에 파일 추가 |
t | 아카이브 파일 안에 있는 파일 목록 나열 |
u | 아카이브에 있는 기존 파일보다 새로운 파일로 업데이트 |
f | 아카이브 파일명을 지정, 생략하면 디폴트 파일명으로 지정 |
v | 처리하고 있는 파일의 정보를 화면에 출력 |
z | gzip으로 압축하거나 해제 |
j | bzip2로 압축하거나 해제 |
P | 절대 경로 정보 유지 |
J | xz 옵션으로 압축 파일인 tar.xz에 사용 |
–exclude | 특정 디렉터리를 제외하고 묶음 |
파일 압축과 해제
- 대표적 파일 압축 명령은 compress, gzip, bzip2, xz가 있습니다
- 일반적으로 많이 사용되는 압축 명령어는 gzip과 bzip2가 있습니다
- 압축률이 가장 낮은 것은 compress이며 가장 높은 것은 xz입니다.
compress와 uncompress
압축/해제 명령어 | 기능 |
---|
compress [옵션] 파일명 | 파일 압축, -d(파일 압축을 해제), -c(기본 생성 파일인 Z가 아닌 지정 파일로 생성), -v(압축 진행과정을 화면에 표시), -V(compress 명령어 버전 정보 출력) |
uncompress 파일명 | 압축 해제 |
gzip과 gunzip
압축/해제 명령어 | 기능 |
---|
gzip [옵션] 파일명 | 파일 압축, -d(압축 해제), -l(압축된 파일 정보 나타냄), -v(압축 과정을 화면에 표시) |
gunzip 파일명 | 압축 해제 |
zcat 파일명 | 압축된 파일의 내용을 출력 |
bzip2와 bunzip2
압축/해제 명령어 | 기능 |
---|
bzip2 [옵션] 파일명 | 파일 압축, gzip의 옵션과 동일 |
bunzip2 파일명 | 압축 해제 |
bzcat 파일명 | 압축 파일 내용 출력 |
xz와 unxz
압축/해제 명령어 | 기능 |
---|
xz [옵션] 파일명 | 파일 압축, -z(강한 파일 압축), -d(강한 파일 압축 해제), -v(압축 과정을 화면에 표시) |
unxz 파일명 | 압축 해제 |
소스 코드 설치
- 소스 코드를 압축 해제 후 컴파일 순서에 따라 프로그램을 설치합니다
- 리눅스에서는 대부분 C언어로 코드를 작성합니다
- 컴파일 순서는 환경설정, 컴파일, 파일 설치입니다
- ./configure -> make -> make install
- ./configure: 프로그램 설치 과정에서 필요로 하는 환경파일 makefile 생성
- make: makefile을 기반으로 소스 파일 컴파일, 컴파일이 끝나면 소스 파일은 실행파일로 전환
- make install: 컴파일된 실행파일을 지정된 속성으로 지정된 디렉터리에 설치
참고 자료
- 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴