👨💻 소스 코드 컴파일 설치
패키지 관리자가 제공하지 않는 소프트웨어를 설치하는 전통적인 방법입니다.
make 기반 설치 과정
make는 Makefile이라는 설계도를 읽어 소스 코드를 실행 파일로 만드는 도구입니다.
설치 순서:
configure→make→make install
./configure: 시스템의 환경을 분석하여 의존성을 확인하고, 컴파일 환경 설정을 위한Makefile을 생성합니다.--prefix=[설치경로]: 소프트웨어가 설치될 디렉터리를 지정하는 옵션입니다.
make:configure가 생성한Makefile을 기반으로 소스 코드를 컴파일하여 실행 파일을 생성합니다.make install: 컴파일된 실행 파일과 관련 파일들을--prefix로 지정된 경로(또는 기본 경로)에 설치합니다.make clean: 컴파일 과정에서 생성된 중간 파일들을 삭제하여 소스 디렉터리를 정리합니다.
- 주요 사용처: Apache httpd, PHP, Nmap 등
cmake 기반 설치 과정
cmake는 크로스플랫폼을 지원하는 make의 개선된 버전으로, Makefile 생성을 자동화합니다.
설치 순서:
cmake .→make→make install
- 주요 사용처: MySQL, KDE, LMMS 등
📦 패키지 관리 시스템
배포판별로 제공되는 도구를 사용하여 소프트웨어를 쉽고 안전하게 설치, 업데이트, 제거하는 방식입니다.
배포판별 패키지 관리 도구
| 배포판 | 기본 패키지 파일 | 저수준 명령어 | 고수준 명령어 (온라인) |
|---|---|---|---|
| Red Hat / CentOS | RPM (.rpm) | rpm | yum, dnf |
| Debian / Ubuntu | DEB (.deb) | dpkg | apt, apt-get |
| SUSE | RPM (.rpm) | rpm | zypper, YaST |
Red Hat 계열 (RPM, YUM/DNF)
-
rpm:.rpm파일을 직접 다루는 저수준 패키지 관리 도구입니다. 의존성 문제를 직접 해결해야 합니다.- 설치/업그레이드:
rpm -ivh [패키지.rpm]: 설치 (Install, Verbose, Hash)rpm -Uvh [패키지.rpm]: 업그레이드 (Upgrade)
- 제거:
rpm -e [패키지명] - 조회(Query):
rpm -qa: 설치된 모든 패키지 목록rpm -qi [패키지명]: 패키지 정보rpm -ql [패키지명]: 패키지가 설치한 파일 목록rpm -qf [파일경로]: 파일이 속한 패키지 확인
- 주요 옵션:
--nodeps(의존성 무시),--force(강제 설치/제거)
- 설치/업그레이드:
-
yum/dnf: 온라인 저장소(Repository)에서 패키지를 다운로드하며 의존성을 자동으로 해결해주는 고수준 도구입니다. (dnf는yum의 차세대 버전)yum install [패키지명]: 패키지 설치yum update: 전체 시스템 업데이트yum remove [패키지명]: 패키지 삭제yum list: 패키지 목록yum search [검색어]: 패키지 검색yum info [패키지명]: 패키지 상세 정보yum history:yum명령어 사용 내역
Debian 계열 (Dpkg, APT)
-
dpkg:.deb파일을 직접 다루는 저수준 패키지 관리 도구입니다.dpkg -i [패키지.deb]: 패키지 설치dpkg -r [패키지명]: 패키지 삭제dpkg -l: 설치된 패키지 목록dpkg -L [패키지명]: 패키지가 설치한 파일 목록
-
apt/apt-get: 온라인 저장소에서 의존성을 자동으로 해결하며 패키지를 관리하는 고수준 도구입니다. (apt가 더 최신이고 사용자 친화적입니다.)apt update: 패키지 목록 갱신apt install [패키지명]: 패키지 설치apt upgrade: 설치된 패키지 업그레이드apt remove [패키지명]: 패키지 삭제apt search [검색어]: 패키지 검색
SUSE 계열 (YaST, Zypper)
YaST: GUI와 TUI를 모두 지원하는 SUSE의 통합 시스템 설정 도구입니다.zypper: SUSE의 강력한 명령줄 기반 패키지 관리 도구입니다.zypper install [패키지명]: 설치zypper update: 업데이트zypper remove [패키지명]: 삭제zypper search [검색어]: 검색
기타 관련 도구
alien:rpm과deb등 서로 다른 형식의 패키지 파일을 변환해주는 도구입니다.pacman: Arch Linux 배포판에서 사용하는 패키지 관리자입니다.