Other languages English ; |
Contents
Introduction
This page documents the evolution of the minimal basesystem from the latest Mandriva release up to the latest Mageia release.
The minimal basesystem is created by installing both basesystem
and urpmi
packages.
The metrics of basesystem-minimal
could be interesting to add in order to measure the bloat of kernel (+firmwares & the like).
Evolution of the size of the minimal basesystem for x86_64
When there's two sizes (eg: 410Mb / 463Mb
), the first size is the one reported by urpmi
& and the second one is the one reported by du -sh
.
Overall, there's a ~12-13% difference on the checked distros (but for mga8 where the difference was slighly smaller at 11% without recommends).
The / ??
text indicates that the actual installation wasn't actually performed and thus du -sh
was never run.
As we can see:
- the minimal install w/o recommends slightly increase over time
- the minimal install with recommends enlarge quite a lot over time. Action must be taken in order to break too generous deps
Usually the newly added/removed packages are only listed for the without recommends case. Sometimes, it's mentioned for the recommends case using recommends/suggests:.
Distro | basesystem-minimal | basesystem + urpmi without recommended packages | basesystem + urpmi + recommends | Comments |
---|---|---|---|---|
mga9/cauldron | 213Mb | 347Mb / 398Mb |
1.3Gb / 1.4Gb (including 871Mb in /lib/firmware/) |
Without recommends, basesystem was improved.
Sg bad happens to recommends |
mga8 | 337Mb | 485Mb / 547Mb | 679Mb / 756Mb | VS mga7: we loose a cople packages: - diffutils info-install |
mga7 | 318Mb | 463Mb / 523Mb | 622Mb / 698Mb | VS mga6: +console-setup crypto-policies ipcalc p11-kit-trust |
mga6 | 267Mb | 463Mb / 521Mb | 504Mb / 565Mb | VS mga5: + elfutils mageia-repos python traceroute |
mga5 | 251Mb | 441Mb / ?? | 476Mb / ?? | Sg bad happened in mga5 vs 4 VS mga4: |
mga4 | 205Mb | 296Mb / ?? | 399Mb / ?? | Sg bad happened in mga4 vs 3 VS mga3: +drakx-kbd-mouse-x11-text (in place of libdrakx-kbd-mouse-x11), vim-minimal |
mga3 | 195Mb | 278Mb / ?? | 290Mb / ?? | VS mga2: + grub2 |
mga2 | 187Mb | 275Mb / ?? | 290Mb / ?? | improved over mga1 regarding suggests! VS mga2: |
mga1 | 197Mb | 266Mb / ?? | 588Mb / ?? | VS mdv2010.2: bzip2 curl chkconfig dbus dmsetup drakx-net-text nash Suggests adds: |
Mandriva: | ||||
mdv2010.2 | 158Mb | 250Mb / ?? | 419Mb / ?? | same as mdv2010.1, just include updates |
mdv2010.1 | 158Mb | 250Mb / ?? | 419Mb / ? | sg bad happened in mdv2010.1 vs 2010.0: VS 2010.0: gamin |
mdv2010.0 | 176Mb | 238Mb / ?? | 251Mb / ?? | VS 2009.1: crda, drakx-kbd-mouse-x11 drakx-net-text drakxtools-curses iw kpartx monitor-edid perl wireless-regdb |
mdv2009.1 | 142Mb | 180Mb / ?? | 218Mb / ?? | suggests: crda, perl, exra firmware, wireless-regdb VS 2009.0: +cronie, libdb; libs, nss, xz |
mdv2009.0 | 125Mb | 159Mb / ?? | 191Mb / ?? | VS 2008.0: + anacron, aria2 perl with suggests. Vs 2008.0: firmware, nss{,_tcb}, genhdlist2, policykit, libs(lzma/parted/polkit) |
mdv2008.0 | n/a | 135Mb / ?? | n/a | |
mdv2007.1 | n/a | 129Mb / ?? | n/a | improved |
mdv2007.0 | n/a | 176Mb / ?? | n/a | sg bad happened: +dmsetup, ethtool, glib2.0-common, openssl, perl, prcsys, rootcerts |
mdv2006.0 | n/a | 122Mb / ?? | n/a |
Notes
- the main difference between basesystem-minimal & basesystem is that the former pulls the kernel & the grub2 boot loader for 83Mb.
- Adding urpmi to basesystem adds 7Mb
- basesystem-minimal didn't exist prior to mdv2009.0
- suggest didn't exist before mdv2009.0
Fixed in cauldron
The following deps were fixed in Cauldron:
- bootloader-utils -> drakxtools-backend -> samba-client (for lsnetdrake, see mga#12579)
- perl-base -> perl
- systemd -> pkgconfig
- shared-mime-info -> pkgconfig
- lvm2 -> glibc-devel & the like (lib64blkid-devel, lib64udev-devel, lib64uuid-devel & lib64xcrypt-devel)
- mtools -> libx11 (for /usr/bin/floppyd which is not enabled in Fedora or in OpenMandriva. In OpenSuse & Debian, it's enabled but packaged as a subpkg. Later Suse disabled it)
- network-scripts -> ipcalc
-> geoip -> geoip-database - rpm -> sqlite
-> libicu -> icu-data - xorrisso
-> tcl/tk -> fontconfig
ToDo: what remains to be fixed
The recommended packages bloat quite a lot the minimal install:
- big ones
- basesystem -> dnf -> python3 + python3-dnf -> python3-libmodulemd -> pygobject -> python3-gobject-base -> gobject-introspection
- dnf pulls 90Mo with recommended packages (80Mb without)
- requested radeon-firmware, ralink-firmware, rtlwifi-firmware, iwlwifi-firmware recommended by kernel-firmware-nonfree
- Lessen this in favor of rpmsrate & x11-driver-video-ati?
- basesystem -> dnf -> python3 + python3-dnf -> python3-libmodulemd -> pygobject -> python3-gobject-base -> gobject-introspection
- small ones
- grub2 -> os-prober -> btrfs-progs
- lvm2 -> thin-provisioning-tools -> expat
- gnupg2 -> pinentry
Code used to collect the data
Here's the commands used in order to collect the abova data:
mkdir RU for i in cauldron 8 7; do sudo rm -fr RU/*; LOG=mga$i-basesystem+urpm; sudo urpmi.addmedia --urpmi-root RU --distrib http://ftp.free.fr/mirrors/mageia.org/distrib/${i}/x86_64/; sudo eatmydata urpmi --urpmi-root RU --no-recommends urpmi basesystem 2>&1 |tee -a $LOG; sudo du -sh RU|tee ${LOG}; LOG=${LOG}+recommends; sudo eatmydata urpmi --urpmi-root RU urpmi basesystem 2>&1 |tee -a mga$i-basesystem+urpmi+recommend; udo du -sh RU|tee ${LOG};done diff -u gmga8-basesystem+urpmi LOG4.basesystem+urpmi>mga8-mga9.diff vim mga8-mga9.diff # Mageia archive: # Just press <enter> until it asks to actually install the pkg set: (no "du" this time) for i in 6 5 4 3 2 1; do sudo rm -fr RU/*; sudo urpmi.addmedia --urpmi-root RU --distrib http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia-archive/distrib/${i}/x86_64/; sudo eatmydata urpmi --urpmi-root RU urpmi basesystem 2>&1 |tee -a mga$i-basesystem+urpmi+recommends; sudo eatmydata urpmi --urpmi-root RU urpmi basesystem 2>&1 |tee -a gmga$i-basesystem+urpmi+recommend;done # BUG: it didn't worked for mdv2011, but it was after the fork, so we don't care. Might be due to rpm5 and all the regressions introduced along for i in 2011 2010.{2,1,0} 2009.{1,0}; do sudo rm -fr RU/*; sudo urpmi.addmedia --urpmi-root RU --distrib http://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/${i}/x86_64/; sudo eatmydata urpmi --urpmi-root RU --no-recommends urpmi basesystem 2>&1 |tee -a mdv$i-basesystem+urpmi; sudo eatmydata urpmi --urpmi-root RU urpmi basesystem 2>&1 |tee -a gmdv$i-basesystem+urpmi+recommend;done # No suggests in earlier versions: for i in 2008.0 2007.{1,0} 2006.0; do sudo rm -fr RU/*; sudo urpmi.addmedia --urpmi-root RU --distrib http://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/${i}/x86_64/; sudo eatmydata urpmi --urpmi-root RU --no-recommends urpmi basesystem 2>&1 |tee -a mdv$i-basesystem+urpmi; done |
Then simple diff commands were used to compare packages list (either sorting urpmi output or comparing rpm -qa
from chroots)
If one wants to understand what bloats the minimal install when new pkgs appears, just add --debug
option to above urpmi calls.
Commands for getting data about basesystem-minimal:
for i in cauldron 8 7; do sudo rm -fr RU/*; LOG=mga$i-basesystem-minimal; sudo urpmi.addmedia --urpmi-root RU --distrib http://ftp.free.fr/mirrors/mageia.org/distrib/${i}/x86_64/; sudo eatmydata urpmi --urpmi-root RU --no-recommends urpmi basesystem-minimal 2>&1 |tee $LOG;done for i in 6 5 4 3 2 1; do sudo rm -fr RU/*; sudo urpmi.addmedia --urpmi-root RU --distrib http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia-archive/distrib/${i}/x86_64/; LOG=mga$i-basesystem-minimal; sudo eatmydata urpmi --urpmi-root RU --no-recommends urpmi basesystem-minimal 2>&1 |tee $LOG;done # basesystem-minimal didn't exist before 2009.0: for i in 2010.{2,1,0} 200{9,7}.{1,0}; do sudo rm -fr RU/*; sudo urpmi.addmedia --urpmi-root RU --distrib http://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/${i}/x86_64/; LOG=mdv$i-basesystem-minimal; sudo eatmydata urpmi --urpmi-root RU --no-recommends urpmi basesystem-minimal 2>&1 |tee $LOG;done |