Senkronizasyon sorunlarını giderme

Bu sayfada, repo sync komutunu kullanın.

Ağ sorunlarını düzelt

Bu bölümde, aşağıda belirtilen ağ sorunlarını çözmeye yönelik öneriler sunulur: senkronizasyonların başarısız olmasına neden olabilir.

Kota engellerini önlemek için kimlik doğrulaması kullanma

Sunucuları aşırı kullanıma karşı korumak için, kullanılan her IP adresi erişim kaynağı bir kotayla ilişkilendirilmiş.

Bir IP adresini diğer kullanıcılarla paylaşırken (ör. NAT güvenlik duvarının ötesinden kaynak depolarına erişirken) normal kalıplar için kotalar tetiklenebilir. Örneğin, birkaç kullanıcı yeni istemciler senkronize ettiğinde kota tetiklenebilir. Kısa bir süre içinde aynı IP adresinden

Kotaların tetiklenmesini önlemek için kimliği doğrulanmış erişim kullanabilirsiniz. her kullanıcı için ayrı kota eklemeniz gerekir.

Kimlik doğrulaması yapılmış erişimi etkinleştirmek için:

  1. Şifre oluşturma aracını kullanarak bir şifre oluşturun.

  2. İstemcinizi otomatik kimlik doğrulama kullanacak şekilde dönüştürmek için şu komutu çalıştırın (dal değiştirmeden):

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

    /a/ dizin önekinin otomatik kimlik doğrulamayı tetiklediğini unutmayın.

Proxy kullanımı için yapılandırma

Bazı tarayıcılarda yaygın olduğu gibi, kaynağı bir proxy'nin arkasından indiriyorsanız kullanıyorsanız, Repo'nun kullanması için özel bir proxy şu komutları çalıştırarak yapabilirsiniz:

$ 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

Bağlantı sorunlarını önlemek için TCP/IP ayarlarını düzenleme

Nadir de olsa Linux istemcileri, nesneleri alırken indirme işleminin ortasında takılma gibi bağlantı sorunları yaşayabilir. Bu sorunu iyileştirmek için TCP/IP yığınının ayarlarını düzenleyin veya paralel olmayan bağlantılar kullanın. TCP ayarını değiştirmek için kök erişiminizin olması gerekir. Ayarı değiştirmek için aşağıdaki komutları girin:

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

Ağ gecikmesini önlemek için yerel bir ayna kullanın

Birden fazla istemci kullanırken sunucu içeriğinin tamamının yerel bir aynasını oluşturabilir ve ağa erişmeden istemcileri bu aynadan senkronize edebilirsiniz. Şu konumda yerel ayna oluşturmak için bu talimatları uygulayın: ~/aosp-mirror/ ve istemcileri bu yansıtmayla senkronize edin:

  1. Yansıtmayı oluşturun ve senkronize edin:

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

    Bu komutlar, /user/local/aosp/mirror içinde yerel bir ayna oluşturur ve repo init komutuyla --mirror işaretini kullanarak aynayı başlatır.

  2. İstemcileri yansıtmadan senkronize etmek için:

    $ mkdir -p /usr/local/aosp/main
    $ cd /usr/local/aosp/main
    $ repo init -u /usr/local/aosp/mirror/platform/manifest.git
    $ repo sync
    
  3. Son olarak, aynayı sunucuya ve istemciyi aynaya senkronize etmek için aşağıdaki komutları uygulayın:

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

Yansıtmayı bir LAN sunucusunda depolamak ve NFS, SSH veya Git üzerinden erişmek mümkündür. Ayrıca çıkarılabilir bir sürücüde saklayarak bir araç kullanıyoruz.

Kısmi kopya kullanma

Git 2.19 veya sonraki bir sürümü kullanıyorsanız şunu belirtin: --partial-clone düşük gecikmeli ağ sorunlarının üstesinden gelmek için repo init performansı:

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

Bu komut, Repo'yu her şeyi indirecek şekilde başlatmak yerine Git nesnelerini gerektiğinde indirir.

Belirli senkronizasyon sorunlarını düzeltme

Bu sayfada, Android kaynak kodunu senkronize etmeye çalışırken karşılaşabileceğiniz bazı bilinen sorunlar ayrıntılı olarak açıklanmıştır.

Komutlar 403 veya 500 hatasıyla başarısız oluyor (proxy sorunları)

repo init veya repo sync komutları 403 veya 500 koduyla başarısız olabilir hatası. Bu hatalar genellikle büyük veri aktarımlarını işleme konusunda sorun yaşayan HTTP proxy'leriyle ilgilidir.

Bu hataların belirli bir düzeltmesi olmasa da sürümünü kullanmak ve açıkça repo sync -j1 kullanmak bazen işe yarayabilir.