mirror of
https://git.yoctoproject.org/poky
synced 2026-09-14 12:49:34 +02:00
Incremental rpm image generation
Incremental rpm image generation, the rootfs would be totally removed and
re-created in the second generation by default, but with
INC_RPM_IMAGE_GEN = "1", the rpm based rootfs would be kept, and will do
update(remove/add some pkgs) on it.
NOTE: This is not suggested when you want to create a productive rootfs
For example:
1) Add the follow config option to a conf file:
INC_RPM_IMAGE_GEN = "1"
2) bitbake core-image-sato
modify a package
bitbake core-image-sato
The rootfs would not be totally removed and re-created in the second
generation, it would be simply updated based on the "package".
Implatation:
1) Figure out the pkg which need to be removed or re-installed, then use
'rpm -e to remove the old one. Use the rpm's BUILDTIME to determine
which pkg has been rebuilt.
2) Figure out the pkg which is newly added, and use 'rpm -U' to install
it.
This only for the rpm based rootfs, the deb and ipk based rootfs would
be done later.
[YOCTO #1651]
(From OE-Core rev: 575ba3c9e153a1d8ac228a99a03ca2df5fbca151)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
489cde8eb0
commit
9d1823b2a0
@@ -201,11 +201,15 @@ rootfs_check_package_exists() {
|
||||
}
|
||||
|
||||
rootfs_install_packages() {
|
||||
# The pkg to be installed here is not controlled by the
|
||||
# package_install_internal_rpm, so it may have already been
|
||||
# installed(e.g, installed in the first time when generate the
|
||||
# rootfs), use '--replacepkgs' to always install them
|
||||
for pkg in $@; do
|
||||
${RPM} --root ${IMAGE_ROOTFS} -D "_dbpath ${rpmlibdir}" \
|
||||
-D "__dbi_txn create nofsync private" \
|
||||
--noscripts --notriggers --noparentdirs --nolinktos \
|
||||
-Uhv $pkg || true
|
||||
--replacepkgs -Uhv $pkg || true
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user