패키지 캐시 활용

sstate-cache

Yocto 프로젝트는 패키지 빌드를 가속화하기 위해 sstate-cache를 사용한다. 이 캐시는 이미 빌드된 패키지나 아티팩트를 재사용하며, 빌드 시간을 단축시킨다. 상테이트 캐시는 보통 \texttt{/sstate-cache}에 저장된다. 이를 활용하면 동일한 패키지를 다시 빌드하는 시간을 줄일 수 있다.

예제: sstate-cache 설정

SSTATE_DIR ?= "/path/to/shared/sstate-cache"

캐시 디렉토리를 공용 위치로 설정하면 여러 빌드 머신에서 동일한 캐시를 재 사용할 수 있다.

인라인 패키지 관리

BBINCLUDED

Yocto에서는 BBINCLUDED 변수를 통해 특정 패키지를 빌드의 일부로 포함할 수 있다. 이는 필요하지 않은 패키지를 불필요하게 빌드하지 않게 하여 패키지 관리의 성능을 향상시킨다.

BBINCLUDED = "package1 package2"

위의 설정으로 인해 \texttt{package1}과 \texttt{package2}만 빌드 과정에 포함된다.

노드 제거

필요 없는 패키지나 노드를 제거하면 빌드 시간이 단축된다. 불필요한 패키지 의존성을 제거하여 시스템을 경량화할 수 있다.

패키지 업데이트 최적화

스마트 업데이트

패키지를 업데이트할 때 전체 패키지를 제거하고 교체하는 대신, 변경된 부분만 업데이트하는 방식이다. 이를 통해 많은 시간을 절약할 수 있다. Yocto는 이 작업을 효율적으로 처리할 수 있는 다양한 도구를 제공한다.

incremental build

전체를 다시 빌드하는 대신, 변경된 부분만 재빌드하는 방식이다. 이를 통해 빌드 시간을 대폭 단축할 수 있다.

병렬 빌드

BB_NUMBER_THREADS

멀티코어 시스템에서 병렬 빌드를 통해 빌드 시간을 단축할 수 있다. \texttt{BB_NUMBER_THREADS} 변수는 몇 개의 코어를 사용할지 지정할 수 있다.

BB_NUMBER_THREADS = "8"

PARALLEL_MAKE

\texttt{PARALLEL_MAKE} 변수는 make 명령어에 전달되는 \texttt{-j} 옵션을 설정하며, 컴파일 작업을 병렬로 처리한다.

PARALLEL_MAKE = "-j 8"

위의 설정은 최대 8개의 작업을 병렬로 수행하여 빌드 성능을 최적화한다.

빌드 디렉토리 구성

TMPDIR

Yocto 빌드 시스템은 TMPDIR 변수를 사용하여 임시 파일이 저장될 디렉토리를 정의한다. 디스크 I/O 성능이 빌드 시간에 큰 영향을 미치므로, 고성능의 스토리지 장치를 사용하는 것이 좋다.

TMPDIR = "/mnt/fast-storage/tmp"

DL_DIR

소스 파일이나 패치 파일이 저장될 디렉토리를 지정하여 다운로드 시간을 줄일 수 있다.

DL_DIR = "/path/to/downloads"

많은 파일을 한 곳에 모아두면 다운로드 시간을 절약할 수 있다.


패키지 관리에서의 성능 개선은 빌드 시간을 크게 단축시켜 개발 효율성을 높인다. Yocto 프로젝트의 다양한 설정과 캐시 활용은 이를 가능하게 한다.