Yocto

[Yocto] Poky 저장소 master 브랜치 업데이트 중단과 향후 프로젝트 구성 가이드

chbae 2026. 5. 12. 07:27
반응형

Yocto Project를 사용하여 임베디드 리눅스 환경을 구축해 온 개빌자라면 최근 주목해야 할 중요한 아키텍처 변화가 있다. 바로 오랜 기간 기준점이 되어왔던 poky 저장소의 master 브랜치 업데이트가 중단된다는 소식이다.

Yocto Project

 

이번 포스팅에서는 왜 이런 변화가 생겼는지, 그리고 앞으로 실제 제품을 개발할 때 어떻게 빌드 환경을 구성해야 하는지 정리해 본다.

기존 방식: 많은 기업이 Poky를 그대로 사용했던 이유

그동안 임베디드 리눅스를 기반으로 실제 제품을 양산하는 수많은 기업과 프로젝트에서 poky 저장소를 git clone하여 그대로 사용하는 경우가 많았다.

Poky는 일종의 '참조 배포판(Reference Distribution)'으로서, 그 자체에 Bitbake, OpenEmbedded-Core(OE-Core), 그리고 기본 메타 레이어들이 하나로 통합되어 있었기 때문이다. 저장소 하나만 다운로드하면 즉각적인 빌드 환경이 갖춰지니 초기 구성이 매우 간편하다는 강력한 장점이 있었다.

새로운 접근: Bitbake와 OE-Core의 분리

하지만 이제 poky 통합 저장소의 master 브랜치가 더 이상 업데이트되지 않으면서, 패러다임의 변화가 필요해졌다. 더 이상 거대한 단일 저장소에 의존하는 대신, 핵심 구성 요소들을 각각 독립적으로 다운로드하여 구성하는 방향으로 나아가야 한다.

이제는 다음과 같이 환경을 분리해서 세팅해야 한다.

  1. Bitbake: 빌드를 수행하는 태스크 실행 엔진
  2. OpenEmbedded-Core (OE-Core): 기본 빌드 레시피와 클래스를 담고 있는 핵심 메타 레이어

결과적으로, poky라는 껍데기를 통째로 가져오는 대신 bitbake 저장소와 openembedded-core 저장소(그리고 기타 필요한 meta-* 레이어들)를 개별적으로 가져와 작업공간을 구성해야 한다. 새로운 Bitbake 사용자 매뉴얼에서도 이러한 독립적인 환경 설정을 기본으로 가이드하고 있다.

다수의 Meta Layer, 어떻게 관리해야 할까?

구성 요소가 잘게 쪼개진다는 것은 그만큼 우리가 직접 관리해야 할 Git 저장소(Layer)가 늘어난다는 것을 의미한다. BSP 레이어, 서드파티 라이브러리 레이어, 자체 애플리케이션 레이어 등 수많은 메타 레이어의 버전과 의존성을 어떻게 효율적으로 관리할 수 있을까?

현업에서는 주로 다음의 두 가지 방식을 많이 채택하고 있다.

1. 오픈소스 Repo 툴(Manifest) 활용

안드로이드 프로젝트에서 널리 쓰이는 구글의 repo 툴을 사용하는 곳이 가장 많다. default.xml과 같은 Manifest 파일에 프로젝트에 필요한 모든 메타 레이어의 Git 주소와 브랜치(또는 커밋 해시)를 정의해 둔다.

이렇게 하면 repo init과 repo sync 명령어만으로 개발팀 전원이 동일한 분산 저장소 환경을 한 번에 동기화하고 구성할 수 있어 관리가 매우 수월해진다.

2. 자체 관리 스크립트 구축 (ex: webOS 방식)

프로젝트의 특성에 맞게 직접 쉘 스크립트나 Python 스크립트를 작성하여 구성하는 방식도 있다. 대표적인 사례가 바로 LG전자의 webOS 오픈소스 프로젝트이다.

webOS의 경우, mcf (Make Configuration File)와 같은 자체 스크립트를 통해 빌드에 필요한 Bitbake, OE-Core, 수많은 자체 메타 레이어들을 정의된 설정에 맞춰 자동으로 Clone하고 빌드 환경(build/conf/bblayers.conf 등)을 세팅해 준다. 인프라가 갖춰진 조직이라면 입맛에 맞게 커스터마이징할 수 있는 스크립트 방식이 유연성을 극대화할 수 있다.

마무리

Poky master 브랜치의 업데이트 중단은 처음에는 다소 번거로운 소식으로 들릴 수 있다. 하지만 길게 보면 Bitbake 엔진과 레시피 코어를 철저히 분리하여, 보다 모듈화되고 독립적인 아키텍처로 발전해 나가는 자연스러운 과정이다.

아직 제품 빌드 환경이 poky 통합 저장소에 묶여 있다면, 이번 기회에 Repo 툴이나 자동화 스크립트를 도입하여 레이어 관리를 고도화하고, Bitbake와 OE-Core를 독립적으로 관리하는 최신 Yocto 환경으로 마이그레이션해 보시기를 권장한다.

참고자료

728x90
반응형