शुरुआत करने के लिए, आपको यह तय करना चाहिए कि ऐसा करना कहां बेहतर है। इंटरनेट के दो पसंदीदा, rsync और डीस्मिरर हैं । मैंने बाद को चुना, इसके अधिक लचीलेपन के कारण।
1. चाबियाँ प्राप्त करना
रिपॉजिटरी मिरर बनाने के लिए, आपको कुंजी "उबंटू पुरालेख स्वचालित साइनिंग कुंजी <ftpmaster@ubuntu.com>" प्राप्त करने की आवश्यकता है। ऐसा करने के लिए, पर्यवेक्षक से टर्मिनल में प्रवेश करें:
gpg --no-default-keyring --keyring trustedkeys.gpg --recv-keys 437D05B5
2। अंतरिक्ष की तैयारी
रिपॉजिटरी के लिए एक फ़ोल्डर बनाएँ:
sudo mkdir /path/to/repository
महत्वपूर्ण! संकेतित पथ में रिक्त स्थान की उपलब्धता की निगरानी करने के लिए परेशानी उठाएं। यहां तक कि दो आर्किटेक्चर i386 और amd64 इसकी एक सभ्य राशि लेंगे।
3. पैकेज प्राप्त करना
मिररिंग तीन चरणों में होती है:
- सूचकांक फ़ाइलें डाउनलोड करें;
- अज्ञात फ़ाइलें हटाएं (नीचे विकल्प - nnocleanup द्वारा अक्षम);
- सूचकांक अभिलेखागार की सूची बनाना और स्थानीय भंडार में उपलब्धता के लिए जाँच करना। उपरोक्त को लागू करने के लिए, निम्नलिखित सामग्रियों के साथ एक repo_update.sh फ़ाइल बनाएँ।
#!/bin/sh
# . ,
#, .
# cleanup. .
#. --nocleanup
clean=--nocleanup
# source. .
# (
# ), --no-source
src=--source
#Host. , .
servername=mirror.yandex.ru
#Root. .
rdir=/ubuntu
# Ubuntu. 10.04 .
release=lucid,lucid-backports,lucid-proposed,lucid-security,lucid-updates
#.
section=main,restricted,universe,multiverse
# . Debmirror : http,
#hftp, ftp, rsync
sync_protocol=rsync
#. 32 64 .
# . ,
# .
arch=i386,amd64
# . , . 2.
path=/path/to/repository
debmirror --progress --verbose $clean $src --md5sums --host=$servername --root=$rdir \
--dist=$release -s=$section --method=$sync_protocol -a=$arch $path
अब इसे / usr / स्थानीय / बिन निर्देशिका में डालें और इसे निष्पादन योग्य बनाएं।
chmod +x repo_update.sh
sudo cp repo_update.sh /usr/local/bin/
इसके बाद, परिणामी स्क्रिप्ट चलाएं और प्रक्रिया पूरी होने तक प्रतीक्षा करें। प्रक्रिया काफी लंबी है। लीड का समय आपके इंटरनेट फीड की चौड़ाई पर अत्यधिक निर्भर है।
sudo /usr/local/bin/repo_update.sh
चेतावनी! डाउनलोड का आकार दसियों गीगाबाइट से अधिक है, और ट्रेजरी इंटरनेट शायद ही कभी असीमित है। इसके अलावा, डेसमिरर कनेक्शन स्थिरता के लिए संवेदनशील है, डाउनटाइम के 120 सेकंड और आपको फिर से शुरू करना होगा।
4. वेब सर्वर सेटअप
टैम्बोरिन के साथ अनावश्यक नृत्य नहीं करने के लिए, हम रिपॉजिटरी तक पहुंच प्रदान करने के पारंपरिक तरीके के रूप में, http प्रोटोकॉल का चयन करेंगे। वेब सर्वर का चुनाव आपका है। पसंदीदा ngnix , Apache और lighttpd में से , मैंने इसके साथ अनुभव की कमी (उपयोगी, हाँ के साथ सुखद) के कारण बाद को चुना। So.
सर्वर स्थापना।
sudo apt-get install lighttpd
यहां सब कुछ सरल है। यदि आप www के रूप में डिफ़ॉल्ट के अलावा निर्देशिकाओं का उपयोग करने की योजना नहीं बनाते हैं, तो सर्वर को कॉन्फ़िगर करने की आवश्यकता नहीं है। आपको केवल / var / www निर्देशिका में एक प्रतीकात्मक लिंक बनाने की आवश्यकता है
ln -s /path/to/repository /var/www/ubuntu
ब्राउज़र से रिपॉजिटरी की उपलब्धता की जाँच करें: http: // <ip_address_repository> / ubuntu /
5. ग्राहकों को कॉन्फ़िगर करना
यहाँ हम थोड़ा ट्रिक लगाते हैं। /Etc/apt/sources.list में परिवर्तन न करने के लिए (आपको कभी नहीं पता होगा कि क्या होगा)। / Etc / मेजबान फ़ाइल में कुछ पंक्तियाँ जोड़ें।
<ip_address_repository> ru.archive.ubuntu.com
<ip_address_repository> security.ubuntu.com
नोट। यदि आपके पास DNS सर्वर है, तो आप इसमें यह सब लिख सकते हैं, और रिपॉजिटरी सर्वर पर, उपरोक्त नामों के सही पते लिख सकते हैं।
6। स्वचालन
और अब सबसे प्यारी चीज। चलो यह सब अपने दम पर स्पिन करें।
6.1 सर्वर भाग
पैराग्राफ # 3 में, हमने एक स्क्रिप्ट बनाई जिसके साथ हमें पैकेट मिले। हम क्रोन डेमॉन का उपयोग करके इसके ऑटोरन को कॉन्फ़िगर करेंगे।
sudo crontab -e
जिस पर हम प्रतिष्ठित पंक्ति जोड़ते हैं:
0 0 * * * /usr/local/bin/repo_update.sh
अब हर दिन 0:00 पर हमारी स्क्रिप्ट हमारे लिए सभी नियमित काम करेगी।
6.2 ग्राहक भाग
क्लाइंट पर, निम्न सामग्री के साथ / usr / स्थानीय / बिन निर्देशिका में system_upd.sh स्क्रिप्ट बनाएं:
#!/bin/sh
apt-get -y update && apt-get -y upgrade && apt-get -y clean
इसे निष्पादन योग्य बनाना न भूलें।
sudo chmod +x /usr/local/bin/system_upd.sh
फिर क्रोन खोलें:
sudo crontab -e
और लाइन जोड़ें:
40 17 * * * /usr/local/bin/system_upd.sh
अब हर दिन 17:40 पर सिस्टम अपडेट के लिए हमारी रिपॉजिटरी को प्रदूषित करेगा और यदि कोई पाया जाता है तो अपडेट किया जाएगा।
चेतावनी! क्रॉस्टैब के साथ काम करते समय , आपको यह नहीं भूलना चाहिए कि कार्यों के साथ लाइनों के बाद एक खाली रेखा होनी चाहिए, जो ' # ' संकेत द्वारा इंगित की गई है।
ps : मैं संलग्न चित्रों की कमी के लिए माफी माँगता हूँ, लेकिन इस मामले में मैं उनकी उपस्थिति को बस अनुचित मानता हूँ।