Computer Science/OS

[OS] 리눅스 / 소프트웨어 설치 (rpm, yum 등)

Bay Im 2024. 9. 4. 02:22
  • 소프트웨어 설치
    • 압축풀기→ 디렉터리 이동→ configure→ make→ make install
    • configure
      • 자신 환경에 맞게 수정하도록 제공되는 스크립트
    • make
      • 실행 파일 만들기
    • make intsall
      • 디렉터리에 설치
  • cmake
    • make의 대체 프로그램
    • 멀티 플랫폼 지원, 오픈소스
    • 특징
      • 소프트웨어 빌드에 특화된 언어로 독자적인 설정 스크립트 (평행 빌드 지원)
      • 유닉스, 맥, 윈도우 등 모두 지원
      • Swig, Qt, FLTK 지원
      • 크로스 컴파일 가능
      • cmake 채택 프로젝트는 KDE, MySQL 등
  • RPM (Redhat Package Manager)의 개요
    • 레드햇에서 만든 패키지 관리 기법
    • 설치, 갱신, 제거, 검증, 질의 등 관리
    • 파일 형식
      • 패키지이름-버전-릴리즈-아키텍처
  • 데비안 패키지 관리
    • 데비안 리눅스는 dpkg라는 데비안 패키지 관리도구 사용
    • .deb 형태의 파일로 배포, 설치, 삭제
    • 파일 형식
      • 패키지이름_버전-릴리즈-아키텍처
    • 유틸리티
      • dselect
        • curses 메뉴 방식의 유틸리티로 주어진 메뉴를 이동하면서 손쉽게 패키지 관리
      • alien
        • 다른 종류의 리눅스 패키지 형식을 상호 변환해주는 유틸리티
  • tar
    • 여러 파일을 하나의 파일로 묶거나 풀어주는 명령어
    • 지원되는 형식
      • compress (tar.Z)
      • gzip (tar.gz)
      • bzip (tar.bz2)
      • xz (tar.xz)
    • 옵션
      • -c: 생성
      • -x: tar 파일 풀기
      • -v: 실행대상 출력
      • -r: 뒤에 파일 추가
      • -t: 목록 출력
      • -p: 퍼미션 유지
      • -f 파일명: 파일이름 지정
      • -m: 시간 정보 미유지
      • -Z: compress tar.Z
      • -z: gzip tar.gz
      • -j: bzip2 tar.bz2
      • -J: xz tar.xz
  • 압축 해제
    • 압축
      • compress(Z)
      • gzip(z)
      • bzip2(j)
      • xz(J)
    • 해제
      • uncompress
      • gunzip
      • bunzip2
      • unxz
  • gzip
    • gzip으로 압축하면 파일명.gz
    • 압축 해제는 gunzip
    • 옵션
      • -d: 압축풀기
      • -1: 압축시간 줄이기
      • -9: 파일 최대로 압축
      • -c: 결과 표준 출력
      • -l: 압축 파일 정보 출력
      • -v: 압축이나 해제 시 정보 출력
  • bzip2
    • bzip2로 압축하명 파일명.bz2
    • 해제는 bunzip2
    • 옵션
      • -d: 압축풀기
      • -1: 압축시간 줄이기
      • -9: 파일 최대로 압축
      • -c: 결과 표준 출력
      • -l: 압축 파일 정보 출력
      • -v: 압축이나 해제 시 정보 출력
  • xz
    • 무손실 압축 프로그램
    • 파일명.xz, 해제는 unxz
    • 옵션
      • -z: 압축
        • 파일명.tar.xz
      • -d: 압축 풀기
  • RPM 사용법
    • 설치, 갱신
      • 옵션
        • -i: 새로운 패키지 설치
        • -U: 새로운 버전 업그레이드
        • -F: 이전 버전이 설치 되어있는 경우만 설치
        • -v: 메시지 자세히 출력
        • -h: 설치 상황을 # 기호로 표시
        • —nodeps: 의존성 관계 무시 후 설치
        • —test: 패키지 설치 전 테스트
        • —force: 강제로 설치
    • 제거 모드
      • 옵션
        • -e: 패키지 의존성 있으면 미제거
          • —nodeps로 하거나, 의존성 제거 후 제거
          • ex) rpm -e httpd —nodeps
    • 질의 모드
      • 패키지 정보 출력
      • 명령
        • rpm -
          • qa: 시스템에 설치된 모든 패키지 정보 출력
          • qi: 패키지 정보 출력
          • qip totem-2.28: 패키지 파일에 대한 정보 출력
          • qlp totem-2.28: 패키지 파일에서 파일목록 정보 출력
          • ql: 패키지가 설치한 파일 목록 출력
          • qc: 환경 설정 파일이나 실행 데몬 스크립트 출력
          • qf /bin/ls: 해당 디렉토리 파일을 설치한 패키지 정보 출력
          • qd grub: 해당 패키지 관련 문서 및 man 페이지 파일 정보 출력
    • 검증 모드
      • -V 옵션을 사용하고, 파일의 크기, 허가권, 소유권, 파일 형식 등에 대한 변경 정보 출력
      • 코드
        • S: 파일 크기 변경
        • M: 파일 모드 변경
        • 5: 메시지 다이제스트 변경
        • D: 장치 파일의 메이저 및 마이너 번호 불일치
        • L: 링크 파일 경로 불일치
        • U: 소유자 변경
        • G: 그룹 소유권 변경
      • 옵션
        • -V: 검증시 사용하는 기본 옵션
        • -a: 모든 패키지 검사시 사용
  • yum
    • rpm 시스템에서 패키지 쉽게 설치, 자동 업데이트 수행
    • 의존성 문제 자동 해결
    • 관련 디렉터리
      • /etc/yum.conf: yum 환경 설정 파일
      • /etc/yum.repos.d: 설치 및 업데이트 위한 저장소
      • /etc/log/yum.log: yum 관련 작업 로그
    • 명령
      • list[항목]: 전체 패키지에 대한 정보 출력
      • info[패키지명]: 패키지에 대한 정보 출력
      • update[패키지명]: 패키지 업데이트
      • install[패키지명]: 패키지 설치, 의존성 관련 자동 설치
      • search[문자열]: 문자열이 포함된 패키지 찾기
      • remove 패키지명: 패키지 삭제
      • grouplist: 패지키 그룹에 대한 정보 출력
      • groupinfo: 해당 패키지 그룹명과 관련 정보
      • groupupdate: 지정한 그룹의 패키지 업데이트
      • groupinstall: 지정한 그룹의 패키지 설치
      • groupremove: 지정한 그룹의 패키지 제거
    • 예시
      • yum install -y 패키지명: 질의시 무조건 yes
  • dpkg
    • 옵션
      • -L 패키지명: 패키지가 설치한 파일 목록 출력
      • -i 패키지명: 패키지 설치 시 사용
      • -R 디렉터리명: 지정된 디렉터리 안에 패키지 설치
      • -P 패키지명: 패키지 제거, 환경 설정파일 까지 전부 제거
      • -r 패키지명: 패키지 제거, 환경 설정파일은 남겨둠
  • apt-get
    • 데비안 리눅스에서 패키지 관리를 쉽게 하기위해 제공되는 유틸리티 (yum과 유사)
    • /etc/apt/sources.list 파일에 패키지 관련 정보 관리하여 의존성과 충돌성 해결
    • 예시
      • apt-get update
      • apt-get install 패키지명
      • apt-get remove 패키지명
      • apt-get clean
        • /var/cache/apt/archive에 생성된 파일 전부 삭제