Τοπικό αποθετήριο πακέτων. Debian - Δημιουργία τοπικού αποθετηρίου (apt-mirror). Προετοιμασία και εγκατάσταση του apt-mirror

Πρόσφατα συνάντησα ένα βοηθητικό πρόγραμμα reprepro. Βοηθά στη δημιουργία ενός τοπικού αποθετηρίου διανομών που βασίζονται σε deb. Μετά με ξημέρωσε. Συλλέγω πακέτα εδώ και πολύ καιρό που δεν υπάρχουν στα επίσημα αρχεία, οπότε κάθε φορά που έπρεπε να τα περάσω και να τα εγκαταστήσω, έγινε κάθαρμα και αποφάσισα να δημιουργήσω μια ενότητα με αποθετήρια τέτοιων πακέτων αποθηκευμένα εκεί. Επομένως, όταν αλλάζετε το σύστημα, απλώς τοποθετήστε το και χρησιμοποιήστε το όπως χρειάζεται. Αυτό μου φαίνεται πιο χρήσιμο από την αποθήκευση της προσωρινής μνήμης από το apt-get.


Εν συντομία για reprepro
Πρέπει να δημιουργήσετε έναν κατάλογο για το αποθετήριο. Η επιλογή μου πέφτει /αποθήκηΕπομένως, απαιτεί δικαιώματα υπερχρήστη για να λειτουργήσει. Και κατ 'αρχήν, εάν μόνο ο διαχειριστής έχει δικαιώματα εγγραφής σε αυτόν τον κατάλογο, τότε υπάρχει μεγάλη πιθανότητα κανένας από έξω δεν θα μπορέσει να βλάψει το "αρχείο" σας
#mkdir/αποθήκη
Ας πάμε εκεί:
Δημιουργήστε ένα φάκελο /repository/conf/για αρχεία ρυθμίσεων
# mkdir /repository/conf

Δημιουργούμε ένα αρχείο, προσθέτοντας τις απαραίτητες ενότητες (μπορείτε να διαβάσετε περισσότερα σχετικά με αυτό στην έξοδο εντολών άνθρωπος repreproστην ενότητα ΑΡΧΕΙΑ ΔΙΑΜΟΡΦΩΣΗΣ)
# mousepad /repository/conf/distributions
Στο αρχικό κείμενο της εξήγησης, ο συγγραφέας παρέχει ένα τέτοιο παράδειγμα αυτού του αρχείου


Προέλευση: Debian
Σουίτα: δοκιμή
ΕπίσηςAcceptFor: ασταθές πειραματικό
Κωδικό όνομα: lenny
Έκδοση: 5.0
Αρχιτεκτονικές: πηγή i386
Εξαρτήματα: κύρια συνεισφορά μη δωρεάν
UDebComponents: κύρια συνεισφορά μη δωρεάν
Περιγραφή: το τοπικό μου αποθετήριο
Οπου:
Προέλευση - Όνομα διανομής = Debian
Σουίτα - υποκατάστημα = δοκιμή
AlsoAcceptFor - σας επιτρέπει να "σπρώξετε" πακέτα για άλλους κλάδους στο αποθετήριο δοκιμών = ασταθές πειραματικό, εάν δεν έχει καθοριστεί η επιλογή, θα εμφανιστεί έτσι όταν προσπαθείτε να προσθέσετε πακέτα από τους ασταθείς/πειραματικούς κλάδους.
Κωδικό όνομα - κωδικό όνομα υποκαταστήματος = lenny
Έκδοση - έκδοση κλάδου = 5.0
Αρχιτεκτονικές - αρχιτεκτονικές, έχω επεξεργαστή x86, άρα έχω i386, ανεβάζω και μερικές φορές πηγές στο αποθετήριο, άρα υπάρχει πηγή
Στοιχεία - τμήματα του κλάδου όπου μπορείτε να τοποθετήσετε πακέτα deb, καθώς και πηγές = κύρια συνεισφορά μη δωρεάν (μπορείτε να δημιουργήσετε όσα περισσότερα θέλετε)
UDebComponents - τμήματα του κλάδου όπου μπορείτε να τοποθετήσετε πακέτα udeb (υπάρχουν μερικά) = κύρια συνεισφορά μη δωρεάν (καλύτερα όταν ταιριάζουν με την παραπάνω γραμμή)
Περιγραφή - μια σύντομη λεκτική περιγραφή του αποθετηρίου = για παράδειγμα, το τοπικό μου αποθετήριο

Εάν ο κατάλογος του αποθετηρίου δεν είναι τρέχων, τότε γράψτε το λεγόμενο BASEDIRεπιλογές -b BASEDIR(στην περίπτωσή μου BASEDIR=/αποθήκη).

Μετά τη δημιουργία του αρχείου /repository/conf/διανομέςαρχικοποιήστε το αποθετήριο
# reprepro εξαγωγή
# reprepro δημιουργείσύνδεσμους συμβόλων

Μπορείτε να γεμίσετε το αποθετήριο με πακέτα. Υπάρχουν πολλές εντολές και επιλογές για αυτό, περισσότερες λεπτομέρειες για τις οποίες μπορείτε να βρείτε στο man reprepro
Περισσότερο χρησιμοποιημένο

Προσθήκη πακέτου deb στο αποθετήριο.
ΣΕ γενική εικόναμοιάζει με αυτό:
# reprepro -b BASEDIR -C SECTION includeeb ΚΛΑΔΟΣ /path/to/file/filename.deb
Όπως περιέγραψα νωρίτερα, αυτό είναι ένα παράδειγμα προσθήκης ενός πακέτου όχι από τον κατάλογο με το αποθετήριο, αλλά από έναν αυθαίρετο κατάλογο. Εάν βρίσκεστε στον κατάλογο του αποθετηρίου, τότε η εντολή φαίνεται ίδια αλλά χωρίς -b BASEDIR
Για παράδειγμα, για να προσθέσετε ένα πακέτο foo_1.0.debπου βρίσκεται στο φάκελο /home/user/debian, στο κύριο τμήμα του κλάδου lenny η εντολή θα μοιάζει με αυτό
# reprepro -b /repository -C main includeeb lenny /home/user/debian/foo_1.0.deb

Αφαίρεση πακέτου deb από το αποθετήριο
Για να αφαιρέσετε ένα πακέτο deb από τον καθορισμένο κλάδο αποθήκευσης, πρέπει να εκδώσετε την ακόλουθη εντολή
# reprepro αφαίρεση κλαδιού πακέτου_όνομα

Για παράδειγμα, για το εξεταζόμενο πακέτο foo_1.0.debπου βρίσκεται στο υποκατάστημα Λένιδώστε αυτή την εντολή:
# reprepro αφαιρέστε lenny foo

Για να χρησιμοποιήσετε το αποθετήριο πρέπει να το προσθέσετε στο αρχείο /etc/apt/sources.listόπως η ακόλουθη γραμμή (γενικά):
ενότητες deb file:///path_to_repository_folder/

Το οποίο για το παράδειγμά μας θα μοιάζει με αυτό:
deb file:///repository/ κύρια συνεισφορά lenny μη δωρεάν

Αυτό είναι βασικό, που νομίζω ότι είναι αρκετό στην περίπτωσή μου. Το αρχικό άρθρο βρίσκεται

Γιατί μπορεί να χρειάζεστε τοπικό; αποθήκηπρογράμματα; Ας υποθέσουμε ότι έχετε πολλούς σταθμούς εργασίας στο γραφείο σας χωρίς πρόσβαση στο Διαδίκτυο. Αλλά πρέπει με κάποιο τρόπο να εγκαταστήσουν και να ενημερώσουν το λογισμικό. Σε αυτήν την περίπτωση, δημιουργείται ένα τοπικό αποθετήριο στον διακομιστή (ή σε άλλο μηχάνημα με πρόσβαση στο Διαδίκτυο), το οποίο ενημερώνεται περιοδικά. Και οι υπόλοιποι σταθμοί εργασίας παίρνουν προγράμματα από εκεί. Μπορεί επίσης να είναι χρήσιμο σε περίπτωση περιορισμένης ή όχι πάντα προσβάσιμο διαδίκτυο. Κάντε λήψη του αποθετηρίου - και ανά πάσα στιγμή μπορείτε να εγκαταστήσετε οποιοδήποτε προσβάσιμο πρόγραμμα. Δεν υπάρχει τίποτα περίπλοκο στη δημιουργία ενός τοπικού αποθετηρίου τώρα θα περιγράψω τα πάντα λεπτομερώς.

Συνιστάται πολύ να τοποθετήσετε το τοπικό αποθετήριο σε έναν ξεχωριστό σκληρό δίσκο (τουλάχιστον, ένα διαμέρισμα), έτσι ώστε σε περίπτωση ατυχήματος να μην χάσετε όλα όσα έχετε κατεβάσει μέσω επαναληπτικής εργασίας. Αποθετήριο διανομής Debian 8για την αρχιτεκτονική amd64ζυγίζει περισσότερο 40 gigabyte. Αντίστοιχα, εάν χρειάζεστε επίσης πακέτα i386 (32 bit), τότε η ένταση θα διπλασιαστεί. Λοιπόν, ας υποθέσουμε ότι το σύστημά σας έχει έναν ξεχωριστό σκληρό δίσκο 500 GB τοποθετημένο στο /media/repo. Από αυτό θα προχωρήσουμε. Ας ξεκινήσουμε με το Debian 8 Jessie.

Υπάρχουν διάφοροι τρόποι για να δημιουργήσετε ένα τοπικό αποθετήριο στο Debian/Ubuntu. Θα χρησιμοποιήσω το απλούστερο και πιο χρονικά δοκιμασμένο βοηθητικό πρόγραμμα - apt-mirror. Εγκαθιστώ:

sudo apt εγκατάσταση apt-mirror apache2

Δημιουργήστε έναν κατάλογο για το αποθετήριο:

sudo mkdir /media/repo/debian

Και κατάλογοι υπηρεσιών:

sudo mkdir -p /media/repo/debian/(mirror,var,skel)

Ρύθμισή του. Ανοίξτε το αρχείο ρυθμίσεων:

sudo nano /etc/apt/mirror.list



ορίστε base_path /media/repo/debian




# set var_path $base_path/var




# set defaultarch


ορίστε run_postmirror 0

# Παράμετροι υπηρεσίας, όχι
ορίστε nthreads 20
set_tilde 0
#

# Καθρέφτης με πακέτα για amd64 jessie (σταθερό) + πηγές
deb-amd64 http://mirror.yandex.ru/debian jessie κύρια συνεισφορά μη δωρεάν

# Καθρέφτης με ενημερώσεις ασφαλείας amd64 jessie (σταθερό) + πηγές
deb-amd64 http://security.debian.org/jessie/updates κύρια συνεισφορά μη δωρεάν


deb-amd64 http://mirror.yandex.ru/debian jessie main/debian-installer




skip-clean http://mirror.yandex.ru/debian/dists/jessie/main/installer-amd64/

# Καθρέφτης με πακέτα για i386 jessie (σταθερό) + πηγές
deb-i386 http://mirror.yandex.ru/debian jessie κύρια συνεισφορά μη δωρεάν
deb-src http://mirror.yandex.ru/debian jessie κύρια συνεισφορά μη δωρεάν
# Καθρέφτης με ενημερώσεις ασφαλείας i386 jessie (σταθερό) + πηγές
deb-i386 http://security.debian.org/jessie/updates κύρια συνεισφορά μη δωρεάν
deb-src http://security.debian.org/jessie/updates κύρια συνεισφορά μη δωρεάν
# Απαιτείται καθρέφτης για εγκατάσταση δικτύου (udebs)
deb-i386 http://mirror.yandex.ru/debian jessie main/debian-installer
# Διαγράψτε αρχεία που δεν έχουν ευρετηριαστεί στο Release
καθαρό http://mirror.yandex.ru/debian
καθαρό http://security.debian.org
# Απενεργοποιήστε τον καθαρισμό του επιλεγμένου φακέλου
skip-clean http://mirror.yandex.ru/debian/dists/jessie/main/installer-i386/

Αποθηκεύσετε. Ας ξεκινήσουμε τη λήψη του αποθετηρίου:

sudo apt-mirror

Μετά τη λήψη των αρχείων ευρετηρίου, το Apt-Mirror θα σας πει πόσα πακέτα πρέπει να κατεβάσετε (ο όγκος θα είναι πολύ, πολύ μεγάλος). Το μόνο που έχετε να κάνετε είναι να περιμένετε. Το σύστημα θα κάνει τα υπόλοιπα μόνο του. Για να συγχρονίσετε και να καθαρίσετε αυτόματα τους καθρέφτες, πρέπει να προσθέσετε μια γραμμή στις ρυθμίσεις cronκαι ορίστε την κατάλληλη ώρα. Οι επίσημοι καθρέφτες ενημερώνονται κάθε 6 ώρες: 3:00, 9:00, 15:00, 21:00. Για παράδειγμα όπως αυτό:

crontab -ε

05 01 * * * apt-mirror >> /var/log/apt-mirror.log
05 03 * * * /media/repo/debian/var/clean.sh >> /var/log/apt-mirror.log

Για σωστή λειτουργία είναι απαραίτητο να προστεθούν συμβολικοί σύνδεσμοι "σταθερός","δοκιμή", "ασταθής"επί Τζέσι, τέντωμα, πλευράανάλογα (αν τα έχεις). Παράδειγμα για jessie:

ln -s /media/repo/debian/mirror/mirror.yandex.ru/debian/dists/jessie /media/repo/debian/mirror/mirror.yandex.ru/debian/dists/jessie/stable

Έχουμε εγκαταστήσει έναν διακομιστή ιστού Απάχηςγια καλό λόγο. Το χρειαζόμαστε για να διανείμουμε πακέτα από το τοπικό μας αποθετήριο μέσω του δικτύου (τοπικό). Πρώτα, πρέπει να διαμορφώσετε την πρόσβαση στο αποθετήριο. Για να το κάνετε αυτό, πρέπει να δημιουργήσετε έναν συμβολικό σύνδεσμο:

cd /media/repo/debian/
sudo ln -s /media/repo/debian/mirror/mirror.yandex.ru/debian debian

Τώρα στον υπολογιστή-πελάτη (που χρειάζεται πρόσβαση στο τοπικό αποθετήριο), δώστε τη διεύθυνση του αποθετηρίου. Εάν ο υπολογιστής με το αποθετήριο έχει όνομα δικτύου (για παράδειγμα υπηρέτης), στη συνέχεια υποδείξτε το. Διαφορετικά, υποδείξτε το με τη διεύθυνση διεύθυνση IP:

sudo nano /etc/apt/sources.list

deb http://server/debian κύρια συνεισφορά jessie μη δωρεάν
deb-src http://server/debian jessie κύρια συνεισφορά μη δωρεάν
deb http://server/debian jessie/updates κύρια συνεισφορά μη δωρεάν

Εάν έχετε καθορίσει τη φόρτωση πακέτων 32-bit (i386) στη διαμόρφωση, τότε μην ξεχάσετε να προσθέσετε αυτήν την αρχιτεκτονική στο σύστημα:

sudo dpkg --add-architecture i386

Και ενημερώστε τη λίστα πακέτων:

sudo apt-get ενημέρωση

Τότε όλα είναι όπως συνήθως. Για το Ubuntu, όλα είναι ίδια, εκτός από τα ονόματα των αποθετηρίων και την προσθήκη μιας αρχιτεκτονικής 32-bit σε ένα σύστημα 64-bit (όχι απαραίτητο). Config mirror.list για Ubuntu 14.04:

############# config ###################
# Βασικός κατάλογος, όπου θα δημιουργηθεί ένας τοπικός καθρέφτης του αποθετηρίου του Debian
ορίστε base_path /media/repo/ubuntu

# Διαδρομές για κατοπτρισμό αρχείων, προσωρινών αρχείων και αρχείου καταγραφής εκτέλεσης apt-mirror
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh

# Η αρχιτεκτονική για την οποία δημιουργείται ο καθρέφτης. Η προεπιλογή είναι η αρχιτεκτονική
# συστήματα στα οποία εκτελείται το apt-mirror (amd64, i386 ή άλλα). Δεν χρειάζεται να αλλάξει
# επειδή Παρακάτω θα αναφέρουμε ρητά τόσο τον καθρέφτη όσο και την αρχιτεκτονική.
# set defaultarch

# Η διαδρομή προς το σενάριο μετά την επεξεργασία λείπει από προεπιλογή, αλλά δεν τη χρειαζόμαστε ακόμα.
# set postmirror_script $var_path/postmirror.sh

# Μην εκτελείτε σενάριο μετα-επεξεργασίας
ορίστε run_postmirror 0

# Παράμετροι υπηρεσίας, όχι
ορίστε nthreads 20
set_tilde 0
#
############# end config ##############

deb-amd64 http://archive.ubuntu.com/ubuntu αξιόπιστη κύρια περιορισμένη
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-updates κύρια περιορισμένη
deb-amd64 http://archive.ubuntu.com/ubuntu αξιόπιστο σύμπαν
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-updates σύμπαν
deb-amd64 http://archive.ubuntu.com/ubuntu αξιόπιστο πολυσύμπαν
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-updates multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-security main limited
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-security universe
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-security multiverse

deb-i386 http://archive.ubuntu.com/ubuntu αξιόπιστη κύρια περιορισμένη
deb-i386 http://archive.ubuntu.com/ubuntu trusty-updates κύρια περιορισμένη
deb-i386 http://archive.ubuntu.com/ubuntu αξιόπιστο σύμπαν
deb-i386 http://archive.ubuntu.com/ubuntu trusty-updates σύμπαν
deb-i386 http://archive.ubuntu.com/ubuntu αξιόπιστο πολυσύμπαν
deb-i386 http://archive.ubuntu.com/ubuntu trusty-updates multiverse
deb-i386 http://archive.ubuntu.com/ubuntu trusty-security κύρια περιορισμένη
deb-i386 http://archive.ubuntu.com/ubuntu trusty-security universe
deb-i386 http://archive.ubuntu.com/ubuntu trusty-security multiverse

Λοιπόν, κατά συνέπεια, πρέπει να αλλάξετε τον συμβολικό σύνδεσμο:

ln -s /media/repo/ubuntu/mirror/archive.ubuntu.com/debian/dists/trusdy /media/repo/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/trusty/stable

Αυτό είναι όλο. Αυτός είναι ο απλούστερος και, κατά τη γνώμη μου, σωστός τρόπος για να δημιουργήσετε ένα τοπικό αποθετήριο σε αυτά τα συστήματα. Εάν έχετε οποιεσδήποτε ερωτήσεις, γράψτε στα σχόλια.

Όπως γνωρίζετε, το Ubuntu εφαρμόζει κεντρική αποθήκευση πληροφοριών για όλα τα μεγάλα προγράμματα σε ένα μέρος, για πιο βολική αναζήτηση και επακόλουθη εγκατάσταση. Αυτό το μέρος είναι ο διαχειριστής πακέτων Synaptic. (Σύστημα -> Διαχείριση -> Διαχείριση πακέτων Synaptic) Για να εγκαταστήσετε το πρόγραμμα, χρειάζεται μόνο να το βρείτε στη λίστα και να το επισημάνετε για εγκατάσταση, στη συνέχεια το πρόγραμμα θα ληφθεί αυτόματα από το Διαδίκτυο και θα εγκατασταθεί.

Τα βασικά προγράμματα που μπορεί να είναι χρήσιμα όταν εργάζεστε στο Ubuntu OS αποθηκεύονται στο λεγόμενο αποθετήριο στο επίσημος διακομιστής Ubuntu. Κάθε φορά που ελέγχετε ένα πρόγραμμα για εγκατάσταση στον διαχειριστή πακέτων Synaptic, γίνεται πρώτα λήψη του.

Αλλά τι να κάνετε εάν έχετε πολύ αργό ή ακριβό Διαδίκτυο, ή ίσως δεν έχετε καθόλου πρόσβαση στον Παγκόσμιο Ιστό ή απλά δεν θέλετε να βασίζεστε σε σύνδεση στο Διαδίκτυο ενώ εργάζεστε σε Linux Ubuntu? Μπορείτε, φυσικά, να κατεβάσετε τα πάντα απαραίτητα προγράμματα(πακέτα) ένα κάθε φορά, και στη συνέχεια εγκαθιστάτε χειροκίνητα, αλλά ποιος ξέρει ποιο πρόγραμμα θα σας είναι χρήσιμο στο μέλλον;

Η λύση σε αυτό το πρόβλημα είναι η δημιουργία ενός τοπικού αποθετηρίου, π.χ. ένα πλήρες ή μερικό αντίγραφο του επίσημου αποθετηρίου στον σκληρό σας δίσκο. Έτσι, μόλις κάνετε λήψη ολόκληρου του αποθετηρίου, δεν θα είστε πλέον εξαρτημένοι από το Διαδίκτυο.

Ας ξεκινήσουμε λοιπόν.

1. Για να δημιουργήσετε ένα αντίγραφο (slice) του αποθετηρίου στον σκληρό σας δίσκο, υπάρχει ειδικό πρόγραμμα: debmirror. Αντίστοιχα, πρώτα πρέπει να το εγκαταστήσετε από τον ίδιο διαχειριστή πακέτων Synaptic

ή πληκτρολογώντας την εντολή στο τερματικό:

sudo apt-get install debmirror

2. Δημιουργήστε έναν φάκελο στον αρχικό κατάλογο στον οποίο θα αποθηκευτεί ένα κομμάτι του αποθετηρίου (ή ακόμα και πολλά), για παράδειγμα, ας τον ονομάσουμε Αποθετήρια.

Ας πάμε στο φάκελο Αποθετήρια:

και δημιουργήστε ένα αρχείο σεναρίου σε αυτό που ονομάζεται archive.ubuntulinux.org.sh:

gedit archive.ubuntulinux.org.sh

Επικολλήστε τα ακόλουθα σε αυτό το αρχείο:

#!/bin/bash -x
/usr/bin/debmirror --nosource -m --passive --host=archive.ubuntulinux.org \
--root=ubuntu --method=ftp --πρόοδος \
--dist=hardy,hardy-security,hardy-updates,hardy-backports \
--ignore-release-gpg --section=main,restricted,multiverse,universe \
--arch=i386 /full/path/to/folder/where/need/to/download/repository/

η πλήρης διαδρομή σας θα πρέπει να μοιάζει κάπως έτσι: /home/aidsoid/Repositories/ru.archive.ubuntu.com/

και σώστε το. Μετά την αποθήκευση, πρέπει να κάνετε το αρχείο με δυνατότητα εκκίνησης (chmod +x archive.ubuntulinux.org.sh).

Το παραπάνω παράδειγμα θα πραγματοποιήσει λήψη του αποθετηρίου για το Ubuntu 8.04 (Hardy Heron) εάν εξακολουθείτε να χρησιμοποιείτε παλιά εκδοχή Ubuntu 7.10 (Gutsy Gibbon), τότε πρέπει να τροποποιήσετε λίγο αυτό το σενάριο, συγκεκριμένα, πρέπει να αλλάξετε τις τιμές της παραμέτρου --dist από ανθεκτικό σε έντονο. Θα πρέπει επίσης να δώσετε προσοχή στην παράμετρο --arch, η οποία υποδεικνύει την αρχιτεκτονική του υπολογιστή σας, η τιμή i386 υποδεικνύει ότι τα πακέτα θα ληφθούν για έναν υπολογιστή με αρχιτεκτονική x86. Αυτή η παράμετρος μπορεί επίσης να είναι amd64 για υπολογιστές 64-bit AMD ή Intel.

4. Λοιπόν, αυτό είναι όλο, στην πραγματικότητα, τώρα μπορείτε να εκτελέσετε το σενάριο για εκτέλεση Για να το κάνετε αυτό, στην κονσόλα, ενώ στο φάκελο Αποθετήρια, πληκτρολογήστε την ακόλουθη εντολή:

./archive.ubuntulinux.org.sh

Το σενάριο θα αρχίσει να λειτουργεί. Ολόκληρο το αποθετήριο καταλαμβάνει περίπου 20-30 Gigabyte, οπότε πριν το κατεβάσετε, βεβαιωθείτε ελεύθερο μέροςστο δίσκο. Μπορείτε να διακόψετε ανώδυνα το σενάριο ανά πάσα στιγμή πατώντας το συνδυασμό πλήκτρων Ctrl+C. Όταν εκτελείτε ξανά το σενάριο, θα συνεχίσει να κατεβάζει μη κατεβάσει πακέτα. Επίσης, η εκ νέου εκτέλεση του σεναρίου θα ενημερώσει το τοπικό σας αποθετήριο, π.χ. Ελέγχεται η παρουσία νέων εκδόσεων προγραμμάτων και γίνεται και λήψη τους.

Σημείωση: Υπάρχει μια μικρή παγίδα για τους χρήστες του Ubuntu 7.10: χρήστες Ubuntu 8.04 Δεν υπάρχει τίποτα ανησυχητικό. Υπάρχει ένα σφάλμα στο debmirror που προκαλεί την αφαίρεση του φακέλου του pool από το τοπικό αποθετήριο κατά την εκ νέου εκτέλεση του σεναρίου. Πρέπει να διορθωθεί πριν από την εκτέλεση του σεναρίου. Περιγραφή του σφάλματος εδώ: https://bugs.launchpad.net/ubuntu/+source/debmirror/+bug/136634

Το σφάλμα μπορεί να επιλυθεί εύκολα:
$ sudo gedit /usr/bin/debmirror
αντικαταστήστε τη γραμμή τοπική $/="\n\n"; σε τοπικό $/="\n"; και αποθηκεύστε το αρχείο. Τώρα η ενημέρωση του αποθετηρίου θα πραγματοποιηθεί χωρίς περιστατικά.

5. Μετά τη λήψη του σεναρίου (αυτό μπορεί να διαρκέσει πολύ), μπορείτε να το χρησιμοποιήσετε προσθέτοντας τη γραμμή deb στις πηγές της εφαρμογής. (Σύστημα -> Διαχείριση -> Πηγές εφαρμογής)

Η γραμμή deb θα πρέπει να δείχνει στον φάκελο αποθετηρίου και θα πρέπει να μοιάζει κάπως έτσι:
deb file:///home/aidsoid/Repositories/ru.archive.ubuntu.com/ σκληραγωγημένο κύριο περιορισμένο σύμπαν πολυσύμπαν

Εάν είστε διαχειριστής συστήματος, τότε πρέπει να εγκαθιστάτε συχνά νέο λογισμικό, ενημερώσεις ασφαλείας και άλλες ενημερώσεις κώδικα στα συστήματά σας. Εάν υπήρχε μόνο ένας υπολογιστής, αυτό δεν θα δημιουργούσε προβλήματα, αλλά συνήθως υπάρχουν αρκετοί υπολογιστές στο δίκτυο και όλοι χρειάζονται ενημερώσεις. Αυτό μπορεί να μειώσει τη διεκπεραίωση του δικτύου. Σε κάθε σύστημα, οι εφαρμογές θα ληφθούν και θα εγκατασταθούν απευθείας από τα αποθετήρια του Ubuntu.

Αλλά υπάρχει μια διέξοδος, μπορείτε να αποθηκεύσετε όλες τις εφαρμογές στον διακομιστή μέσα τοπικό δίκτυοκαι, στη συνέχεια, διανείμετε τα σε άλλους υπολογιστές σε αυτό το δίκτυο όταν χρειάζεται. Τοπικό αποθετήριο Ubuntu - πολύ γρήγορο και αποτελεσματική μέθοδοςανάπτυξη εφαρμογών, αφού θα ληφθούν άμεσα όλες οι απαραίτητες εφαρμογές από τοπικός διακομιστήςσε μεγάλη ταχύτητα. Έτσι, μπορείτε να μειώσετε την κίνηση στο Διαδίκτυο και τελικά να μειώσετε το ετήσιο κόστος σας στο Διαδίκτυο.

Σε αυτό το σεμινάριο, θα σας πω πώς να ρυθμίσετε ένα τοπικό αποθετήριο Ubuntu 16.04 με δύο τρόπους.

Σε αυτή τη μέθοδο θα κατεβάσουμε όλα τα πακέτα από το δημόσιο αποθετήριο στο HDD Διακομιστές Ubuntu. Πρώτα πρέπει να εγκαταστήσετε τον διακομιστή ιστού Apache. Απαιτείται η διανομή πακέτων μέσω του τοπικού δικτύου:

sudo apt-get install apache2

Τώρα εγκαταστήστε το apt-mirror:

sudo apt-get install apt-mirror

Δημιουργήστε έναν κατάλογο όπου θα ληφθούν όλα τα πακέτα:

sudo mkdir /myrepo

Τώρα ανοίξτε το αρχείο /etc/apt/mirror.list και προσθέστε την ακόλουθη γραμμή:

sudo vi /etc/apt/mirror.list

############# config ###################
#
# set base_path /var/spool/apt-mirror

ορίστε base_path /myrepo

Εδώ /myrepo είναι η διεύθυνση του φακέλου που δημιουργήθηκε πρόσφατα. Επίσης σε αυτό αρχείο ρυθμίσεωνμπορείτε να καθορίσετε τα αποθετήρια που θέλετε να χρησιμοποιήσετε, θα χρησιμοποιήσουμε τα τυπικά, αλλά μπορείτε να προσθέσετε PPA. Εάν θέλετε να χρησιμοποιήσετε και τις δύο αρχιτεκτονικές x64 και x32, τα αποθετήρια για αυτές πρέπει να καθοριστούν στο αρχείο ξεχωριστά.

Για παράδειγμα, για το x32 η γραμμή θα ξεκινά με deb-i386 και για το x64: deb-amd64. Όταν ολοκληρώσετε τη ρύθμιση, ξεκινήστε τη λήψη των πακέτων με την εντολή:

Το τερματικό θα βγάζει κάτι σαν:

Λήψη 162 αρχείων ευρετηρίου με χρήση 20 νημάτων...
Ώρα έναρξης: Τετ 5 Αυγούστου 16:09:16 2015
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

Αυτήν τη στιγμή όλα τα πακέτα από το δημόσιο αποθετήριο του Ubuntu κατεβαίνουν και αποθηκεύονται σε τοπικό φάκελο. Στην περίπτωσή μας, στο /myrepo. Ανάλογα με την ταχύτητά σας στο Διαδίκτυο, αυτό μπορεί να διαρκέσει αρκετές ώρες. Μπορείτε να ακυρώσετε τη λήψη ανά πάσα στιγμή, όταν τη συνεχίσετε, θα συνεχιστεί από εκεί που σταματήσατε.

Αντί να εκτελείτε μη αυτόματα αυτήν την εντολή κάθε μέρα για να ενημερώνετε το αποθετήριο, μπορείτε να προγραμματίσετε μια εργασία Cron. Για να το κάνετε αυτό, αφαιρέστε το σχόλιο της ακόλουθης γραμμής στο αρχείο /etc/cron.d/apt-mirror:

sudo vi /etc/cron.d/apt-mirror

# Τακτικές εργασίες cron για το πακέτο apt-mirror
#
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

Σε αυτό το παράδειγμα, το Cron θα εκτελεί ενημερώσεις πακέτων στις τέσσερις το πρωί κάθε μέρα.

Αφού ολοκληρωθεί η λήψη, ελέγξτε αν υπάρχουν πακέτα στον κατάλογο /myrepo

Τώρα πρέπει να κάνουμε τα πακέτα διαθέσιμα μέσω του δικτύου. Για να γίνει αυτό, ας δημιουργήσουμε έναν συμβολικό σύνδεσμο:

sudo ln -s /myrepo/mirror/us.archive.ubuntu.com/ubuntu/ ubuntu

Διαμόρφωση πελάτη

Η εγκατάσταση σε υπολογιστή-πελάτη δεν θα προκαλέσει δυσκολίες. Απλώς ανοίξτε το αρχείο /etc/apt/sources.list και προσθέστε το τοπικό σας αποθετήριο με τον ίδιο τρόπο που προσθέσατε το απομακρυσμένο, απλώς χρησιμοποιήστε τη διεύθυνση IP του μηχανήματός σας:

sudo vi /etc/apt/sources.list

[...]
deb http://192.168.1.102/ubuntu αξιόπιστο σύμπαν
deb http://192.168.1.102/ubuntu αξιόπιστη κύρια περιορισμένη
deb http://192.168.1.102/ubuntu trusty-updates κύρια περιορισμένη
[...]

Αυτό είναι, εδώ 192.168.1.102 - διεύθυνση του διακομιστή με το αποθετήριο. Τώρα ας ενημερώσουμε τις λίστες πακέτων:

sudo apt-get ενημέρωση

Για να εγκαταστήσετε το πρόγραμμα, απλώς εκτελέστε την τυπική εντολή:

sudo apt-get install package-name

Η εγκατάσταση του apt-mirror ubuntu 16.04 ολοκληρώθηκε. Τώρα οι πελάτες δεν χρειάζονται σύνδεση στο διαδίκτυο για τη λήψη πακέτων. Θα λάβουν όλα τα πακέτα και τις ενημερώσεις από το τοπικό αποθετήριο του Ubuntu.

Μέθοδος 2: APT-Cacher

Υπάρχουν περισσότεροι από ένας τρόποι για να δημιουργήσετε ένα τοπικό αποθετήριο ubuntu. Το Apt-cacher είναι ελαφρώς διαφορετικό από το apt-mirror. Δεν κατεβάζει όλα τα πακέτα από το αποθετήριο, αλλά αποθηκεύει και καθιστά διαθέσιμα σε όλους αυτά που έχουν ζητηθεί μία φορά.

Πρώτα εγκαταστήστε τον διακομιστή Apache:

sudo apt-get install apache2

Στη συνέχεια, apt-cahcer:

sudo apt-get install apt-cacher

Επιλέξτε μέθοδο εκκίνησης - δαίμονας και κάντε κλικ στο ok:

Τώρα πρέπει να επεξεργαστείτε το /etc/default/apt-cacher, ορίζοντας την παράμετρο autostart σε 1.

sudo vi /etc/default/apt-cacher

αρχείο ρύθμισης παραμέτρων εκκίνησης apt-cacher daemon

# Ρυθμίστε σε 1 για να εκτελέσετε το apt-cacher ως αυτόνομο δαίμονα, ορίστε στο 0 εάν πρόκειται να πάτε
# για εκτέλεση του apt-cacher από το /etc/inetd ή σε λειτουργία CGI (καταργήθηκε). Εναλλακτικά
# Η επίκληση του "dpkg-reconfigure apt-cacher" θα πρέπει να κάνει τη δουλειά για εσάς.
#
AUTOSTART=1

# επιπλέον ρυθμίσεις για να παρακάμψετε αυτές στο apt-cacher.conf
# EXTRAOPT=" daemon_port=3142 limit=30 "

Μπορείτε επίσης να διαμορφώσετε από ποιες IP μπορείτε να έχετε πρόσβαση στην προσωρινή μνήμη. Για να το κάνετε αυτό, ανοίξτε το αρχείο /etc/apt-cacher/apt-cacher.conf και επεξεργαστείτε την αντίστοιχη γραμμή: Για παράδειγμα, ας επιτρέψουμε συνδέσεις μόνο σε υπολογιστές με IP από 192.168.1.20 έως 192.168.1.30:

sudo vi /etc/apt-cacher/apt-cacher.conf

[...]
## Καταργήστε το σχόλιο και ορίστε το εύρος IP ##
επιτρεπόμενοι_οικοδεσπότες = 192.168.1.20 - 192.168.1.30
#denied_hosts =
[...]

Αφού ολοκληρώσετε τις ρυθμίσεις, κάντε επανεκκίνηση του apache:

sudo systemctl επανεκκίνηση του apache2

επανεκκίνηση της υπηρεσίας sudo apache2

Διαμόρφωση από την πλευρά του πελάτη

Δημιουργήστε ένα αρχείο sudo nano /etc/apt/apt.conf.d/01proxy και προσθέστε την ακόλουθη γραμμή σε αυτό:

sudo nano /etc/apt/apt.conf.d/01proxy

Acquire::http::Proxy "http://192.168.1.102:3142";

Εδώ 192.168.1.102 είναι η διεύθυνση του τοπικού μας αποθετηρίου. Το μόνο που μένει είναι να ενημερώσετε τις λίστες πακέτων:

sudo apt-get ενημέρωση

Εδώ δεν προσθέτουμε ένα τοπικό αποθετήριο Ubuntu, αλλά απλώς χρησιμοποιούμε έναν διακομιστή μεσολάβησης για τη λήψη πακέτων.

συμπεράσματα

Αυτό είναι όλο. Αυτή η τεχνολογία θα είναι πολύ χρήσιμη διαχειριστές συστήματος, και απλούς χρήστεςπου έχουν αδύναμο διαδίκτυο. Εάν έχετε οποιεσδήποτε ερωτήσεις, ρωτήστε στα σχόλια!

Αντί να χρησιμοποιήσετε το dpkg -i package_name.deb για εγκατάσταση, μπορείτε να δημιουργήσετε ένα τοπικό αποθετήριο για πακέτα που μεταφέρονται σε μονάδα flash ή άλλα μέσα και, στη συνέχεια, να χρησιμοποιήσετε το synaptic/kynaptic (ή το apt-get install package_name).

1. Είναι καλύτερα να εκτελείτε όλες τις ενέργειες ως root

sudo su

2.Τώρα εγκαταστήστε το πακέτο dpkg-dev. Θα περιέχει το βοηθητικό πρόγραμμα dpkg-scanpackages, το οποίο είναι αυτό που χρειαζόμαστε.

apt-get εγκατάσταση dpkg-dev

3. Τοποθετήστε όλα τα πακέτα .deb σε έναν κατάλογο, για παράδειγμα, /myrepo (όχι απευθείας σε αυτόν τον κατάλογο, αλλά σε υποκαταλόγους που βρίσκονται σε αυτόν τον κατάλογο)

4. Εκτελέστε

cd /myrepo dpkg-scanpackages . /dev/null | gzip -9c > Πακέτα.gz

5. Τώρα πρέπει να προσθέσετε ένα νέο αποθετήριο στο /etc/apt/sources.list. Εισαγάγετε μια γραμμή στο /etc/apt/sources.list (είναι καλύτερα να την εισαγάγετε πιο κοντά στην αρχή, επειδή το apt-get (synaptic/kynaptic) δίνει μεγαλύτερη προτεραιότητα στην πηγή που βρίσκεται νωρίτερα από τις άλλες)

αρχείο deb:/myrepo ./

6. Ενημερώστε τη λίστα των αποθετηρίων

apt-get ενημέρωση

Εάν αλλάξουν τα περιεχόμενα του καταλόγου πακέτου, επαναλάβετε τα βήματα 1.4.