Portál AbcLinuxu, 1. května 2025 15:27
emerge --update --deep --newuse world
- tohle překompiluje celý systém? Nemělo to být emerge -e world
?
Nejak mi to pripomina http://www.gentoo.org/doc/en/prelink-howto.xml, vubec nevim proc :). At uz to aspon opise poradne, cili ze v$CFLAGS/$CXXFLAGS
nesmi byt-fPIC
, v$USE
naopak musi bejtpic
(to je spravne). Meziemerge --update --deep --newuse world
aemerge -uDN world
neni absolutne zadny rozdil, proto nechapu dvoji uvedeni tehoz (snaha o natahnuti clanku?). Proc se stale opakujesu -
? Opet to nema vubec zadny vyznam. Ad python a emerge - ten pythoni kod je spatne, protoze neni odsazen, takhle nebude fungovat. Dale testovani "rychlosti emerge" pri tretim opakovaniemerge -ep world
je IMHO nesmyslne, protoze uz jsou tou dobou vsechny udaje nacachovane (cache Portage, ne disku), a navic rozdil 1 sekunda je, ehm, opravdu zanedbatelny. Kdyz uz, tak at si pohraje semerge --metadata
:) .
itsuki spike411 # time emerge --metadata skipping sync >>> Updating Portage cache: 100% real 2m41.791s user 0m15.869s sys 0m9.891s
# time emerge -uDNpv world > /dev/null real 0m15.605s user 0m4.564s sys 0m0.464sprocesor Athlon64 3000+, slušný kousek RAM, relativně rychlý disk, tak teda nevím, kde autor vzal ty svoje necelé tři sekundy ... žeby se o něčem zapomněl zmínit? jako třeba že si hrál s těmi metadaty nebo že používá unstable portage (jak bylo zmíněno výše, že 2.1 je rychlejší než 2.0.x)? není ten článek potom poněkud zavádějící???
1. pridat USE="pic"
2. emerge -uDNv world
3. prelink -aRmv
hotovo :)
--deep
ti rozhodne /var/lib/portage/world
neposkodi.
To je pravda.Chci říct.. máš pravdu, že nemá pravdu
To je pravda. Vhodný je ale dát si na emerge alias emerge --oneshot a do worldu přidávat jen to, co opravdu chciNerozumim - do worldu se pridava pouze to, co si "explicitne" nainstalujes, tj. vsecko, co instalujes jako
emerge foo
. Pokud balicek foo
zavisi na bar
a baz
, tyhle dva so do worldu nepridaji. Lidi, ctete ty manualy...
Tedy IMHO... můj styl aktualizace je následovný: esync -v a pak když vidím třeba novou glib, tak emerge -u glib.. no a díky aliasu se nepřidá do worldu,
--update
ti do worldu nic neprida
což je dobře, protože jí tam nechci a zároveň nechci spouštět emerge -avuNDt world.Nejaky duvod (teda krome toho
--tree
, coz nepouzivam)?
Nerozumim - do worldu se pridava pouze to, co si "explicitne" nainstalujes, tj. vsecko, co instalujes jakoVe výstupu esync vidím novou glib a tak napíšu emerge glib, přestože jí nechci ve worldu. To co píšeš vím.emerge foo
. Pokud balicekfoo
zavisi nabar
abaz
, tyhle dva so do worldu nepridaji. Lidi, ctete ty manualy...
--update
ti do worldu nic neprida
Tak tady je to můj omyl. Ale když nepoužiješ -u, tak přidá.
Nejaky duvod (teda krome toho --tree
, coz nepouzivam)?
Protože to trvá a tohle vyjde rychleji. Když těch updatů není moc, což většinou není, protože aktualizuju často. Jinak důvod není, nemám v tom bordel. Třeba dneska jsem to udělal po patlání s GCC 4.1 Tak tady je to můj omyl. Ale když nepoužiješ -u, tak přidá.Neprida.
-u
== --update
Já psal když nepoužiješ -u, tak přidá a za tím si stojímAle když nepoužiješ -u, tak přidá.Neprida.-u
==--update
emerge -uavtDN world
?
Stále nechápu. Nějaký názorný příklad by nebyl?
Co si pamatuju, tak jsem měl spíše problém s tím, že mi emerge --deepclean
odinstaloval půlku systému, protože fůra věcí nebyla ve wold. Dal jsem jen emerge k3b krusader
, což mi nainstalovalo taky KDE a X, ale ve worldu zapsány nebyly. A nezapsaly se ani při emerge -uavtDN world
Pak stačilo si poplést příkazy a napsat emerge --deepclean
místo revdep-rebuild rebuild
a ráno bylo vymalováno.
Kdyz musim rict KDE, ze bylo prelinkovano, tak to musim rikat i jinym aplikacim?Myslíte tím KDE_IS_PRELINKED="true"? Dle "Gentoo Preling Guide" tímto zakážete natažení kdeinit, které není již třeba a zkrátíte tím start KDE jako takového. Rozumím tomu, že je to spíš takový "bonbónek". Na druhou stranu, ačkoliv mám KDE prelinklé spolu s tou hodnotou TRUE, htop stejně hlásí jeden proces "kdeinit Running" a dále několik málo dalších:
4 x "kio http [kdeinit] http /tmp .... atd" 1 x "kio pop3 [kdeinit] pop3 /tmp .... atd" 1 x "kio file [kdeinit] file /tmp .... atd"- takže nevím. Máte to snad jinak? Prelinkáči / neprelinkáči?
Na dobírku sice ne, ale poštou ano
* Zboží zasíláme poštou pouze na území ČR. * Z eBanky trvá převod obyčejně několik minut, z jiné banky 2 dny, při platbě Českou poštou i 5 dní... * Číslo účtu: 984525028/2400 eBanka. * Poštovné a balné: o 70 Kč (S DPH) Menší objem (obálka) o 140 Kč (S DPH) do 5 [kg] (balík) o 200 Kč (S DPH) do 25 [kg] (balík) o V případě větších zásilek /servery, desktopy atd./ je cena přepravy stanovena dohodou. * Nezasíláme na dobírku.
man gcc
říká, že -fpic
a -fPIC
jsou pro i386 target identické.
If the GOT size for the linked executable exceeds a machine-specific maximum size, you get an error message from the linker indicating that -fpic does not work; in that case, recompile with -fPIC instead. (These maximums are 8k on the SPARC and 32k on the m68k and RS/6000. The 386 has no such limit.)Taky mi není moc jasné proč chcete překompilovat VŠECHNO jako PIC, když samotné programy pro prelink být PIC nemusejí, a DSO jsou PIC defaultně (doufám že i na exotu Gentoo). Se mi tak nějak zdá že autor vůbec netuší jak prelink funguje. Prelink si pouze z nalezených binárek a knihoven vytáhne dependency grafy, z nich spočítá které binárky a DSO jsou potřeba dohromady, podle toho přiřadí jednotlivým DSO preferred load address tak aby se nepřekrývaly, a upraví jejich relokace tak aby se při mapování knihovny na danou adresu nemusely aplikovat.
Vy jste mi ale srandisti..Vis, $CFLAGS a $USE neni az tak uplne to same...man gcc
říká, že-fpic
a-fPIC
jsou pro i386 target identické.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.