Portál AbcLinuxu, 1. května 2025 22:34
Po kraťoučkém zápisku o tvorbě Slackware balíčků si dovolím přidat lehké moudro o tom, jak funguje celý Slackware balíčkovací systém. Nečekejte nic víc než opis pár částí z manuálu, ale koukám, že i to se občas někomu hodí
Základní prvek je, že celý systém je velmi jednoduchý. Používá prachobyčejné tarbally a sadu skriptů v bashi. Nad něj se samozřejmě dají naložit další nástroje typu swaret nebo slapt-get. Balíčkovač umí instalovat balíčky, mazat je a dají se snadno vytvářet.
Nedokáže ovšem například sledovat závislosti, u balíčků třetích stran je prakticky jediný způsob sledování závislostí popis balíčku.
Názvy balíčků mají od verze 8.1 daný formát (předtím byl jiný, mnohem méně říkající o balíčku). Lze z něho vytáhnout všechny potřebné informace a vypadá takto:
jméno-v.er.ze-architektura-sestavení.tgz
Nějaké příklady:
gaim-1.1.2-i486-2jim.tgz zsh-4.2.0-i486-1 x11-docs-6.7.0-noarch-1
První položka, název balíčku, je předpokládám jasná. Druhá, verze, asi taktéž. Architektura je označení pro typ procesoru, pro nějž je balíček zkompilován (noarch znamená, že balíček není na architektuře závislý, v příkladu je to HTML dokumentace). Číslo sestavení se použije, když třeba opravíte v balíčku nějakou chybu a program je přitom té samé verze. K číslu sestavení se ještě přidává značka tvůrce balíčku (u distribučních balíčku není, podle toho se poznají).
Balíčky mají vždy koncovku .tgz (ale není dáno, že všechno co má koncovku tgz je slackware balíček, taky to může být obyčejný tarball, bacha na to).
Jak vypadá takový balíček uvnitř? Instalace balíčku probíhá v zásadě tak, že se archiv rozbalí do kořenového adresáře, podle toho také balíček vypadá. Rozbalíme ho (příkaz explodepkg
nebo normálně tarem), uvidíme právě soubory obsažené v balíčku a nic moc navíc.
Navíc je tam (měl by být ) adresář install, který se neinstaluje (narozdíl od zbytku balíčku). Ten může obsahovat následující soubory:
slack-desc
obsahuje popis balíčku, tedy to co vidíte při instalaci. Často se přidává textově k balíčku (tak je to třeba v samotné distribuci), takže se můžete bez jakéhokoliv rozbalování podívat co to je.doinst.sh
je skript, který se spustí při instalaci. Píše se v bashi.Tohle sice není úplně úplné, ale já s tím vystačím
Jak prosté, slouží k tomu příkaz installpkg
, kterému už jenom předáte název balíčku. Trochu pohodlnější práci vám nabídne pkgtool
(používá ovšem vnitřně installpkg, takže je to to samé), umí i mazat a dalších pár užitečných aktivit.
Opět velmi prosté, k tomuto slouží příkaz upgradepkg
, který nahradí balíček odpovídajícího jména novým balíčkem zadaným jako parametr. Upgradepkg stejně dobře umí i nahradit balíček starší verzí, což se občas hodí při nepodařených upgradech
Ani do třetice nic složitého, použijeme příkaz removepkg
, kterému jako parametr předáme název mazeného balíčku. Stačí mu název. Které balíčky máme nainstalované (a tudíž je můžeme mazat ) zjistíme z /var/log/packages, kde je uložen jejich seznam. Obsahuje pár dodatečných informací a hlavně seznam souborů, které balíček obsahuje. Zjištění ve kterém balíčku je tedy daný soubor nepředstavuje problém.
No, a to by zatím stačilo. Slackware toho umí ještě o něco víc a dají se na to šroubovat další nadstavby a nástroje. Zvládnutí tohoto minima není jak vidíte nijak složité, opravdu se není třeba čeho bát. S použítím mého návodu dokážete i velmi snadno balíčky vytvářet, takže je vidět, že Slackware skutečně balíčkovací systém má a určitě to nebude tak hrozný balíčkovací systém :o)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.