#11 리눅스 패키지 시스템

유상우·2022년 8월 29일
0

리눅스 입문과 운영

목록 보기
11/14

전통적 방식 프로그램 설치

  • 코드를 빌드해서 설치 후 사용
    $ wget ~
    $ tar xvzf ~
    $ cd ~
    $ ./configure
    $ make & make install
    => 빌드를 위한 각종 라이브러리 설치가 필요함. 직접 프로그램 실행 관리를 해야함

패키징 시스템 등장

  • 소프트 웨어 관리 작업ㅈ을 단순화하고 편리하게
  • 패키지 시스템의 구성
    => 컴파일된 바이너리, 의존성 정보, 환경설정 템플릿 등 소프트웨어 실행에 필요한 모든 파일이 포함
    • 설치 실패의 경우, 설치 중이던 파일 삭제 또는 재시도 가능
    • 간편한 업데이트
    • 라이브러리 및 필요한 패키지가 미리 설치되어 의존성 라이브러리를 따로 설치 하지 않아도 된다
    • 하지만 의존성들간의 버전 호환성 문제로 패키지 업데이트 불가능한 상태가 되기도 함
      • 경우에 따라, 임베디드 환경구성에 Docker를 활용

rpm

  • 패키지 설치, 검증, 패키지 상태 확인
  • 옵션
    • -i : 설치
    • -U : 업그레이드
    • -e : 삭제
    • -q : 질의
      ex) rpm -qa
      => 시스템에 설치된 모든 패키지 나열
      ex) rpm -U 패키지명.rpm
      => 패키지 업그레이드. 하지만, 종속성 관계로 실패하는 경우가 많음
      => --force 옵션으로 강제적인 업그레이가 가능. 또 다른 문제 발생 가능성

dpkg

  • 데비안 패키지 설치
  • 옵션
    • -i : 설치된 패키지 목록
    • --install : 설치
    • --remove : 삭제
      ex) $ sudo dpkg --install 패키지명.deb
      ex) $ dpkg -l cp*

고수준 패키지 관리 시스템

  • 패키지를 찾어 다운로드 하는 작업을 단순화 => 패키지 저장소가 존재
  • 시스템 업데이트나 업그레이드 과정 자동화
  • 패키지간 의존성 관리 간편화
    ex) apt install nginx
    => 바이너리 다운로드 및 설치, 의존성 관리, 서비스 등록, 부팅 시 시작, 로그 로테이션 등
  • 종류
    • Debian 계열 : apt
    • Redhat 계열 : yum
      *이전은 apt-get, apt-cache 명령 사용했지만, apt 명령으로 주요 기능을 통합 => apt 사용
  • 명령
    $ apt install -y nginx
    $ apt remove nginx
  • 공식 저장소 외에 추가 저장소가 필요
    • 기본 저장소에 모든 프로그램이 다 존재하지 않음
    • 저장소 추가 방법
      ex) redis 설치
    1. 저장소 키 추가
      $ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archivekeyring.gpg
    2. 리포지토리 정보 추가
      $ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb
      $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
    3. 저장소 / 패키지 정보 업데이트
      $ sudo apt update
      $ sudo apt install redis
profile
Potentialist

0개의 댓글