इस पेज पर, repo sync
कमांड से जुड़ी समस्याओं को हल करने का तरीका बताया गया है.
नेटवर्क से जुड़ी समस्याएं हल करना
इस सेक्शन में, नेटवर्क से जुड़ी समस्याओं को ठीक करने के कई सुझाव दिए गए हैं. इन समस्याओं की वजह से, सिंक नहीं हो पाता.
कोटा से जुड़ी समस्याओं से बचने के लिए, पुष्टि करने की सुविधा का इस्तेमाल करना
सर्वर के ज़रूरत से ज़्यादा इस्तेमाल होने से बचाने के लिए, सोर्स को ऐक्सेस करने वाले हर आईपी पते के लिए कोटा तय किया जाता है.
अन्य उपयोगकर्ताओं के साथ आईपी पते को शेयर करने पर, सामान्य पैटर्न के लिए कोटा ट्रिगर हो सकते हैं. जैसे, NAT फ़ायरवॉल से बाहर सोर्स रिपॉज़िटरी को ऐक्सेस करते समय. उदाहरण के लिए, जब कई उपयोगकर्ता एक ही आईपी पते से, कम समय में नए क्लाइंट सिंक करते हैं, तो कोटा ट्रिगर हो सकता है.
कोटा ट्रिगर होने से रोकने के लिए, पुष्टि किए गए ऐक्सेस का इस्तेमाल किया जा सकता है. यह हर उपयोगकर्ता के लिए अलग कोटा इस्तेमाल करता है. भले ही, आईपी पते में कोई फ़र्क़ न हो.
पुष्टि किए गए ऐक्सेस की सुविधा चालू करने के लिए:
पासवर्ड जनरेटर की मदद से पासवर्ड बनाएं.
अपने क्लाइंट को अपने-आप पुष्टि करने की सुविधा का इस्तेमाल करने के लिए बदलने के लिए, यह कमांड चलाएं. इसके लिए, आपको शाखा बदलने की ज़रूरत नहीं है:
$ repo init -u https://android.googlesource.com/a/platform/manifest
ध्यान दें कि
/a/
डायरेक्ट्री प्रीफ़िक्स, अपने-आप पुष्टि करने की सुविधा को ट्रिगर करता है.
प्रॉक्सी का इस्तेमाल करने के लिए कॉन्फ़िगर करना
अगर किसी प्रॉक्सी के ज़रिए सोर्स डाउनलोड किया जा रहा है, जैसा कि कुछ कॉर्पोरेट एनवायरमेंट में आम तौर पर होता है, तो पक्का करें कि आपने Repo के लिए साफ़ तौर पर किसी प्रॉक्सी को तय किया हो. इसके लिए, ये निर्देश चलाएं:
$ 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
कनेक्टिविटी से जुड़ी समस्याओं से बचने के लिए, टीसीपी/आईपी सेटिंग में बदलाव करना
हालांकि, ऐसा बहुत कम होता है, लेकिन Linux क्लाइंट को कनेक्टिविटी से जुड़ी समस्याएं आ सकती हैं. जैसे, ऑब्जेक्ट पाने के दौरान, डाउनलोड बीच में रुक जाना. इस समस्या को ठीक करने के लिए, टीसीपी/आईपी स्टैक की सेटिंग में बदलाव करें या नॉन-पैरलल कनेक्शन का इस्तेमाल करें. टीसीपी सेटिंग में बदलाव करने के लिए, आपके पास रूट ऐक्सेस होना चाहिए. सेटिंग में बदलाव करने के लिए, ये निर्देश दें:
$ sudo sysctl -w net.ipv4.tcp_window_scaling=0
$ repo sync -j1
नेटवर्क के इंतज़ार से बचने के लिए, लोकल मिरर का इस्तेमाल करना
कई क्लाइंट का इस्तेमाल करते समय, पूरे सर्वर कॉन्टेंट का लोकल मिरर बनाया जा सकता है. साथ ही, नेटवर्क को ऐक्सेस किए बिना, उस मिरर से क्लाइंट सिंक किए जा सकते हैं. at
~/aosp-mirror/
में लोकल मिरर बनाने और क्लाइंट को उस मिरर के साथ सिंक करने के लिए, इन निर्देशों का पालन करें:
मिरर बनाना और सिंक करना:
$ mkdir -p /usr/local/aosp/mirror $ cd /usr/local/aosp/mirror $ repo init -u https://android.googlesource.com/mirror/manifest --mirror
ये निर्देश,
/user/local/aosp/mirror
में एक लोकल मिरर बनाते हैं औरrepo init
कमांड के साथ--mirror
फ़्लैग का इस्तेमाल करके मिरर को शुरू करते हैं.मिरर से क्लाइंट सिंक करने के लिए:
$ mkdir -p /usr/local/aosp/main $ cd /usr/local/aosp/main $ repo init -u /usr/local/aosp/mirror/platform/manifest.git $ repo sync
आखिर में, मिरर को सर्वर के साथ सिंक करने और क्लाइंट को मिरर के साथ सिंक करने के लिए, इन निर्देशों का पालन करें:
$ cd /usr/local/aosp/mirror</code> $ repo sync $ cd /usr/local/aosp/main $ repo sync
मिरर को एलएएन सर्वर पर सेव किया जा सकता है और NFS, एसएसएच या Git से ऐक्सेस किया जा सकता है. इसे किसी हटाने लायक ड्राइव में भी सेव किया जा सकता है और उस ड्राइव को उपयोगकर्ताओं या मशीनों के बीच शेयर किया जा सकता है.
क्लोन का कुछ हिस्सा इस्तेमाल करना
अगर Git के 2.19 या उसके बाद के वर्शन का इस्तेमाल किया जा रहा है, तो --partial-clone
को repo init
के साथ इस्तेमाल करें. इससे, नेटवर्क में लगने वाले कम समय से जुड़ी समस्याओं को हल करने में मदद मिलेगी:
$ repo init -u https://android.googlesource.com/platform/manifest -b main --partial-clone --clone-filter=blob:limit=10M
यह कमांड, सब कुछ डाउनलोड करने के लिए Repo को शुरू करने के बजाय, ज़रूरत के हिसाब से Git ऑब्जेक्ट डाउनलोड करता है.
सिंक करने से जुड़ी खास समस्याएं ठीक करना
इस पेज पर, Android सोर्स कोड को सिंक करने के दौरान होने वाली कुछ समस्याओं के बारे में बताया गया है.
कमांड 403 या 500 गड़बड़ी के साथ काम नहीं करते (प्रॉक्सी से जुड़ी समस्याएं)
repo init
या repo sync
निर्देश, 403 या 500 वाली गड़बड़ी की वजह से काम न कर सकते. ज़्यादातर मामलों में, ये गड़बड़ियां एचटीटीपी प्रॉक्सी से जुड़ी होती हैं, जो ज़्यादा डेटा ट्रांसफ़र को मैनेज नहीं कर पाती हैं.
इन गड़बड़ियों को ठीक करने का कोई खास तरीका नहीं है. हालांकि, Python के सबसे नए वर्शन का इस्तेमाल करने और repo sync -j1
का साफ़ तौर पर इस्तेमाल करने से, कभी-कभी मदद मिल सकती है.