Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

15.11.2011, 15:49

'Seltsame' Beobachtung beim emergen...

Hallo gentoo-Freunde :)

Ich wollte vor ein paar Tagen eigentlich schon schreiben, als ich es sah, dachte aber es müsse evtl so sein...

Doch die Pakete die 'so' gebaut werden, werden mehr...

Ja, ich weiß, habs spannend gemacht... Kern der Sache ist folgendes:

Mal angenommen man synced mit eix-sync oder emerge --sync und sieht, das Updates vorhanden sind, und möchte dann mit emerge -vauDN world das Sys-Update machen, geht ja normalerweise auf dem Monitor bei gentoo richtig die 'Post ab'... Die 'Build-Vorgänge' sind damit gemeint. Seit ein paar Tagen (ich weiß nicht ob bei Euch ähnlich) werden zwar die Pakete nach wie vor erfolgreich gebaut, jedoch steht meistens folgendes da:

Quellcode

1
2
3
...Jobs 1 of 3... avg: Zahl . Zahl . Zahl
Running 1 of 3 
Installing 1 of 3


Also so in der Art... Das tritt häufig bei Installationen von libs auf. Gestern trat es auf, weil wohl gcc-4.5.3-r1 ein neues USE-Flag 'cxx' bekommen hat... also es war ein reinstall von gcc-4.5.3-r1 mit 'USE=cxx%'

Da ich das bei gentoo so noch nie gesehen habe, mach ich mir natürlich Gedanken...

Meine Frage ist, ob das bei Euch auch so ist...?!

Hatte vor kurzer Zeit mal mitbekommen, das wohl in Bezug auf diese '%' '@' usw. einiges neu ist. Also bei Portage. Sind das irgendwelche Indezes?

Wär super wenn Ihr mir da etwas näher erläutern könntet. Mache mir ehrlich, etwas Sorgen...

Danke

Gruß
mnt_gentoo
Gruß
mnt_gentoo
_________________________________________________________________________________________

Die Launen und das Schicksal eines Gentoo-Users: ?( :| :cursing: :wacko: 8| ^^ 8o ;( :P ?( ...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »mnt_gentoo« (15.11.2011, 17:15)


2

15.11.2011, 16:23

Zu der Anzeige beim Bauen siehe [News] portage 2.2.0_alpha74 zeigt beim Emerge keine Details mehr

PS: Teste beim nächsten Update auf Deinem Turbo-System mal die emerge Option "-j" ;) Dann mach die verkürzte Anzeige auch Sinn.

Bezüglich des Reinstalls wg. Use-Change: Das hat damit zu tun, dass Du beim Update "-N" als Parameter verwendet hattest. Es hat also alles seine Ordnung. Oder ich verstehe die Frage nicht. Falls es um die Darstellung geht: aus "man emerge"

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
       --verbose (-v)
              Tell emerge to run in verbose mode.  Currently this flag  causes
              emerge to print out GNU info errors, if any, and to show the USE
              flags that will be used for each package  when  pretending.  The
              following  symbols are affixed to USE flags in order to indicate
              their status:


              Symbol   Location    Meaning
              ──────────────────────────────────────────────────────────────

              -        prefix      not enabled (either disabled or removed)
              *        suffix      transition to or from the enabled state
              %        suffix      newly added or removed
              ()       circumfix   forced, masked, or removed


Lies Dir mal "man emerge" durch. Ist zwar sehr lang, jedoch es lohnt sich. Portage ist sehr mächtig. In der Doku findest Du viele coole Sachen.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

3

15.11.2011, 17:15

Danke @bell für die schnelle Antwort...

Wahrscheinlich werd ich quietbuild direkt ausschalten. Also hab mir zwar 'man emerge' noch nicht durchgelesen, aber die Entscheidung der Entwickler, quietAusgabe als Standard zu benutzen, dann kann man gleich alles auf Windows machen.
Mehr als Windows beim Standard-System Update zeigt quiet-mode nämlich nicht. Hab mir mal Deinen Link durchgelesen. Scheint einigen nicht so zuzusagen...
PS: Teste beim nächsten Update auf Deinem Turbo-System mal die emerge Option "-j" ;) Dann mach die verkürzte Anzeige auch Sinn.

Du meinst, das die Ausgabe auf der Console bei einem schwächeren System zusätzlich ausbremst?!

Bezüglich des Reinstalls wg. Use-Change: Das hat damit zu tun, dass Du beim Update "-N" als Parameter verwendet hattest.
Ah! Ok... Dann ists geklärt... Ich dachte diese verkürzte Ausgabe und die Symbole hätten da miteinander zu tun... Nun ja, die Dinge traten zusammen auf. Wenn ein use-flag dazu kam, oder wegfiel zeite emerge das meist immer in hellgründer Farbe unmittelbar bei den Useflags des betr. Programms an... Mit Symbol 'cxx&' bisher nicht.

Dann sind wir nun wieder schlauer ;)

Danke
Gruß
mnt_gentoo
_________________________________________________________________________________________

Die Launen und das Schicksal eines Gentoo-Users: ?( :| :cursing: :wacko: 8| ^^ 8o ;( :P ?( ...

4

15.11.2011, 17:33

Ich meine nicht die Ausgabe, sondern folgendes:

Quellcode

1
2
3
4
5
6
7
       -j [JOBS], --jobs[=JOBS]
              Specifies  the  number  of  packages to build simultaneously. If
              this option is given without an argument, emerge will not  limit
              the  number  of  jobs  that can run simultaneously. Also see the
              related --load-average option.  Note that  interactive  packages
              currently  force a setting of --jobs=1. This issue can be tempo‐
              rarily avoided by specifying --accept-properties=-interactive.
Wenn emerge dann 10 Pakete parallel rödelt, dann ist die Ausgabe auf die Console nicht mehr sinnvoll.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

5

15.11.2011, 21:41

Wow, die Option ist mir noch gar nie aufgefallen!
Klappt das gut oder gibts damit Probleme?

6

15.11.2011, 22:10

prinzipiell klappt das gut.
wo es probleme geben kann, ist wenn mehrere grosse pakete parallel gebaut werden und der platz in /var/tmp/portage alle ist (bei kleiner root-partition oder compilen im ram). oder wenn ein paket auf ein anderes depended, was noch nicht fertig ist.
und die cpu wird natuerlich auch recht gut ausgelastet bei vielen parallelen builds, d.h. nen fps nebenbei spielen geht dann nicht mehr so ^^
ansonsten wuesste ich da nix problematisches.

ps: ich baue mit -j 4, weil 2 cores a 2 threads

7

15.11.2011, 23:56

Hallo alle :) Ähm, sorry aber jetzt versteh ich eigentlich nicht mehr viel. Die Option '-j' sagt wieviel Threads gleichzeitig ausgeführt werden (können)... Also Beispielsweise
ps: ich baue mit -j 4, weil 2 cores a 2 threads
Wie shiyu sagt... Nur diese '-j' Optionen... die stehen doch schon in der make.conf drin. Dnach der Regel "Cores plus 1" Da steht bei meinem '-j13' drin... Nur wenn man Euch jetzt so hört, dann erscheint das irgendwie wie etwas neues...

Oder ich habe jetzt was falsch verstanden... Verstehe es jedenfalls so das die Arbeit in den Prozessorkernen aufgeteilt wird. Wenn es aber so ist, wie Ihr jetzt erklärt, dann würde es bedeuten, das einzelne Threads als 'Ganzes' aufgeteilt werden... Besispiel ich könnte 12 Threads ausführen bei nem Six-Core mit HT...?!

Wenn ich aber ganz ehrlich bin, traue ich dem Braten nicht so ganz. Ich finde shiyu hat da nicht Unrecht mit genau DIESEM ->
...oder wenn ein paket auf ein anderes depended, was noch nicht fertig ist.
Also ich für meinen Teil werd wahrscheinlich die volle Ausgabe wieder einschalten... Wenn ich bei mir nen Paket baue oder Paket(e) von 300MB und höher, die baut die Kampfsau hier in weniger als 2h. Also KDE 4.7.3 hat knappe 1.5h gebraucht... Mir kommt das ein bisschen wackelig vor mit diesen Jobs gleichzeitig. Wenn ein Job mit vielen Kernen abgearbeitet wird, das ist was anderes...

Sorry, aber die Funktion reißt mich net unbedingt so vom Hocker... Wie lange nutzt Ihr das denn schon? Und ist es Mega-Update-konform? Also ist es stabil wenn man 'mal einfach so' sein gesamtes System neukompilieren möchte?
Gruß
mnt_gentoo
_________________________________________________________________________________________

Die Launen und das Schicksal eines Gentoo-Users: ?( :| :cursing: :wacko: 8| ^^ 8o ;( :P ?( ...

8

16.11.2011, 08:44

Ja, der Parameter ist ein Emerge-Parameter und hat mit MAKEOPTS="-j3" in der make.conf nichts zu tun. Die MAKEOPTS parallelisieren das Kompilieren innerhalb eines Paketes. Das klappt jedoch nicht bei allen Paketen. Bei einigen ist es explizit im Ebuild deaktiviert. "--jobs" baut mehrere Pakete parallel und funktioniert für alle Pakete.
der wenn ein paket auf ein anderes depended, was noch nicht fertig ist.
Das habe ich noch nicht erlebt. "--jobs" beachtet die Abhängigkeiten. Wenn dieser Fall auftreten sollte, so wird es ein Abhängigkeiten- Bug im Ebuild sein. Dieser könnte auch ohne Parallelisieren zuschlagen.

Ich nutze diese Option schon länger und habe noch keine nennenswerten Nachteile gesehen. Ich nutze keine "Ausbremsung", denn meistens hält sich die Anzahl der Parallelbuilds durch die Abhängigkeiten, Locks beim Installieren und das Warten auf die Downloads eh in Grenzen. Es kommt selten vor (meist bei "revdep-rebuild -- -j" btw. emerge -j @preserved-rebuild), dass der Zähler auf einmal bei 60 Jobs ist und das System nicht mehr nutzbar wird, wenn viele von einander nicht abhängige Pakete auf einmal neu gebaut werden müssen.

Hab mir mal ein Benchmark gemacht was das bringt: Auf einem QuadCore mit MAKEOPTS="-j5" dauert ein "emerge -ej system" ~40% weniger Zeit als ohne "-j" und nur mit MAKEOPTS="-j5".

Warum ich es erzähle (um wieder auf Topic zu kommen :whistling: ) mir ist die verschwundene Ausgabe gar nicht aufgefallen, da ich sie schon lange nicht mehr gesehen habe.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

9

16.11.2011, 10:06

*Klatsch* ... auch mal mein Senf dazu.

Dieses Feature gibt es in portage-2.2 schon sehr viel länger. Jetzt ist es aber im default eingeschaltet. Auch ich habe damit nie Probleme gehabt.

Einzig dieser Fall:
* ein emerge --keep-going -avuDN @world
* dependencies werden kalkuliert
* röffel-röffel
* ein großes package wird gebaut, bsp. OpenOffice
* röffel-röffel
* Irgendwo scheitert ein package. JETZT: dieses package verändert die dependencies.
* NEU: dependencies werden re-kalkuliert
* Jobs werden wieder gestartet.

Jetzt die Frage: wird in diesem Scenario OpenOffice weiter gebaut (wie bei einem "ebuild ... merge") oder wird das neu aufgesetzt (wie bei einem "emerge ...")? Problem; das Neuaufsetzen ist ein wenig übel, wenn OpenOffice schon fast fertig gewesen wäre.

Anm.: in dem Scenario ist OpenOffice nicht das Package, welches scheitert. In einem Pararllelmerge schafft es ein Package nicht und deswegen muß die komplette Dependency-Liste neu erstellt werden.

Kann mir einer folgen?

PS: OpenOffice == LibreOffice in diesem Beispiel.
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dyle« (16.11.2011, 10:14)


10

16.11.2011, 10:48

Ich kann Dir folgen.

Meine Beobachtung dazu: Schlägt ein Paket fehl:
- Es werden die bereits angefangenen Parallel-Merges (also in Deinem Fall LibreOffice) noch zu Ende gemacht
- Dann PENG und recalculating dependencies..
- Schmeiß die Pakete aus der Merge-Liste raus die vom abgebrochenen Package abhängen
- Weiter gehts mit dem Rest
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

11

16.11.2011, 12:15

Hm, das bedeutet aber, dass Packete, welche in Abhängigkeit stehen nur sequentiell gebaut werden dürfen.

Bsp.

Quellcode

1
2
3
A +--- B1 +--- C1

  '---- B2


A ist das top-package mit den Dependencies B1 und B2. B1 dependet dann auf C1. Da können jetzt nicht C1 und B2 parallel gebaut werden. Denn: es könnte ja sein, dass C1 scheitert und dann ist B2 auch hinfällig.

ODER: B2 wird trotzdem gebaut, landet aber dann in einer --deplcean auf die Abschlußliste, da ja A nicht im System ist.


... geht?
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

12

16.11.2011, 12:20

ODER++

Das selbe verhalten wie auch ohne Paralleles Bauen, wenn Portage sich enscheidet in folgender Reihenfolge zu bauen: B2 ; C1; B1; A
oder wenn das Palet B2 abbricht und C1 (und sogar B1) bereits gebaut wurden.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

13

16.11.2011, 15:28

Hallo :)

Also dann scheints doch mit einer gewissen Sicherheit zuzugehen... Wenn ich Euch richtig verstehe jetzt. Eurer Abhängigkeitsbeispiel hat mir etwas die Augen geöffnet...

Doch eine Frage hätte ich hierzu:
Meine Beobachtung dazu: Schlägt ein Paket fehl:
- Es werden die bereits angefangenen Parallel-Merges (also in Deinem Fall LibreOffice) noch zu Ende gemacht
- Dann PENG und recalculating dependencies..
- Schmeiß die Pakete aus der Merge-Liste raus die vom abgebrochenen Package abhängen
- Weiter gehts mit dem Rest
noch...
- Dann PENG und recalculating dependencies..
- Schmeiß die Pakete aus der Merge-Liste raus die vom abgebrochenen Package abhängen
geschieht dies denn automatisch dann? Ich frage deshalb, weil wenn ich angenommen gleichzeitig meinetwegen 10 Packages gleichzeitig bauen lasse, ich nicht unbedingt weiß, was zuende gebaut wurde. Ich stelle es mir so vor, das ich praktisch eine Liste sehe, während des Build-Vorgangs...

Job 1...
Job 2...
...
Job 10...

Doch die Threads heißen ja 'Job' Wenn da etwas scheitert und die Dependencies neu berechnet werden müssen, das MÜSSTE er ja dann schon automatisch machen... Denn 'Job a-z' könnte ja alles sein. Ihr versteht mich schon. Ich habe Befürchtungen das wenn soein Multibuild ausser Kontrolle gerät, es ein totales Chaos auf dem System anrichtet...

Zur Funktion hätte ich auch noch eine Frage:
-j [JOBS], --jobs[=JOBS] Specifies the number of packages to build simultaneously. If this option is given without an argument, emerge will not limit the number of jobs that can run simultaneously. Also see the related --load-average option. Note that interactive packages currently force a setting of --jobs=1. This issue can be tempo‐ rarily avoided by specifying --accept-properties=-interactive.
Also ich müsste, wolle ich das nutzen, anstatt:

Quellcode

1
emerge -vauDN world



Quellcode

1
emerge -j12vauDN world


eingeben, um beispielsweise einen Multibuild mit 12 Packages gleichzeitig einzuleiten... ?


@bell
(um wieder auf Topic zu kommen :whistling: )
hehe :rolleyes: keine Sorge @bell, bei meinen OT-Romanen, fallen paar Zeilen OT bei Dir auch nicht weiter auf :whistling: :P :whistling:
Gruß
mnt_gentoo
_________________________________________________________________________________________

Die Launen und das Schicksal eines Gentoo-Users: ?( :| :cursing: :wacko: 8| ^^ 8o ;( :P ?( ...

14

16.11.2011, 16:14

Einfach mal testen. Viel kaputt kann man da mit nicht machen!

Hier ein Beispiel: Reemerge von ein Paar Paketen. vmware-player und googleearth gehen kaputt, da fetch-restricted.
Bilder sagen wohl mehr als Worte:
index.php?page=Attachment&attachmentID=3454
und ganz unten nochmal
index.php?page=Attachment&attachmentID=3455

Ok, das war jetzt ohne "--keep-going". Wie das aussieht kann man sich jedoch vorstellen. Auf jeden Fall würde man sehen welche Pakete aus fehlenden Abhängigkeiten übersprungen wurden.
Wo die Fehler sind kann man in den genannten build.log 's sehen.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

15

16.11.2011, 16:21

8) Danke Dir :)

Ok, werds die Tage mal testen :) Mit dem Befehl war aber ok?

Quellcode

1
emerge -j[Anzahl Threads]vauDN world


? :whistling:
Gruß
mnt_gentoo
_________________________________________________________________________________________

Die Launen und das Schicksal eines Gentoo-Users: ?( :| :cursing: :wacko: 8| ^^ 8o ;( :P ?( ...

16

16.11.2011, 16:23

Ausprobieren! Mehr als eine Fehlermeldung kann nicht passieren:

Quellcode

1
2
3
4
# emerge -j12vauDN world
Usage: emerge [options]

emerge: error: no such option: -2


Quellcode

1
2
3
emerge -j12 -vauDN world

These are the packages that would be merged, in order:
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

17

16.11.2011, 16:40

Обязан к глубокой благодарности (zu tiefer Dankbarkeit verpflichtet) :whistling: :rolleyes: :thumbup:
Gruß
mnt_gentoo
_________________________________________________________________________________________

Die Launen und das Schicksal eines Gentoo-Users: ?( :| :cursing: :wacko: 8| ^^ 8o ;( :P ?( ...