👨‍💻 소스 코드 컴파일 설치

패키지 관리자가 제공하지 않는 소프트웨어를 설치하는 전통적인 방법입니다.

make 기반 설치 과정

makeMakefile이라는 설계도를 읽어 소스 코드를 실행 파일로 만드는 도구입니다.

설치 순서: configuremakemake install

  1. ./configure: 시스템의 환경을 분석하여 의존성을 확인하고, 컴파일 환경 설정을 위한 Makefile을 생성합니다.
    • --prefix=[설치경로]: 소프트웨어가 설치될 디렉터리를 지정하는 옵션입니다.
  2. make: configure가 생성한 Makefile을 기반으로 소스 코드를 컴파일하여 실행 파일을 생성합니다.
  3. make install: 컴파일된 실행 파일과 관련 파일들을 --prefix로 지정된 경로(또는 기본 경로)에 설치합니다.
  4. make clean: 컴파일 과정에서 생성된 중간 파일들을 삭제하여 소스 디렉터리를 정리합니다.
  • 주요 사용처: Apache httpd, PHP, Nmap 등

cmake 기반 설치 과정

cmake는 크로스플랫폼을 지원하는 make의 개선된 버전으로, Makefile 생성을 자동화합니다.

설치 순서: cmake .makemake install

  • 주요 사용처: MySQL, KDE, LMMS 등

📦 패키지 관리 시스템

배포판별로 제공되는 도구를 사용하여 소프트웨어를 쉽고 안전하게 설치, 업데이트, 제거하는 방식입니다.

배포판별 패키지 관리 도구

배포판기본 패키지 파일저수준 명령어고수준 명령어 (온라인)
Red Hat / CentOSRPM (.rpm)rpmyum, dnf
Debian / UbuntuDEB (.deb)dpkgapt, apt-get
SUSERPM (.rpm)rpmzypper, 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)에서 패키지를 다운로드하며 의존성을 자동으로 해결해주는 고수준 도구입니다. (dnfyum의 차세대 버전)

    • 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: rpmdeb 등 서로 다른 형식의 패키지 파일을 변환해주는 도구입니다.
  • pacman: Arch Linux 배포판에서 사용하는 패키지 관리자입니다.