Synchronisierungsprobleme beheben

Auf dieser Seite erfahren Sie, wie Sie Probleme im Zusammenhang mit den Befehl repo sync.

Netzwerkprobleme beheben

In diesem Abschnitt finden Sie einige Vorschläge zur Behebung von Netzwerkproblemen, führen zu fehlgeschlagenen Synchronisierungen.

Mit Authentifizierung Kontingentbarrieren umgehen

Um die Server vor übermäßiger Nutzung zu schützen, wird jede IP-Adresse, die für Zugriffsquelle ist mit einem Kontingent verknüpft.

Bei Freigabe einer IP-Adresse für andere Nutzer, z. B. beim Zugriff auf die Quelle von Repositories über eine NAT-Firewall hinaus, können Kontingente für normale Muster zu erkennen. Ein Kontingent kann beispielsweise ausgelöst werden, wenn mehrere Nutzer neue Clients synchronisieren von derselben IP-Adresse gesendet werden.

Um das Auslösen von Kontingenten zu vermeiden, können Sie den authentifizierten Zugriff verwenden, bei dem ein separate Kontingente für jeden Nutzer, unabhängig von der IP-Adresse.

So aktivieren Sie den authentifizierten Zugriff:

  1. Erstellen Sie mit dem Passwortgenerator ein Passwort.

  2. Führen Sie den folgenden Befehl aus, um Ihren Client für die automatische Verwendung Authentifizierung (ohne Zweig zu ändern):

    $ repo init -u https://android.googlesource.com/a/platform/manifest
    

    Beachten Sie, dass das Verzeichnispräfix /a/ die automatische Authentifizierung auslöst.

Für Proxy-Nutzung konfigurieren

Wenn Sie die Quelle hinter einem Proxy herunterladen, wie es in einigen Unternehmensumgebungen müssen Sie explizit einen Proxy für das Repository angeben, diese Befehle ausführen:

$ export HTTP_PROXY=http://proxy_user_id:proxy_password@proxy_server:proxy_port
$ export HTTPS_PROXY=http://proxy_user_id:proxy_password@proxy_server:proxy_port

TCP/IP-Einstellungen anpassen, um Verbindungsprobleme zu vermeiden

Es kommt zwar selten vor, bei Linux-Clients können jedoch Verbindungsprobleme auftreten, z. B.: während des Empfangs von Objekten mitten im Download stecken blieb. Zur Verbesserung Passen Sie die Einstellungen des TCP/IP-Stacks an oder verwenden Sie einen nicht parallelen Verbindungen. Sie benötigen Root-Zugriff, um die TCP-Einstellung zu ändern. So ändern Sie die führen Sie die folgenden Befehle aus:

$ sudo sysctl -w net.ipv4.tcp_window_scaling=0
$ repo sync -j1

Verwenden Sie einen lokalen Spiegel, um Netzwerklatenz zu vermeiden

Wenn Sie mehrere Clients verwenden, können Sie eine lokale Spiegelung des gesamten Servers erstellen. Content- und Synchronisierungs-Clients von diesem Spiegel aus, ohne auf den Netzwerk. Befolgen Sie diese Anweisungen, um eine lokale Spiegelung unter ~/aosp-mirror/ und synchronisieren Sie Clients mit diesem Spiegel:

  1. Erstellen und synchronisieren Sie den Spiegel:

    $ mkdir -p /usr/local/aosp/mirror
    $ cd /usr/local/aosp/mirror
    $ repo init -u https://android.googlesource.com/mirror/manifest --mirror
    

    Mit diesen Befehlen erstellen Sie einen lokalen Spiegel in /user/local/aosp/mirror und Initialisieren Sie den Spiegel mit dem Flag --mirror und der Methode repo init. .

  2. So synchronisieren Sie Clients vom Spiegel:

    $ mkdir -p /usr/local/aosp/main
    $ cd /usr/local/aosp/main
    $ repo init -u /usr/local/aosp/mirror/platform/manifest.git
    $ repo sync
    
  3. Führen Sie abschließend die folgenden Befehle aus, um den Spiegel mit dem Server und den Client mit dem Spiegel zu synchronisieren:

    $ cd /usr/local/aosp/mirror</code>
    $ repo sync
    $ cd /usr/local/aosp/main
    $ repo sync
    

Sie können den Spiegel auf einem LAN-Server speichern und über NFS darauf zugreifen. SSH oder Git. Sie können es auch auf einem Wechsellaufwerk aufbewahren und zwischen Nutzern und Computern.

Teilklon verwenden

Wenn Sie Git Version 2.19 oder höher verwenden, geben Sie --partial-clone an, wenn repo init ausführen, um Netzwerkprobleme mit niedriger Latenz zu beheben:

  $ repo init -u https://android.googlesource.com/platform/manifest -b main --partial-clone --clone-filter=blob:limit=10M

Anstatt Repository zu initialisieren, um alles herunterzuladen, wird mit diesem Befehl Git heruntergeladen je nach Bedarf.

Bestimmte Synchronisierungsprobleme beheben

Auf dieser Seite werden einige bekannte Probleme beschrieben, die beim Synchronisieren des Android-Quellcode.

Befehle schlagen mit dem Fehler 403 oder 500 fehl (Proxyprobleme)

Die Befehle repo init oder repo sync schlagen möglicherweise mit dem Fehler 403 oder 500 fehl. Fehler. Meistens sind diese Fehler auf HTTP-Proxys zurückzuführen, die Probleme haben, große Datenübertragungen zu bewältigen.

Es gibt zwar keine spezifische Lösung für diese Fehler, aber Sie sollten die neueste Python- und die explizite Verwendung von repo sync -j1 können Abhilfe schaffen.