Images with package-management keep a package manager on the board. During development, rebuilt packages can go to a bench board from the build's own feed instead of a new image.
State: modelled with real opkg 0.6.3 on a BusyBox 1.36.1 stand-in board over OpenSSH 9.6p1 (install, upgrade, remove and a refusal by the solver through real SSH forwards), real bitbake -e (BitBake 2.8.1, poky scarthgap, meta-freescale), version order checked against dpkg --compare-versions on 441 pairs, and the running app. The ipk files and index were made in opkg-utils' layout, and bitbake package-index was not run. dnf and apt are read by the parsers only. Signed feeds, a real board and Windows were not tried.
The build's feed
Open Package Feed reads from bitbake -e, each with the statement that decided it:
- PACKAGE_CLASSES, PACKAGE_FEED_URIS, PACKAGE_FEED_BASE_PATHS, PACKAGE_FEED_ARCHS and
package-management; - the feed lines do_rootfs writes into the image;
- the deploy folders (ipk, rpm, deb) with each index current, stale (a package newer than the index), missing or empty;
- the packages in the feed, with Install on Target... per package.
Update Package Index (bitbake package-index)... runs bitbake package-index after a confirmation.
Packages on a board
In Targets, each board has a Packages group: the package manager (opkg, dnf and rpm, or apt and dpkg), its feeds, the installed packages, and the drift from the image manifest (Compare Target Packages with Image...). Refresh Target Packages reads it again.
Install Package on Target from Build Feed..., Upgrade Package on Target from Build Feed... and Remove Package from Target... ask where the board gets the packages from:
- From the Build Host's Deploy Folder: served by python3
http.serveron the build host's loopback and forwarded over SSH to the board's loopback, so no port is opened on any network and the board's feed configuration is unchanged; - From an HTTP Server...: the lab's feed server or one the board reaches itself;
- From the Image's Own Feeds: the feeds PACKAGE_FEED_URIS wrote into the image.
Each change is confirmed with the board, package, version, exact commands and feeds, and the board is read back afterwards. A refusal by the package manager shows its message.
Export Target Package Record... writes the board's packages as JSON.
Agent tools
Two read-only tools and four that ask first.