프로그램 설치
리눅스 시스템에서 소프트웨어를 설치하고 관리하는 방법에는 배포업체의 패키지를 설치하거나 소스코드를 컴파일하는 것이 있다.
일반적으로 리눅스는 데비안 계열과 레드햇 계열로 나뉘는데, 각 계열에서 사용하고 있는 패키지 관리 유틸리티는 다음과 같다.
- 데비안 계열
- Debian, Ubuntu, Xandros, Linspire
- 패키지 툴로는 다음이 있다.
dpkg
apt-get
aptitude
- 레드햇 계열
- Fedora, CentOS, RHEL, openSUSE, mandirva
- 패키지 툴로는 다음이 있다.
rpm
yum
RPM
- RedHat Package Manager 로서, 레드햇 사에서 만든 패키지 관리 툴이다.
- 새 패키지를 설치하거나 업그레이드, 삭제 시 사용한다.
- 패키지 파일 확장명은
*.rpm
이다.
$ rpm [옵션] 패키지명
옵션
-i : 새로운 패키지를 설치 (Install)
-h : 패키지를 풀 때 해시 마크 (#) 표시 (Hash-mark)
-U : 기존의 패키지를 업그레이드 (Upgrade)
-e : 패키지 제거 (Erase)
-q : 패키지 설치 여부 확인 (Query)
-v : 진행 과정을 메시지로 표시 (Verbose)
-vv : 진행 과정을 상세히 표시 (Verbose)
-V : 패키지 검증 (Verify)
-a : 모든 패키지 검사 (verify All)
--nodeps : 의존성 관계를 무시하고 설치
--oldpackage : 구 버전으로 다운그레이드
--replacepkgs : 패키지 재설치
--replacefiles : 다른 패키지의 파일을 덮어쓰며 패키지를 강제로 설치
--force : 강제로 설치 (--oldpackage --replacefiles --replacepkgs)
YUM
- Yellowdog Updater Modified
- 네트워크를 통해 기존 RPM 패키지 파일의 업데이트 자동 수행, 새로운 패키지 설치 및 제거를 수행한다.
- RPM의 의존성 문제를 해결하기 위한 유틸리티이다.
- 페도라 22버전 이후부터
DNF
로 전환되고 있다.
구분 | 기능 |
---|---|
yum install 패키지명 |
패키지를 설치한다 |
yum groupinstall 패키지명 |
지정한 패키지 그룹 설치 |
yum update 패키지명 |
install과 동일한 기능 |
yum localinstall 패키지명 |
현재 디렉터리 내의 *.rpm 파일을 설치 |
yum remove 패키지명 |
지정한 패키지 제거 |
yum groupremove 패키지명 |
지정한 패키지 그룹 제거 |
yum info 패키지명 |
패키지 요약 정보 확인 |
yum list |
전체 패키지에 대한 정보 출력 |
yum grouplist |
패키지 그룹 정보 출력 |
yum search 문자열 |
패키지 중에서 업데이트가 가능한 패키지 목록 출력 |
yum check-update |
해당 문자열이 포함된 패키지 탐색 |
yum history |
패키지 설치, 삭제 등 작업 이력 확인 |
dpkg
dpkg
는 데비안의 저레벨 패키지 관리 툴이다.deb
패키지의 설치, 삭제, 정보 제공을 위해 사용된다.- 루트 권한으로 패키지 설치와 삭제를 할 수 있다.
$ dpkg [옵션] 패키지명
옵션
-i : 새로운 패키지를 설치 (Install)
-r : 설치된 패키지만 삭제 (Remove)
-P : 패키지와 설정 정보 모두를 삭제 (Power remove)
-s : 패키지의 상황 정보를 나타낸다 (Show Status)
-L : dpkg가 설치한 모든 파일 목록을 확인한다 (List)
apt-get
- advanced packaging tool get
- 데비안 리눅스에서 소프트웨어 설치와 제거를 위한 패키지 관리 유틸리티이다.
- 패키지 설치 시 발생할 수 있는 의존성과 충돌문제를 해결하기 위해
/etc/apt/sources.list
파일을 참조한다.
구분 | 기능 |
---|---|
apt-get install 패키지명 |
새 패키지 설치 |
apt-get dist-upgrade 패키지명 |
의존성을 검사하며 설치 |
apt-get update 패키지명 |
새 패키지 목록을 가져와서 /etc/apt/sources.list 파일을 갱신한다 |
apt-get upgrade 패키지명 |
업그레이드를 실행한다 |
apt-get remove 패키지명 |
패키지를 제거한다 |
옵션
-u : 업그레이드한 패키지 목록을 표시한다 (Upgraded)
-V : 자세한 버전을 표시한다 (Version)
aptitude
우분투의 패키지 관리 유틸리티로서 APT
처럼 패키지 관리를 자동화한다.
$ aptitude 서브명령
파일 아카이브
파일 아카이브는 다수 개의 파일이나 디렉터리를 하나의 파일로 묶는 것이다.
tar
$ tar [옵션] 파일명
옵션
-c : 새로운 아카이브 파일 tar 를 생성한다 (Create)
-x : tar 로 묶은 파일을 원본 파일로 묶음 해제한다
-z : gzip 으로 압축하거나 해제한다
-j : bzip2 로 압축하거나 해제한다
-J : xz 옵션으로 tar.xz 에 사용한다
-d : 아카이브에 있는 파일과 비교한다 (Difference)
-r : 아카이브된 파일의 마지막 부분에 파일 추가 (Rear)
-t : 아카이브 파일 안에 있는 파일 목록 나열 (Tree)
-u : 아카이브에 있는 기존 파일보다 새로운 파일로 업데이트 (Update)
-f : 아카이브 파일명을 지정한다 (Filename)
-P : 절대 경로 정보를 유지한다 (Preserve)
--exclude : 특정 디렉터리를 제외하고 묶는다 (Exclude)
Compress
gzip
, bzip2
, xz
와 비교했을 때 압축률이 가장 낮다.
압축 파일명은 .Z
이다.
명령어 | 기능 |
---|---|
compress [옵션] 파일명 | 확장자 .Z 로 파일을 압축한다 -d : 파일 압축을 해제한다 -c : 기본 생성 파일이 아닌 지정 파일로 생성한다 -v : 압축 진행 과정을 화면에 표시한다 |
uncompress 파일명 | 확장자가 .Z 인 파일 압축을 해제한다 |
gzip
압축 파일명은 .gz
이다.
명령어 | 기능 |
---|---|
gzip [옵션] 파일명 | 확장자 .gz 로 파일을 압축한다 -d : 파일 압축을 해제한다 -l : 압축된 파일 정보를 나타낸다 -v : 압축 과정을 화면에 표시한다 |
gunzip 파일명 | 확장자가 .gz 인 파일 압축을 해제한다gzip -d 와 동일한 기능을 한다. |
zcat 파일명 | 압축된 파일의 내용을 출력한다 |
bzip2
압축 파일명은 .bz2
이다.
명령어 | 기능 |
---|---|
bzip2 [옵션] 파일명 | 확장자 .bz2 로 파일을 압축한다 -d : 파일 압축을 해제한다 -l : 압축된 파일 정보를 나타낸다 -v : 압축 과정을 화면에 표시한다 |
bunzip2 파일명 | 확장자가 .bz2 인 파일 압축을 해제한다bzip2 -d 와 동일한 기능을 한다. |
bzcat 파일명 | 압축된 파일의 내용을 출력한다 |
xz
압축 파일명은 .xz
이다.
명령어 | 기능 |
---|---|
xz [옵션] 파일명 | 확장자 .xz 로 파일을 압축한다 -d : 강한 파일 압축을 해제한다 -z : 강한 파일 압축 -v : 압축 과정을 화면에 표시한다 |
unxz 파일명 | 확장자가 .xz 인 파일 압축을 해제한다xz -d 와 동일한 기능을 한다. |
소스 코드 설치
- 소스 코드를 압축 해제 후 컴파일 순서에 따라 프로그램을 설치한다.
- 소스코드는 고급언어로 작성된 프로그램이며, 컴파일은 이를 저급언어로 변환시키는 것이다.
- 리눅스에서 소스코드는 대부분 C언어로 작성한다.
- 컴파일 순서는 다음과 같다.
단계 | 명령어 | 설명 |
---|---|---|
1단계 환경설정 | ./configure | 프로그램 설치 과정에서 필요로 하는 환경파일 makefile 을 생성한다. |
2단계 컴파일 | make | makefile 을 기반으로 소스 파일을 컴파일한다.make 가 끝나면 소스파일은 실행파일로 전환된다. |
3단계 파일 설치 | make install | 컴파일된 실행파일을 지정된 속성으로 지정된 디렉터리에 설치한다. |
CMake
- Cross Platform Make
- 멀티 플랫폼으로 사용할 수 있는 Make 의 대용품인 오픈소스 프로젝트이다.
- 지정한 운영체제에 맞는 Make 파일의 생성만을 수행하기 때문에
Meta Make
라고도 불린다. - 한 번 작성해 두면 유닉스 계열은 물론 윈도우 계열의 프로그래밍 도구도 지원한다.
- 평행 빌드 및 크로스 컴파일을 할 수 있다.
'공부한 이야기 > 리눅스' 카테고리의 다른 글
리눅스 - X-Windows (0) | 2022.08.24 |
---|---|
리눅스 - 주변기기 (0) | 2022.08.21 |
리눅스 - 에디터 (0) | 2022.08.21 |
리눅스 - 프로세스 관리 (0) | 2022.08.20 |
리눅스 - Shell (0) | 2022.08.20 |