# emerge: kompilieren fortsetzen?

## stefan-tiger

Hallo,

gibts es ne Möglichkeit das Kompilieren fortzusetzen, oder zumindest nicht von vorne anzufangen wenn man mal abgebrochen hat?

Versteht ihr?

----------

## Arudil

FEATURE="keepwork" in der make.conf

Das führt allerdings dazu, dass alles gespeichert wird. Also Sourcen, Objects und was noch alles in den Archiven des Programms steckt. Kann also auf die (kurze) Dauer extrem Platzverschwendend sein.

----------

## Ragin

Ich weiss nicht, ob du das meinst, aber mit emerge --resume kannst du bei dem Paket (das Paket allerdings von vorn) fortfahren, bei dem es abgebrochen ist.

Willst du das erste Paket überspringen kannst du auch emerge --resume --skipfirst nutzen.

----------

## Neo_0815

Ja wir verstehen, wie wärs wenn du dir die Portage Doku mal durchliest oder zumindest du Suchfunktion bemühst - verstehst du?

MfG

----------

## Earthwings

ccache beschleunigt erneutes Kompilieren durch Caching.

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3#doc_chap2

Du kannst auch wie von make gewöhnt an der "Abbruchstelle"  forsetzen. Dazu musst Du das emerge Kommando in seine Bestandteile zerlegen, beschrieben dort:

http://www.gentoo.org/doc/en/faq.xml#configure

Wie aber schon dort erwähnt, funktioniert das nur mit einfachen ebuilds.

----------

## stefan-tiger

 *Neo_0815 wrote:*   

> Ja wir verstehen, wie wärs wenn du dir die Portage Doku mal durchliest oder zumindest du Suchfunktion bemühst - verstehst du?
> 
> MfG

 

Hee, ich hab schon viel gelesen, wie z.b. : http://www.gentoo.de/doc/de/handbook/handbook-x86.xml?part=2&chap=2

u.v.a.m

Mir gehts konkret darum. Ich hab gestern Abend xfree abgebrochen. Viele Objektdateien sind schon vorhanden. wenn ich es jetzt erneut emerge, also normal oder mit --resume, dann fängt er wieder beim entpacken an und kompiliert genau die Objectdateien die eigentlich schon da sind/waren.

Ich wollte jetzt "einfach", daß bei einem erneuten emerge ganau das nicht passiert. Die vorhandenen Objektdateien sollen verwendet werden.

Bei ccache hab ich mal gelesen daß es zusammen mit distcc Probleme geben kann.

FEATURE="keepwork" in der make.conf kannte ich noch nicht.

Wenn man diese Option verwendet, udn ein Paket erfolgreich emerged ist, wird der "Müll" dann wieder gelöscht? Oder muss ich dann das FEATURE wieder ändern? Das wäre umständlich.

Gruß

----------

## pablo_supertux

Das einzige dumme an keepwork (ich benutze es auch) ist, dass du /var/tmp/portage selber löschen musst, weil sonst die kompilierten Sources nicht gelöscht werden und sher viel Platz in Anspruch nehmen.

----------

## Earthwings

 *pablo_supertux wrote:*   

> Das einzige dumme an keepwork (ich benutze es auch) ist, dass du /var/tmp/portage selber löschen musst, weil sonst die kompilierten Sources nicht gelöscht werden und sher viel Platz in Anspruch nehmen.

 

keepwork bringt in dem Zusammenhang doch gar nichts. emerge löscht vor dem Entpacken das Verzeichnis in /var/tmp/portage. keepwork ist nützlich, wenn man die Sourcen nach dem Installieren behalten will.

----------

## pablo_supertux

 *Earthwings wrote:*   

>  *pablo_supertux wrote:*   Das einzige dumme an keepwork (ich benutze es auch) ist, dass du /var/tmp/portage selber löschen musst, weil sonst die kompilierten Sources nicht gelöscht werden und sher viel Platz in Anspruch nehmen. 
> 
> keepwork bringt in dem Zusammenhang doch gar nichts. emerge löscht vor dem Entpacken das Verzeichnis in /var/tmp/portage. keepwork ist nützlich, wenn man die Sourcen nach dem Installieren behalten will.

 

Das weiß ich auch, weil ich keepwork auch verwende, vor allem, weil "make" fortgesetzt wird und nicht alles nochmal kompiliert. Ich sagte nur, benutzt man keepwork und nachdem man schon einiges kompiliert hat, ist das Verzeichnis gut 3 GB groß.

----------

## Eltharion

Kompilieren per ebuild Anweisungen hilft meist nicht, da ein ebuild compile meist das configure aufruft und dieses alle Makefiles erzeugt und damit mehr oder weniger alles von vorn kompiliert wird. Wenn das Kompilieren per ebuild also nicht in Frage kommt und man einfach nur weiter machen will, wo aufgehört wurde, dann hilft meistens das:

Ich sehe also z.B. das hier:

...

dms.h:56: internal compiler error: Segmentation fault

Please submit a full bug report,

with preprocessed source if appropriate.

See <URL:https://bugs.gentoo.org/> for instructions.

The bug is not reproducible, so it is likely a hardware or OS problem.

make[4]: *** [kstars.all_cpp.o] Error 1

make[4]: Leaving directory `/var/tmp/portage/kdeedu-3.4.1-r1/work/kdeedu-3.4.1/kstars/kstars'

Dann einfach "cd /var/tmp/portage/kdeedu-3.4.1-r1/work" -> Tab drücken.

Dort einfach make eintippen. Danach in dem Verzeichnis unterhalb von Work ein "touch .compiled" und mit ebuild ebuildname install/qmerge/clean weitermachen.

Das mit dem Tab drücken sollte man machen, da es auch ebuilds gibt, die da mehrere Unterverzeichnisse haben und die muss man dann ggf. per Hand einzeln besuchen und kompilieren. Bei einem Dir reicht einfach "make".

Wer die passende Idee hat, warum bei mir der Compiler immer mal aussteigt, ... (ich denke, das hat was mit der CPU-Termperatur zu tun, muss ich aber mal noch prüfen) kann sich ja trotzdem mal melden  :Wink: 

E*

----------

## Neo_0815

Das configure wird zwar aufgerufen, wenn der config.status sich aber nicht ändert, bleiben alle bis dahin kompilierten Object Files erhalten und make wird da fortgesetzt wo der Kompile abbrach.

Gruß

----------

