स्थानीय APT रिपॉजिटरी कैसे बनाएं?


103

मैं अपने LAN पर अपनी खुद की लोकल रिपॉजिटरी बनाना चाहूंगा, ताकि LAN की मशीनें इससे अपडेट और अपग्रेड कर सकें। मैं पैकेजों को डाउनलोड करना चाहता हूं और उन्हें अपने स्थानीय सर्वर पर संग्रहीत करना चाहता हूं ताकि मैं इंटरनेट का उपयोग किए बिना उसमें से अपडेट, अपग्रेड, इंस्टॉल आदि कर सकूं।


2
संभावित डुप्लिकेट: askubuntu.com/questions/974/…
stephenmyall

3
मुझे नहीं लगता कि यह कोई डुप्लिकेट है। मायाक्सक्स जो पूरा करना चाहता है, वह योग्यता के साथ उपयोग के लिए अपना स्वयं का रिपॉजिटरी सर्वर बनाना है। Keryx क्या करता है, अभिवृत्ति को संकुल प्रबंधक के रूप में प्रतिस्थापित करता है और संकुल के लिए बाहरी स्रोत बनाता है।
कॉन-एफ-

1
संभव डुप्लिकेट? - askubuntu.com/questions/9809/... या askubuntu.com/questions/3503/...
जेआरजी

जवाबों:


80

से उबंटू सहायता विकि :

अपने लिए एक साधारण भंडार स्थापित करने के लिए 4 चरण हैं

1.Install dpkg-dev
2.Put एक निर्देशिका में संकुल
एक स्क्रिप्ट है कि संकुल स्कैन और एक फाइल apt-get अद्यतन पैदा करेगा पढ़ सकते हैं 3.Create
4. अपने भंडार पर इशारा करते हुए अपने sources.list करने के लिए एक पंक्ति जोड़ें

Dpkg-dev स्थापित करें

एक टर्मिनल में टाइप करें

sudo apt-get install dpkg-dev

निर्देशिका

एक निर्देशिका बनाएं जहां आप अपने पैकेज रखेंगे। इस उदाहरण के लिए, हम उपयोग करेंगे/usr/local/mydebs.

sudo mkdir -p /usr/local/mydebs

अब अपने संकुल को उस निर्देशिका में ले जाएँ, जिसे आपने अभी बनाया है।

पहले डाउनलोड किए गए पैकेज आमतौर पर /var/cache/apt/archivesनिर्देशिका में आपके सिस्टम पर संग्रहीत होते हैं । यदि आपने apt-cacher स्थापित किया है, तो आपके पास इसके संकुल निर्देशिकाओं में संग्रहीत अतिरिक्त पैकेज होंगे।

स्क्रिप्ट अद्यतन-mydebs

यह एक साधारण तीन लाइनर है:

#! /bin/bash
 cd /usr/local/mydebs
 dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

उपरोक्त को gedit में काटें और चिपकाएँ, और इसे ~-bin में अपडेट-मायडब के रूप में सहेजें। (टिल्ड '~' का अर्थ है आपके घर की निर्देशिका। यदि ~ / bin मौजूद नहीं है, तो इसे बनाएं: Ubuntu उस निर्देशिका को आपके PATH में डाल देगा। यह व्यक्तिगत स्क्रिप्ट डालने के लिए एक अच्छी जगह है)। इसके बाद, स्क्रिप्ट को निष्पादन योग्य बनाएं:

chmod u+x ~/bin/update-mydebs

How the script works:

dpkg-scanpackages mydebs में सभी पैकेजों को देखता है, और आउटपुट को संपीड़ित किया जाता है और एक फ़ाइल (Package.gz) को लिखा जाता है जिसे apt-get update पढ़ सकते हैं (नीचे एक संदर्भ के लिए देखें जो इस पर विस्तार से बताते हैं)। / dev / null एक खाली फ़ाइल है; यह ओवरराइड फ़ाइल के लिए एक विकल्प है जो संकुल के बारे में कुछ अतिरिक्त जानकारी रखता है, जो इस मामले में वास्तव में आवश्यक नहीं है। यदि आप इसके बारे में जानना चाहते हैं, तो ओवर-ओवरराइड (5) देखें।

sources.list

लाइन जोड़ें

deb file:/usr/local/mydebs ./

आपके /etc/apt/source.list पर, और आपका काम हो गया।

सीडी विकल्प

आप किसी CD में दिए गए निर्देशिका को जला सकते हैं और एक रिपॉजिटरी के रूप में उपयोग कर सकते हैं (कंप्यूटर के बीच साझा करने के लिए अच्छा)। सीडी को भंडार के रूप में उपयोग करने के लिए, बस चलाएं

sudo apt-cdrom add

रिपोजिटरी का उपयोग करना

जब भी आप mydebs निर्देशिका में एक नई बहस डालते हैं, तो चलाएं

sudo update-mydebs
sudo apt-get update

अब आपके स्थानीय पैकेजों को Synaptic, aptitude और apt कमांड्स के साथ जोड़-तोड़ किया जा सकता है: apt-get, apt-cache, आदि। जब आप apt-get install का प्रयास करते हैं, तो कोई भी निर्भरता आपके लिए हल हो जाएगी, जब तक वे मिल सकते हैं। ।

खराब किए गए पैकेज शायद विफल हो जाएंगे, लेकिन आपके पास dpkg नरक नहीं होगा।


3
क्या आप रेखा पर वाक्य रचना समझा सकते हैं dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz/dev/nullवहाँ क्या कर रहा है? मैंने मैन पेज भी पढ़ा, लेकिन यह बिल्कुल स्पष्ट नहीं था।
sayantankhan

@ ब्लेड19899 मुझे स्पष्टीकरण की एक छोटी सी आवश्यकता है, कृपया। मुझे इसमें कुछ चुनिंदा पैकेजों के साथ एक रिपॉजिटरी चाहिए, हर पैकेज जो मैंने कभी नहीं छुआ। क्या मैं सही हूं कि यह तकनीक मुझे वह क्षमता देगी? यहां लक्ष्य एक रिपॉजिटरी का है जो एक सॉफ़्टवेयर इंस्टॉलेशन समूह एक पृथक LAN पर उपयोग कर सकता है, जो कि अनावश्यक से प्रलोभन से बहुत दूर है।
वेस मिलर

@WesMiller मुझे लगता है कि मुझे जरूरत है कि मैंने अभी-अभी उनका पोस्ट संपादित किया है!
ब्लेड 19899

@ ब्लेड19899 मुझे क्षमा करें, मुझे आपका उत्तर समझ में नहीं आया।
वेस मिलर

@WesMiller u need BigSack मैंने व्याकरण के मुद्दों के लिए अपनी पोस्ट को संपादित किया (मुझे लगता है कि यह कुछ समय के लिए है) यह मेरा जवाब नहीं है, लेकिन BigSack
ब्लेड 19899

41

* LAN पर एक ऑफ़लाइन रिपॉजिटरी बनाने के लिए *

एक स्थानीय अपाचे वेबसर्वर स्थापित करें

# apt-get install apache2

डिफ़ॉल्ट रूप से, डेबियन का अपाचे पैकेज /var/wwwआपके सिस्टम के तहत एक वेबसाइट स्थापित करेगा । हमारे उद्देश्यों के लिए, यह ठीक है, इसलिए कुछ और करने का कोई कारण नहीं है। आप आसानी से अपने पसंदीदा ब्राउज़र को इंगित करके इसका परीक्षण कर सकते http://localhostहैं। आपको डिफ़ॉल्ट पोस्ट-इंस्टॉलेशन वेब पेज को देखना चाहिए जो वास्तव में /var/www/index.html


Create a Debian Package रिपोजिटरी डायरेक्टरी में स्टोर किया

गया है ताकि एक डायरेक्टरी बनाई जा सके।/var/www/debsइसके लिए। इसके तहत, आपको "आर्किटेक्चर" निर्देशिकाओं का निर्माण करना चाहिए, प्रत्येक आर्किटेक्चर के लिए जो आपको समर्थन करने की आवश्यकता है। यदि आप केवल एक कंप्यूटर (या कंप्यूटर का प्रकार) का उपयोग कर रहे हैं, तो आपको 32 बिट सिस्टम के लिए आमतौर पर "i386" या 64 बिट के लिए "amd64" की आवश्यकता होगी। यदि आप किसी अन्य आर्किटेक्चर का उपयोग कर रहे हैं, तो मैं आपको इस बारे में पहले से ही जानता हूं। अब बस दिए गए आर्किटेक्चर के लिए ".deb" पैकेज फ़ाइलों को उपयुक्त निर्देशिकाओं में कॉपी करें। यदि आप अब अपने पसंदीदा वेब ब्राउज़र को इंगित करते हैं http://localhost/debs/amd64(उदाहरण के लिए) तो आप 64 बिट सिस्टम के लिए संकुल की सूची देखेंगे।


एक Package.gz फ़ाइल बनाएँ

अब हमें APT का उपयोग करने के लिए एक कैटलॉग फ़ाइल बनाने की आवश्यकता है। यह "dpkg-scanpackages" नामक एक उपयोगिता के साथ किया जाता है। यहाँ'

# cd /var/www/debs/

# dpkg-scanpackages amd64 | gzip -9c > amd64/Packages.gz




APT को ज्ञात रिपॉजिटरी बनाएं।

अब केवल एक चीज बची है, जो APT को आपके रिपॉजिटरी के बारे में बताने की अनुमति देता है। आप अपनी /etc/apt/source.list फ़ाइल को अपडेट करके ऐसा करते हैं। आपको इस तरह एक प्रविष्टि की आवश्यकता होगी:

deb http://localhost/debs/ amd64/

मैंने लोकलहोस्ट के बजाय अपने सिस्टम के वास्तविक होस्टनाम का उपयोग किया - इस तरह से कोड मेरे लैन पर सभी कंप्यूटरों के लिए समान है, लेकिन अगर आप सिर्फ एक कंप्यूटर चला रहे हैं तो लोकलहोस्ट ठीक काम करेगा।
अब, APT को अपडेट करें:

# apt-get update

2
/Etc/apt/source.list पर उस पंक्ति को जोड़ने से LAN में अपडेट न होने पर, टूट जाएगा?
फेलिक्स

2
उबंटू 16.04 के लिए, आपको /var/www/debsइस उत्तर के साथ बदलने की आवश्यकता हो सकती है /var/www/html/debs। या आपको अपने Apache कॉन्फ़िगरेशन को मैन्युअल रूप से संपादित करने के लिए अतिरिक्त चरणों की आवश्यकता होगी/etc/apache2
Erik

18

एक प्रामाणिक रिपोजिटरी बनाना

मैं यहाँ और अन्य साइटों पर जवाब पर एक नज़र है और सबसे अधिक (IMHO बड़ा) नुकसान है कि आप एक अनधिकृत भंडार स्थापित कर रहे हैं। यह आपको चलाने की आवश्यकता का मतलब है apt-getके साथ --allow-unauthenticatedइसे से पैकेज इंस्टॉल करने। यह एक सुरक्षा जोखिम हो सकता है, खासकर उन लिपियों में जहां आप जो पैकेज स्थापित कर रहे हैं, वे सभी आपके स्थानीय भंडार से नहीं हो सकते हैं।

ध्यान दें कि मैंने इसे लैन पर कैसे उपलब्ध कराया जाए, इसे कवर नहीं किया है, लेकिन यह अपाचे या नेग्नेक्स का उपयोग करते हुए काफी सामान्य विन्यास है (अन्य उत्तर यहां देखें)।

रेपो डायरेक्टरी को सेटअप करें

mkdir /home/srv/packages/local-xenial
cd /home/srv/packages/local-xenial

फिर इस तरह एक पंक्ति जोड़ें sources.list:

deb file:/home/srv/packages/local-xenial/ ./

पैकेज जोड़ना और निकालना

पैकेज निकालें

rm /home/srv/packages/local-xenial/some_package_idont_like

पैकेज जोड़ें

cp /some/dir/apackage.deb /home/srv/packages/local-xenial

अब निम्नलिखित स्क्रिप्ट चलाएँ जो संकुल, रिलीज़ और InRelease फ़ाइलों को उत्पन्न करती है और उन्हें आपकी gpg निजी कुंजी के साथ साइन करती है:

#!/bin/bash

if [ -z "$1" ]; then
       echo -e "usage: `basename $0` DISTRO
where DISTRO is the Ubuntu version codename (e.g. 14.04 is trusty)\n
The way to use this script is to do the changes to the repo first, i.e. delete or copy in the .deb file to /srv/packages/local-DISTRO, and then run this script\n
This script can be run as an unprivileged user - root is not needed so long as your user can write to the local repository directory"
else
    cd /srv/packages/local-"$1"

    # Generate the Packages file
    dpkg-scanpackages . /dev/null > Packages
    gzip --keep --force -9 Packages

    # Generate the Release file
    cat conf/distributions > Release
    # The Date: field has the same format as the Debian package changelog entries,
    # that is, RFC 2822 with time zone +0000
    echo -e "Date: `LANG=C date -Ru`" >> Release
    # Release must contain MD5 sums of all repository files (in a simple repo just the Packages and Packages.gz files)
    echo -e 'MD5Sum:' >> Release
    printf ' '$(md5sum Packages.gz | cut --delimiter=' ' --fields=1)' %16d Packages.gz' $(wc --bytes Packages.gz | cut --delimiter=' ' --fields=1) >> Release
    printf '\n '$(md5sum Packages | cut --delimiter=' ' --fields=1)' %16d Packages' $(wc --bytes Packages | cut --delimiter=' ' --fields=1) >> Release
    # Release must contain SHA256 sums of all repository files (in a simple repo just the Packages and Packages.gz files)
    echo -e '\nSHA256:' >> Release
    printf ' '$(sha256sum Packages.gz | cut --delimiter=' ' --fields=1)' %16d Packages.gz' $(wc --bytes Packages.gz | cut --delimiter=' ' --fields=1) >> Release
    printf '\n '$(sha256sum Packages | cut --delimiter=' ' --fields=1)' %16d Packages' $(wc --bytes Packages | cut --delimiter=' ' --fields=1) >> Release

    # Clearsign the Release file (that is, sign it without encrypting it)
    gpg --clearsign --digest-algo SHA512 --local-user $USER -o InRelease Release
    # Release.gpg only need for older apt versions
    # gpg -abs --digest-algo SHA512 --local-user $USER -o Release.gpg Release

    # Get apt to see the changes
    sudo apt-get update
fi

उदाहरण कॉन्टेक्ट ऑफ डिफरेंस / डिस्ट्रीब्यूशन फाइल

Origin: My_Local_Repo Label: My_Local_Repo Codename: xenial Architectures: i386 amd64 Components: main Description: My local APT repository SignWith: 12345ABC

लिंक

https://wiki.debian.org/RepositoryFormat

http://ubuntuforums.org/showthread.php?t=1090731

https://help.ubuntu.com/community/CreateAuthenticatedRepository


@ अपना उपयोग किया गया संपादन संपादित करें date -Rc, मैंने इसे यह date -Ruमानते हुए ठीक किया कि संपादन विवरण से आपका क्या अभिप्राय है
muru

धन्यवाद, मैंने हाल ही में स्थानीय टीबी और यूटीसी नहीं होने के कारण उत्पन्न तिथि से इस बारे में चेतावनियां प्राप्त करना शुरू कर दिया था। मैंने इसे अपनी लिपि में तय किया लेकिन इसे संपादित करना भूल गया
Happyyskeptic

1
@KevinJohnson मैंने अपने स्थानीय उपयुक्त रेपो से उस फ़ाइल के उदाहरण के साथ अब मुख्य उत्तर अपडेट किया है
Happyyskeptic

8

आप स्थानीय स्रोत सर्वर को nginx और reprepro द्वारा भी सेटअप कर सकते हैं:

  1. डेबियन पैकेज स्थापित करें

    sudo apt-get install reprepro nginx 
    
  2. reprepro के लिए निर्देशिका बनाएं और इसे संपादित करें

    sudo mkdir -p /srv/reprepro/ubuntu/{conf,dists,incoming,indices,logs,pool,project,tmp}
    
    $ cd /srv/reprepro/ubuntu/
    $ sudo chown -R `whoami` . # changes the repository owner to the current user
    

    / SRV / reprepro / ubuntu / conf / वितरण

    Origin: Your Name
    Label: Your repository name
    Codename: karmic
    Architectures: i386 amd64 source
    Components: main
    Description: Description of repository you are creating
    SignWith: YOUR-KEY-ID
    

    / SRV / reprepro / ubuntu / conf / विकल्प

    ask-passphrase
    basedir .
    
  3. इसे रिप्रेप्रो में शामिल करें, इसका निर्माण करें

    $ reprepro includedeb karmic /path/to/my-package_0.1-1.deb \
    # change /path/to/my-package_0.1-1.deb to the path to your package
    
  4. कॉन्फ़िगर करें

    /etc/nginx/sites-available/vhost-packages.conf

    server {
      listen 80;
      server_name packages.internal;
    
      access_log /var/log/nginx/packages-access.log;
      error_log /var/log/nginx/packages-error.log;
    
      location / {
        root /srv/reprepro;
        index index.html;
      }
    
      location ~ /(.*)/conf {
        deny all;
      }
    
      location ~ /(.*)/db {
        deny all;
      }
    }
    
  5. ऑप्टिमाइज़ करें बाल्टी का आकार:

    /etc/nginx/conf.d/server_names_hash_bucket_size.conf

    server_names_hash_bucket_size 64;
    

गाइड लिंक स्थापित करने का संदर्भ


4
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
gertvdijk

@elprup: आप उस उत्तर को अद्यतन करना भूल गए होंगे :)
0xC0000022L

रिप्रेपर एक ही पैकेज के कई संस्करणों का समर्थन नहीं करता है। यह अजीब लगता है, लेकिन यह तरीका रिप्रेप्रो का काम करता है
मैक्सडामो

6

तुम पर एक नज़र रखना चाहते हो सकता है apt-mirrorऔर apt-cacher

यहां एक गाइड है कि इसे कैसे इंस्टॉल और उपयोग किया जाए।


आपका 5-वर्षीय उत्तर LQ के रूप में चिह्नित किया जा रहा है। यदि इसे हटा दिया जाता है, तो मेटा पर जाएं और एक अनिर्दिष्टता के लिए पूछें। मैंने खुले रखने के लिए मतदान किया , लेकिन इसे संपादित करने की आवश्यकता है! ;-)
Fabby

5

@ बिगसैक के उत्तर और उबंटू की आधिकारिक विकि पोस्ट के निर्देशों ने उबंटू 18.04 पर मेरे लिए काम नहीं किया, जब तक कि मैंने ये दो बदलाव नहीं किए:

  1. एक सादा, असम्पीडित Packagesफ़ाइल उत्पन्न करें (इसे निष्पादित करते समय, कार्यशील निर्देशिका वह होनी चाहिए जहाँ सभी पैकेज स्थित हों)

    cd /usr/local/mydebs
    dpkg-scanpackages -m . > Packages
    
  2. निम्न प्रविष्टि जोड़ें /etc/apt/sources.list

    deb [trusted=yes] file:/usr/local/mydebs ./
    

4

स्थानीय रिपॉजिटरी बनाने के कई कारण हो सकते हैं। पहला यह है कि आप बैंडविड्थ पर बचत करना चाहते हैं यदि आपके पास अपडेट करने के लिए कई उबंटू मशीनें हैं। उदाहरण के लिए यदि आपके पास 25 उबंटू मशीनें हैं जिन्हें सप्ताह में कम से कम एक बार अपडेट करने की आवश्यकता होती है, तो आप बैंडविड्थ को महत्वपूर्ण रूप से बचाएंगे, क्योंकि आप स्थानीय स्तर पर सभी और रिपॉजिटरी कर सकते हैं।

अधिकांश संगठनों को अपने नेटवर्क गेटवे के लिए सभ्य बैंडविड्थ है, लेकिन यह बैंडविड्थ एक कीमती वस्तु है जिसका बुद्धिमानी से उपयोग करने की आवश्यकता है।

कई संगठनों के पास अभी भी गेटवे पर 10MB या 100MB की सीमा है, लेकिन आंतरिक रूप से 1 GB नेटवर्क कनेक्शन बैंडविड्थ का बेहतर इस्तेमाल किया जा सकता है। अपनी खुद की रिपॉजिटरी बनाने का दूसरा कारण यह है कि आप यह नियंत्रित कर सकते हैं कि आपके आंतरिक Ubuntu मशीनों पर कौन से एप्लिकेशन लोड किए गए हैं।

आप किसी भी एप्लिकेशन को हटा सकते हैं जिसे आपका संगठन मशीनों को अपडेट करने वाले भंडार से स्थानीय नेटवर्क पर उपयोग नहीं करना चाहता है। इससे भी बेहतर, आप सुरक्षा और सुरक्षा का आश्वासन देते हुए अपने नेटवर्क में रोल आउट करने से पहले एक टेस्ट बॉक्स और टेस्ट एप्लिकेशन और संस्करण बना सकते हैं।

टर्मिनल खोलने के लिए आपको सबसे पहले एक दर्पण सेटअप करना होगा, जिसे करने के लिए आपको अपने कीबोर्ड पर बस Ctrl+ Alt+ प्रेस Tकरना होगा। जब यह खुल जाए तो नीचे कमांड रन करें।

apt-get install apt-mirror 

एक बार जब आप अपना एप-मिरर सेट कर लेते हैं तो आप इस कमांड के साथ रिपॉजिटरी का अपना डाउनलोड शुरू कर सकते हैं।

apt-mirror /etc/apt/mirror.list 1

पढ़ते रहिये

1 स्रोत: एक उबंटू रिपोजिटरी बनाएं


क्षमा करें, लिंक मर चुका है
xamiro

3

ऑफ़लाइन स्थानीय रिपॉजिटरी
बनाने के लिए 1. डीर को सुलभ बनाएं (कम से कम जड़ से)

सुडो मक्दिर / वर / माय-लोकल-रेपो

  1. इस निर्देशिका में सभी डिबेट फ़ाइलों को कॉपी करें।
  2. निर्देशिका स्कैन करें

sudo dpkg-scanpackages / var / my-local-repo / dev / null> / var / my-local-repo / package

  1. स्रोतों में स्थानीय भंडार जोड़ें

इको "डिब फाइल: / var / my-local-repo ./"> /tmp/my-local.list

sudo mv /tmp/my-local.list /etc/apt/source.list.d/my-local.list

sudo apt-get update


कमोबेश यही बात आधिकारिक विकि पर भी है: रिपोजिटरीज़ / पर्सनल - कम्युनिटी हेल्प विकी
सादाऊ

1

मैंने apt-rdependsचयनित उत्तर की तरह उपयोग करने की कोशिश की , लेकिन जब मैंने अपने स्थानीय भंडार से पैकेज को स्थापित करने की कोशिश की, तो इसने गुम निर्भरता के बारे में शिकायत की।

apt-rdependsमेरे पैकेज के लिए कुछ निर्भरता को सूचीबद्ध नहीं किया गया था। मुझे संदेह है कि इस तथ्य के साथ कुछ करना है, जो apt-cache showइसके लिए कई रिकॉर्ड दिखाता है।

इसके बजाय मैंने इस्तेमाल किया apt-cache depends, और यह चाल चली:

निर्भरता की एक पुनरावर्ती सूची प्राप्त करना

apt-cache depends <packagename> -i --recurse

-iकेवल महत्वपूर्ण निर्भरताएँ --recurse: पुनरावर्ती

इसे पचाने योग्य सूची में बदल दें

  • प्रतीकों और रिक्त स्थान को हटाना: | tr -d "|,<,>, "
  • हटाने पर निर्भर करता है: | sed -e 's/^Depends://g' | sed -e 's/^PreDepends://g'
  • सूची को क्रमबद्ध करना: | sort
  • केवल अनन्य मान: | uniq > list.txt

पूरा आदेश:

apt-cache depends <packagename> -i --recurse | tr -d "|,<,>, " | sed -e \
's/^Depends://g' | sed -e 's/^PreDepends://g' | sort | uniq > list.txt

संकुल डाउनलोड करें

for i in $( cat list.txt ); do apt-get download $i; done;

पैकेजों के लिए स्कैन करें और इसे Package.gz में बदल दें

dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

1
संदर्भ के लिए एक अच्छा विचार हो सकता है कि आप किस उत्तर के बारे में बात कर रहे हैं ...
अनाम 2

-1

मैंने एप्ट-मिरर का उपयोग करके किया है।

इसका अच्छा लेकिन आपको अधिक हार्ड ड्राइव स्पेस की आवश्यकता है क्योंकि यह रेपो सर्वर के साथ सिंक हो जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.