Metabalík je jen skript, který si stahuje aktualizované balíky, tedy i jádro.
Jen bych to upřesnil (neber to Marpe osobně) - metabalík není skript v klasickém smyslu, je to prostě jen balík, který nemá žádný obsah (krom souborů vyžadovaných balíčkovacím systémem), ale v souboru, který ho popisuje (v deb se jmenuje
control), má na řádku
Depends: uvedeny balíky, které potřebuje k životu, tedy závislosti. V tomto případě je to konkrétní kernel, který se vždy distribuuje jako unikátní balík, aby s novou verzí nedošlo k přepsání předchozí. Správci balíku pak pro instalaci novějšího kernelu stačí přepsat řádek
Depends: a zvýšit číslo verze metabalíku v jeho control souboru . Co balík obsahuje, tedy co se s ním dostane do systému a kam, se můžete podívat pomocí
apt-file (je třeba doinstalovat):
$ apt-file show linux-generic-hwe-20.04
linux-generic-hwe-20.04: /usr/share/doc/linux-generic-hwe-20.04/changelog.gz
linux-generic-hwe-20.04: /usr/share/doc/linux-generic-hwe-20.04/copyright
Jak vypadá jeho control soubor vám ukáže přímo
apt:
$ apt show linux-generic-hwe-20.04
Package: linux-generic-hwe-20.04
Version: 5.8.0.43.49~20.04.29
Priority: optional
Section: kernel
Source: linux-meta-hwe-5.8
Origin: Ubuntu
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 18,4 kB
Provides: kernel-testing--linux-hwe-5.8--full--generic, kernel-testing--linux-hwe-5.8--full--preferred
Depends: linux-image-generic-hwe-20.04 (= 5.8.0.43.49~20.04.29), linux-headers-generic-hwe-20.04 (= 5.8.0.43.49~20.04.29)
Download-Size: 1 932 B
APT-Sources: http://cz.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
Description: Complete Generic Linux kernel and headers
This package will always depend on the latest complete generic Linux kernel
and headers.
Zvýší-li se číslo verze metabalíku,
apt ho nabídne k aktualizaci a s jeho aktualizací se stáhnou a nainstalují nové závislosti. V případě kernelu jsou závislostí úplně nové balíky a metabalík tak přestane být závislý na těch předchozích. A protože byl předchozí kernel nainstalován automaticky jako závislost a nyní je opuštěn, žádný jiný balík ho nemá v závislostech, může ho
apt autoremove nabídnout k likvidaci, přičemž si ale hlídá, aby měl v systému alespoň jeden další kernel pro případ problémů s tím posledním.
A ještě jedna související věc, ve které mnozí nemají jasno -
rozdíl mezi apt upgrade a apt dist-upgrade. Při aktualizaci balíku se často povyšují i jeho závislosti, nicméně běžně zůstávají ve stejném balíku, jen se změní jeho obsah a označení verze. To je stav, který vyřeší
apt upgrade, jen povyšuje existující balíky. Pokud ale balík vyžaduje úplně novou závislost, nebo se nějaké zbavuje, to už
upgrade nechá být (tady se skrývá větší potenciál k průšvihu) a nechá to na
dist-upgrade.