Portál AbcLinuxu, 1. května 2025 03:19
Tak už mě přestalo bavit (ne že by mě to tedy někdy bavilo ) čekat na instalaci a hlavně upgrade balíčků pomocí pkgtools.
Jinak je Slackware moc pěkná distribuce, ale ten balíčkovací manažer, to je fakt bída. Kdo viděl obsah skriptu removepkg, musí uznat že pokusy o optimalizaci pro rychlost v bashi nevypadají příliš vábně a v případě removepkg nejsou ani příliš úspěšné. O robustnosti se netřeba vůbec bavit, když něco selže (třeba user udělá z dlouhé chvíle ctrl+C při upgrade glibc) je po srandě. Vůbec spuštění removepkg, když zrovna data nejsou v cache je taky zážitek. Installpkg rozbaluje archiv úplně zbytečně dvakrát, upgradepkg jakbysmet. Prostě bída.
Funkce zobrazení nainstalovaných balíčků pomocí pkgtool je taky kapitola sama pro sebe. Kolika lidem už zešedivěly vlasy při sledování tohoto nápisu - Please wait while Pkgtool scans your system to determine which packages you have installed and prepares a list for you. Operace, která by měla trvat pár milisekund, trvá na 1.5GHz Pentiu 4, světe drž se, 40 sekund!
O nějakém smysluplném rozhranní (API) pro přístup k databázi balíčků v rámci systému si člověk také může nechat leda zdát.
Tak jsem se s tím před dvěma měsíci rozhodl něco udělat a začal reimplementovat pkgtools v C.
Příště napíšu více. Zatím dávám jen odkaz na stránky s projektem.
Tiskni
Sdílej:
Přeju vám hodně úspěchů s realizací vašeho projektu a také hodně nespokojených uživatelů oficiálních balíčkovacích nástrojů, kteří by měli potřebu používat něco jiného. Já mezi nimi nebudu, protože filozofie administrativních nástrojů u Slackware, tj. co nejprimitivnější a nejpřímější, mi zcela vyhovuje i za cenu, že nepoběží tak rychle, jak by teoreticky mohly.
Happy buffer overflows
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R'
2V,*3$D-EG4PC!<*(%%I"<*$`
`
No následky chyby v BDB, kam se data zapisují a závisí na ní např. celý systém, s následky ekvivalentních chyb v grepu, jako nevinného nástroje k vyhledávání, bych raději nesrovnával
Jinak to Happy buffer overflows bylo spíš myšleno jako lehká narážka na to, že to chce implementovat v "náchylném" C místo "méně náchylného" shellu nebo jiného interpretu
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R'
2V,*3$D-EG4PC!<*(%%I"<*$`
`
API k přístupu k databázi balíčků ? Si děláte srandu ? Jukněte se do /var/log/packages|scripts|removed_packages|removed_scripts . Pak na ls, grep a další základní unixovské nástroje a možná vás už ta otázka znovu nenapadne.Nemít žádnou úroveň abstakce vede k ... tedy vlastně nikam nevede, protože to neumožňuje jakkoliv měnit implementaci. Proto existují API i k takovým trivialitám jako /etc/group.
S tím příkladem k /etc/group máte pravdu, ale já to chápu tak, že to je už dlouho zavedený způsob snad na všech *nixech co znám nebo o nich četl a filozofií Slackware je, že pokud to není nezbytně nutné, tak se právě snaží nepřidávat žádné svoje specialitky, jako je tomu často vidět u některých dister. Ale respektuju, že někomu jinému tento přístup nevyhovuje nebo na to dokonce kašle.
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R'
2V,*3$D-EG4PC!<*(%%I"<*$`
`
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.