Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
distcc [2010/12/10 17:36] – 192_168_1.4 | distcc [2017/04/01 17:23] (aktuell) – gelöscht admin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | |||
- | ====== Allgemeines und Installation ====== | ||
- | |||
- | |||
- | Distcc ist ein Programm, welches sich um die Verteilung von Kompilierungsprozessen an teilnehmende Rechner kümmert. Es besteht aus einem Serverteil, distccd und einem Clientprogramm, | ||
- | |||
- | Um distcc einsetzen zu können, müssen alle Computer im Netzwerk die gleiche GCC-Version benutzen. Sie können verschiedene 3.3.x Versionen (wobei x variiert) verwenden, aber ein gleichzeitiger Gebrauch von 3.3.x und 3.2.x kann zu Fehlern bei der Kompilierung oder Ausführung von Programmen führen. | ||
- | |||
- | Distcc kommt mit einem grafischen Überwachungstool, | ||
- | |||
- | < | ||
- | |||
- | |||
- | ====== Portage so einrichten, dass es Distcc benutzt ====== | ||
- | |||
- | |||
- | < | ||
- | Dort fügt man distcc zu den Features hinzu. | ||
- | FEATURES=" | ||
- | Dies wäre also der Clientrechner der die Kompileranfrage ins Netz sendet. Die Liste der Hosts, bearbeitet man mit **distcc-config**. | ||
- | distcc-config --set-hosts " | ||
- | Man kann natürlich auch gesamte Netze eingeben. | ||
- | |||
- | Passen Sie / | ||
- | rc-update add distccd default | ||
- | etc/ | ||
- | |||
- | |||
- | ====== DistCC Cross-Compiling ====== | ||
- | |||
- | |||
- | Distcc ist ein Werkzeug, mit dem Sie die Last der Software-Kompilierung über mehrere vernetzte Rechner verteilen können. Solange die vernetzten Rechner alle die gleiche Toolchain für die gleiche Prozessorarchitektur benutzen, benötigen Sie keine spezielle Konfiguration des distcc. Aber was machen Sie, wenn Sie für eine abweichende Architektur auf verschiedenen Computern kompilieren möchten? Diese Anleitung wird Ihnen zeigen, wie Sie distcc konfigurieren müssen, um für unterschiedliche Architekturen zu kompilieren. | ||
- | |||
- | |||
- | ===== Emergen der notwendigen Werkzeuge ===== | ||
- | |||
- | |||
- | Als erstes müssen Sie crossdev und distcc auf allen Rechnern, die im Kompilierungsprozess eingebunden werden sollen, emergen. Crossdev ist ein Werkzeug, das das Erstellen von architekturübergreifenden Toolchains vereinfacht. Es wurde ursprünglich von Joshua Kinard geschrieben und dann von Mike Frysinger von Grund auf neu entwickelt. Seine Benutzung ist unkompliziert: | ||
- | |||
- | |||
- | ===== Architektur-spezifische Anmerkungen ===== | ||
- | |||
- | |||
- | Wenn Sie zwischen verschiedenen Subarchitekturen für Intel x86 (z.B. i586 und i686) cross-kompilieren, | ||
- | |||
- | |||
- | ===== Konfiguration von distcc um fehlerfrei Cross-Compiling zu nutzen ===== | ||
- | |||
- | |||
- | In der Standardeinstellung von distcc wird Cross-Compiling nicht ordnungsgemäß funktionieren. Das Problem ist, dass viele Builds einfach gcc aufrufen, anstatt des vollständigen Compilernamens (z.B. sparc-unknown-linux-gnu-gcc). Wenn dieser Kompilierungsvorgang dann auf die distcc Hilfsrechner verteilt wird, wird der systemeigene Compiler aufgerufen, anstelle Ihres brandneuen Cross-Compilers. | ||
- | Glücklicherweise gibt es eine Lösung für dieses kleine Problem. Sie benötigen nur ein Wrapper-Skript und ein paar Symlinks auf dem Rechner, der emerge ausführen wird. Ich werde meinen Sparc-Rechner als Beispiel nehmen. Wo auch immer Sie jetzt sparc-unknown-linux-gnu sehen, müssen Sie Ihren eigenen CHOST (zum Beispiel x86_64-pc-linux-gnu für einen AMD64-Rechner) einfügen. Nachdem Sie vorhin distcc emerged haben, sieht das Verzeichnis / | ||
- | |||
- | //Die folgenden Anweisungen dürfen nur auf dem Rechner ausgeführt werden, der den emerge-Prozess ausführt. Führen Sie diese Schritte nicht auf den Hilfsrechnern aus.// | ||
- | |||
- | |||
- | ====== Weitere Informationen ====== | ||
- | |||
- | |||
- | * [[http:// | ||