Portál AbcLinuxu, 2. května 2025 05:41
Nasledujici zapis je vicemene Gentoo (portage) only. Priznivci ostatnich balickovacich systemu tu asi moc nenajdou
Zdravim vsechny Gentooisty,
chystam se na pravidelny update sveho Gentoo, tak me napadlo predtim trochu prozkoumat, jak si tu kdo updatujete system.
Pokud je mi (zatim) znamo, zpusobu je vic:
emerge -avuD world; revdep-rebuild
- updatuje balicky vcetne zavislosti
emerge -e system; emerge -e world;
- prekompiluje nejdriv cely systemove nastroje (vcetne gcc), potom jeste jednou vsechno za pouziti novych nastroju
emerge -e system; emerge -e system; emerge -e world; emerge -e world;
- prekompiluje nejdriv cely systemove nastroje (vcetne gcc), potom jeste jednou totez; pak poprve vsechno (update, muze zustat nejaky stary kod) a nakonec podruhe vsechno (tentokrat uz se 100% jistotou)
Nakonec jeste jeden dotaz (mozna by to patrilo spis do diskuse, ale tematicky to navazuje):
Existuje v Gentoo nejaka utilita na automaticke zpracovani konfiguraku? (Nejlepe asi diff oproti puvodni verzi na zjisteni zmen a nasledne mergnuti do nove verze, s tim ze by to upozornovalo az kdyz tohle selze). Zatim vim jenom o etc-update
(pokud jsem to dobre pochopil, tak updatne jenom to, co uzivatel -nebo nejaky nastroj - nezmenil, jinak vyplivne spooooustu veci k rucnimu doladeni) a dispatch-config
(zatim nemam moc zkusenosti, ale na prvni pohled to vypadalo dost podobne)
Tiskni
Sdílej:
emerge -uDNv world
emerge -ua worldProtože nebazíruju na tom, abych měl všechny balíčky absolutně up-to-date. Ty důležité balíčky se časem zaktualizují samy od sebe (protože je mám ve worldu), nebo nějakým jiným updatem.
etc-update
použím spolu s vimdiff
– co umí, to zmerguje sám, co neumí, to mi otevře ve vimu pěkně oba soubory vedle sebe se zvýrazněnými změnami. Upravím konfigurák podle svých představ, uložím a nechám etc-update, ať jím nahradí původní soubor (nebo naopak nechám smazat aktualizaci). Pro mne je to dostatečně pohodlné a přitom mám kontrolu nad tím, jaký konfigurák vznikne.
emerge -avu world
emerge -pv world
nebo emerge -pv system
a z vysledku vyberu par veci. a oneshoot nepouzivam takze muj world bude asi peknej bordel emerge -uavtDN world; revdep-rebuild; dispatch-conf
dispatch-conf má tu výhodu, že umí změny konfiguráků verzovat. Bohužel vydolovat ty změny z rcs už není nic jednoduchého
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
No myslím si, že ty hypotetické optimalizace za to nestojí. Bohatě mi stačí když musím kvůli gcc kompilovat celý systém.
Jen malá poznámka: gcc se kompiluje třikrát už samo od sebe. Nejprve starou verzi gcc, pak novým gcc (zkompilované starou verzí gcc) a nakonec se ještě překompiluje sebou samým.
Navíc při kompilaci -e world se system zkompiluje taky, takže podle mě bohatě stačí
emerge -e system && emerge -e worldPřípadně před to můžu ještě dát
emerge -e gcc
Pokud by se kompiloval system i world dvakrát, tak se gcc zkompiluje celkem dvanáckrát.
No myslím si, že ty hypotetické optimalizace za to nestojí.O tom myslím není sporu
Jen malá poznámka: gcc se kompiluje třikrát už samo od sebe. Nejprve starou verzi gcc, pak novým gcc (zkompilované starou verzí gcc) a nakonec se ještě překompiluje sebou samým.To jsem netušil, je o tom někde víc info? To dělá Gentooovský ebuild nebo přímo gcc make?
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
Ale to už je fakt jenom pro někoho, kde nechce v systému ani bit nějak spojený s předchozí verzí.bohužel toho standardními prostředky nedocílí, neb balíčkovač velmi často "zapomene" smazat staré soubory ... onehdy jsem na jednom stroji zjistil, že má v adresáři /usr/kde/3.4 spoustu blbostí, a přitom dávno jede na 3.5, tak jsem začal zjišťovat, kterým balíčkům patří, hm, žádným, takže by mi to v systému zřejmě zůstalo na věky, kdybych si toho nevšiml ...
Tak jsem to nakonec našel tady: Installing GCC: Building. Ve skutečnosti je to trochu komplikovanější
The bootstrapping process will complete the following steps:
miho ~ # emerge -upD system | wc -l 64 miho ~ # emerge -upD world | wc -l 273 miho ~ # hmm, tak na to prdim! -su: hmm,: command not found
emerge -uDatv system
emerge -uDatv world
dispatch-conf
revdep-rebuild
dispatch-conf
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.