5.2. Anaconda 아키텍처
Anaconda 는 Python 모듈 및 스크립트 세트입니다. 또한 여러 외부 패키지 및 라이브러리를 사용합니다. 이 툴셋의 주요 구성 요소에는 다음 패키지가 포함됩니다.
-
pykickstart
- Kickstart 파일을 구문 분석하고 검증합니다. 또한 설치를 구동하는 값을 저장하는 데이터 구조를 제공합니다. -
dnf
- 패키지를 설치하고 종속성을 확인하는 패키지 관리자 -
B
livet
- 스토리지 관리와 관련된 모든 활동을 처리합니다. -
pyanaconda
- Anaconda 의 사용자 인터페이스 및 모듈(예: 키보드 및 시간대 선택, 네트워크 구성, 사용자 생성)이 포함되어 있습니다. 또한 시스템 지향 함수를 수행하는 다양한 유틸리티를 제공합니다. -
Python-meh
- 충돌 시 추가 시스템 정보를 수집하고 저장하고 이 정보를 libreport 라이브러리에 전달하며 ABRT 프로젝트의 일부인libreport
라이브러리에 전달하는 예외 처리기를 포함합니다. -
dasbus
- anaconda 모듈과외부
구성 요소 간의 통신 활성화 -
Python-simpleline
- Anaconda 텍스트 모드에서 사용자 상호 작용을 관리하기 위한 텍스트 UI 프레임워크 라이브러리 -
GTK -
GUI 생성 및 관리를 위한 Gnome 툴킷 라이브러리
앞서 언급한 패키지로 분할하는 것 외에도 Anaconda 는 내부적으로 사용자 인터페이스와 별도의 프로세스로 실행되고 D-Bus
라이브러리를 사용하여 통신하는 모듈 세트로 나뉩니다. 이러한 모듈은 다음과 같습니다.
-
사장
- 내부 모듈 검색, 라이프사이클 및 조정을 관리합니다. -
지역화
- 로케일 관리 -
네트워크
- 네트워크 처리 -
페이로드
-rpm
,ostree
,tar
및 기타 설치 형식과 같은 다양한 형식으로 설치할 데이터를 처리합니다. 페이로드는 설치용 데이터 소스를 관리합니다. 소스는 CD-ROM, HDD, NFS, URL 및 기타 소스와 같은 형식으로 다를 수 있습니다. -
보안
- 보안 관련 측면 관리 -
서비스
- 서비스 처리 -
스토리지
-blivet
를 사용하여 스토리지 관리 -
subscription
-subscription-manager
툴 및 Insights를 처리합니다. -
timezone
- 시간, 날짜, 영역, 시간 동기화를 처리합니다. -
사용자
- 사용자 및 그룹을 생성합니다.
각 모듈은 처리하는 Kickstart의 부분을 선언하고 Kickstart의 구성을 설치 환경 및 설치된 시스템에 적용하는 방법이 있습니다.
Anaconda(pyanaconda
)의 Python 코드 부분은 사용자 인터페이스를 소유한 "main" 프로세스로 시작됩니다. 사용자가 제공하는 모든 Kickstart 데이터는 pykickstart
모듈을 사용하여 구문 분석되며 Boss
모듈이 시작되고 다른 모든 모듈을 검색하고 시작합니다. 그런 다음 기본 프로세스는 선언된 기능에 따라 Kickstart 데이터를 모듈로 보냅니다. 모듈은 데이터를 처리하고, 설치 환경에 구성을 적용하며, UI는 필요한 모든 선택이 수행되었는지 검증합니다. 그렇지 않은 경우 대화형 설치 모드로 데이터를 제공해야 합니다. 필요한 모든 선택이 완료되면 설치를 시작할 수 있습니다. 모듈은 설치된 시스템에 데이터를 작성합니다.