1. IMAGE_FEATURS "package-management"
- PACKAGE_CLASSES = "package_ipk"인 경우에 대해 설명함
- 이 기능을 넣어 Image에 적용 시키면,Rootfs에서,
이러한 기능이 작동되는 과정에서, /etc/opkg/*.conf 파일을 생성해줌
- 특히,
에서, 현재 Build과정 중에 ${PACKAGE_FEED_URIS}, ${PACKAGE_FEED_BASE_PATHS}, ${PACKAGE_FEED_ARCH}가 적용되어 있으면, openembedded-core/meta/lib/oe/package_manager.py에서,
insert_feeds_uris가 적용되어, feed용.conf가 /etc/opkg/feed용.conf가 적용된다.
- ipk일 경우 아래가 적용된다.

1.1 ${PACKAGE_FEED_URIS}, ${PACKAGE_FEED_BASE_PATHS}
local.conf
PACKAGE_FEED_URIS = "http://<server_ip>/"
PACKAGE_FEED_BASE_PATHS = "ipk_server"
- 패키지 피드의 base URL은 아래 처럼 구성된다.
${PACKAGE_FEED_URIS}/${PACKAGE_FEED_BASE_PATHS}/${PACKAGE_FEED_ARCHS}.

qemu로 core-image-minimal을 구동 시켜보자.
$ runqemu core-image-minimal nographic


- opkg관련 파일은 있지만 opkg 매니징 파일 (opkg.conf, opkg 바이너리)등 이 없다.
- local.conf에 IMAGE_FEATURES에 package-management를 추가한다.

- 그리고 재 빌드 한다.
$ bitbake core-image-minimal
$ runqemu core-image-minimal nographic
$ opkg
opkg 바이너리 확인

- opkg 설정 파일 확인


2. Package Indexing
- 패키지 인덱스 Refresh.
매 빌드 후, 연결한 서버의 Package Feed Update.$ bitbake package-index
- build/deploy/<ipk|rpm|deb>/에 패키지 포맷 별 Package List 생성


pacakge-index
- 위의 Package List를 만들어주는 bitbake recipe 이자 tool
- FILE=open-embedded/meta/recipes-core/meta/package-index.bb
3. local package server
- poky core-image-minimal 에서, EXTRA_IMAGE_FEATURES += "package-management"를 사용
- local.conf에
를 적용하면, core-image-minimal 이미지의 /etc/opkg에, base-feeds.conf가 생성되고, 내부에 아래와 같은 conf 파일이 생성되어 feed할 수 있다.PACKAGE_FEED_URIS = "http://<server_ip>/" PACKAGE_FEED_BASE_PATHS = "ipk_server" openembedded-core/meta/oe/lib/package_manager.py
- 그렇다면, 이 패키지 피드 서버를 local에서 구현해보자!

에 core-image-minimal을 구성하기 위한 build된 package들이 arch별로 나뉘어 있다.deploypath/ipk
Packages (Package index) file을 생성하자.$ bitbake package-index
여기서, Package Deploy Server를 구현하자.$ python3 -m http.server
'Yocto Project : : Open Source' 카테고리의 다른 글
| pciutils를 수동 빌드 해보자. recipe vs 매뉴얼 빌드 (0) | 2024.06.01 |
|---|---|
| 간단한 레시피 작성 및 image적용, one-component, multi-recipe 작성 tip (0) | 2024.06.01 |
| packagegroup (0) | 2024.06.01 |
| 패키지 구성 내용: package (ipk) advanced, (pre|post)inst, (pre|post)rm (0) | 2024.06.01 |
| recipe 작성 3. do_install() (0) | 2024.06.01 |