3402094fd0
Why I did it The current lazy installer relies on a filename sort for both unpack and configuration steps. When systemd services are configured [started] by multiple packages the order is by filename not by the declared package dependencies. This can cause the start order of services to differ between first-boot and subsequent boots. Declared systemd service dependencies further exacerbate the issue (e.g. blocking the first-boot script). The current installer leaves packages un-configured if the package dependency order does not match the filename order. This also fixes a trivial bug in [Build]: Support to use symbol links for lazy installation targets to reduce the image size #10923 where externally downloaded dependencies are duplicated across lazy package device directories. How I did it Changed the staging and first-boot scripts to use apt-get: dpkg -i /host/image-$SONIC_VERSION/platform/$platform/*.deb becomes apt-get -y install /host/image-$SONIC_VERSION/platform/$platform/*.deb when dependencies are detected during image staging. How to verify it Apt-get critical rules Add a Depends= to the control information of a package. Grep the syslog for rc.local between images and observe the configuration order of packages change. |
||
---|---|---|
.. | ||
bash | ||
config-chassisdb | ||
config-setup | ||
constants | ||
copp | ||
corefile_uploader | ||
cron.d | ||
ebtables | ||
environment | ||
fstrim | ||
haveged | ||
hostname | ||
interfaces | ||
kdump | ||
kubernetes | ||
logrotate | ||
misc | ||
monit | ||
ntp | ||
pcie-check | ||
platform | ||
resolv-config | ||
rsyslog | ||
secureboot | ||
snmp | ||
sudoers | ||
sysctl | ||
syslog | ||
system-health | ||
systemd | ||
topology | ||
updategraph | ||
warmboot-finalizer | ||
watchdog-control | ||
sonic_release |