소프트웨어 배포
100%

패키지 · 레슨 1

소프트웨어 배포

업스트림 프로젝트, 배포판 유지 관리자, 패키지, 패키지 형식이 어떻게 리눅스 소프트웨어 공급망을 이루는지 알아봅니다.

리눅스 소프트웨어는 일반적으로 배포판별 도구가 관리하는 패키지 형태로 제공됩니다. 패키지는 설치 가능한 파일과 메타데이터를 하나로 묶어, 시스템이 버전, 의존성, 소유권, 체크섬 및 수명 주기 작업을 추적할 수 있게 합니다.

패키지에 포함되는 항목

바이너리 패키지에는 실행 파일, 라이브러리, 문서, 기본 설정, 서비스 정의 및 기타 리소스가 포함될 수 있습니다. 또한 다음과 같은 메타데이터도 담습니다.

  • 패키지 이름과 버전
  • 대상 아키텍처와 배포판 환경
  • 선언된 의존성과 충돌 관계
  • 파일 목록과 무결성 정보
  • 수명 주기 작업에 사용되는 선택적 스크립트 또는 트리거

모든 패키지가 대화형 애플리케이션인 것은 아닙니다. 패키지는 라이브러리, 커널 구성 요소, 언어 데이터, 글꼴, 디버그 심볼 또는 여러 다른 패키지 모음에 의존하는 메타데이터를 제공할 수도 있습니다.

다음 중 애플리케이션 실행 파일이 아니라 일반적으로 패키지 메타데이터에 해당하는 정보는 무엇입니까?

업스트림과 배포판의 역할

업스트림 프로젝트는 원본 소스 코드를 개발하고 릴리스합니다. 그런 다음 리눅스 배포판 유지 관리자는 선택한 릴리스를 해당 배포판에 맞게 조정합니다. 이 작업에는 라이선스 검토, 통합 또는 보안 패치 적용, 빌드 지침 정의, 결과물의 패키지 분할, 의존성 선언, 테스트 실행 및 업데이트 유지 관리가 포함될 수 있습니다.

배포판의 빌드 인프라는 지원되는 릴리스와 아키텍처를 위한 패키지를 만듭니다. 저장소 도구는 클라이언트가 검증할 수 있는 메타데이터와 서명을 게시합니다. 정확한 역할 분담은 경우마다 다릅니다. 일부 업스트림 프로젝트는 자체 패키지를 배포하며, 배포판은 소스에서 독립적으로 빌드할 수도 있습니다.

다음 중 일반적으로 배포판 패키지 유지 관리자가 담당하는 작업은 무엇입니까?

일반적인 네이티브 패키지 형식

널리 사용되는 네이티브 형식 두 가지는 다음과 같습니다.

  • .deb: 데비안과 우분투, 리눅스 민트 등 데비안에서 파생된 배포판에서 사용
  • .rpm: 페도라, 레드햇 엔터프라이즈 리눅스 및 여러 관련 배포판에서 사용

그 밖에도 다양한 네이티브 형식과 배포판 공통 형식이 있습니다. 파일 이름의 확장자가 맞는다는 사실만으로 호환성이 보장되지는 않습니다. 패키지 아키텍처, 배포판 릴리스, 라이브러리 버전, 정책, 서명 및 의존성도 서로 맞아야 합니다.

데비안과 우분투에서 사용하는 네이티브 패키지 형식은 무엇입니까?

관리형 배포가 중요한 이유

패키지 관리자는 설치 상태를 기록하고 여러 패키지에 걸친 변경을 조정합니다. 신뢰할 수 있는 배포판 저장소에서 설치하면 일반적으로 일관된 의존성 해결, 서명 검증, 보안 업데이트 및 깔끔한 제거 기능을 이용할 수 있습니다. 바이너리를 직접 복사하거나 소스에서 설치하는 방식도 적절할 수 있지만, 그러한 소프트웨어가 자동으로 관리형 수명 주기에 포함되지는 않습니다.

신뢰 여부는 여전히 저장소 설정과 서명 키에 달려 있습니다. 암호학적으로 유효한 패키지는 신뢰하는 키와 연결되어 있음을 증명할 뿐, 임의의 서드파티 소프트웨어가 안전하거나 적합하다는 뜻은 아닙니다. 가능하면 배포판 저장소를 우선 사용하고, 외부 소스에 설치 권한을 부여하기 전에 그 출처를 평가하십시오.

신뢰할 수 있는 패키지 저장소를 통해 설치할 때 얻는 이점은 무엇입니까?

레슨 완료

소프트웨어 배포 완료

이제 리눅스 소프트웨어 배포의 주요 구성 요소를 구분할 수 있습니다.

  • 패키지 페이로드 파일과 패키지 메타데이터를 구분합니다.

  • 업스트림 개발과 배포판 통합의 차이를 이해합니다.

  • .deb.rpm을 각각 사용하는 배포판 계열과 연결합니다.

  • 파일 이름 확장자만이 아니라 호환성과 신뢰 요소를 함께 평가합니다.

학습 진행 상황 저장

무료 계정을 만들어 이 레슨을 저장하고 어떤 기기에서든 계속 학습하세요.

무료 계정 만들기
다음 수업
패키지(으)로 돌아가기