Για να μπορούμε να κατεβάσουμε πακέτα σε ένα μόνο μηχάνημα και να τα χρησιμοποιήσουμε σε όλα τα μηχανήματα ενός τοπικού δικτύου θα πρέπει να εγκαταστήσουμε έναν Διαμεσολαβητή Πακέτων για το apt. Αναλυτικές οδηγίες υπάρχουν στ ην διύθυνση http://www.debianuniverse.com/readonline/chapter/19
Μετά από τις παρακάτω ενέργειες εγκατάστασης θα μπορείτε να : Εκτελείτε
apt-get update
από οποιοδήποτε μηχάνημα και η τελευταίες λίστες των πακέτων θα είναι διαθέσιμες σε όλα τα άλλα μηχανήματα ούτως ώστε η επόμενες εκτελέσεις apt-get update από αυτά να λάβουν τις αποθηκευμένες λίστες από τον server και να όχι πάλι μέσω Internet!
Εντολή
aptitude install packagename
από οποιοδήποτε μηχάνημα να πάρει το πακέτο που θα τοποθετηθεί στον server ούτως ώστε επόμενες εντολές εγκατάστασης ίων πακέτων να πάρουν το πακέτο από τον server και όχι πάλι από το Internet!
Δείτε παρακάτω πως συμβαίνουν όλα αυτά!
Αρχικά
aptitude install apt-cacher
Θα πρέπει να τρέχει οπωσδήποτε να τρέχει ο εξυπηρετητής ιστοσελίδων apache
Πιθανόν τα πιο σημαντικά σημεία είναι να σιγουρευτούμε ότι ο εξυπηρετητής μας έχει μια σταθερή IP διεύθυνση για να μπορούν οι υπόλοιποι υπολογιστές στο δίκτυο να τον βρουν καθώς και αρκετό χώρο μιας και θα αποθηκεύονται συνεχώς πακέτα από τις εντολές ανάκτησης όλων των μηχανημάτων.
Επανεκκινούμε το Apache
/etc/init.d/apache2 restart
Ελέγξτε σωστή εγκατάσταση δοκιμάζοντας να ανοίξετε την ιστοσελίδα http://localhost/apt-cacher
Αλλάξτε τις ρυθμίσεις στο αρχείο /etc/apt-cacher/apt-cacher.conf
Βάλτε σχόλια μπροστά από την παρακάτω γραμμή για να μην καθαρίζεται ο χώρος αποθήκευσης κάθε μέρα
#clean_cache=1
Εάν δεν χρησιμοποιείται proxy για http συνδέσεις βάλτε σχόλια στην παρακάτω γραμμή
#http_proxy=proxy.example.com:8080
Αλλάξτε τις παρακάτω γραμμές για να επιτρέψετε μόνο σε συγκεκριμένα μηχανήματα να χρησιμοποιούν τον εξυπηρετητή.
allowed_hosts=192.168.1.0-192.168.1.255 expire_hours=120 # or more. Maybe this will avoid too much checking on the internet
Αλλάξτε το αρχείο /etc/default/apt-cacher για να εκκινείται ο εξυπηρετητής apt-cacher κατά την εκκίνηση του συστήματος
AUTOSTART=1
Στον φάκελο /var/cache/apt-cacher/packages υπάρχουν οι λίστες των πακέτων που έχουν ζητηθεί από τα μηχανήματα - πελάτες καθώς και τα πακέτα deb. Εάν λοιπόν έχετε ήδη πακέτα στο φάκελο /var/cache/apt/archives μπορείτε να τα μεταφέρετε στο φάκελο /var/cache/apt-cacher/packages για να επιταχύνεται αρχικώς την διαδικασία
cp /var/cache/apt/archives/*.deb /var/cache/apt-cacher/packages/
Εάν ο εξυπηρετητής συνεχίζει να κατεβάζει παρά την διακοπή από τον πελάτη διακόψτε την σύνδεση στο Internet και επανεκκινήστε τον εξυπηρετητή.
/etc/init.d/networking stop /etc/init.d/apt-cacher stop /etc/init.d/networking start /etc/init.d/apt-cacher start
Ο εξυπηρετητής θα πρέπει να ολοκληρώνει ένα
apt-get update
χωρίς προβλήματα. Προσπαθήστε να φτίαξετε ένα αρχείο sources.list χωρίς λάθη. Προσθέστε μία μία τις καταχωρίσεις σε αυτό και δοκιμάστε την επιτυχή εκτέλεση της εντολής.
Εάν προκύψουν λάθη από μία πηγή μπορεί να έχετε προβλήματα γι' αυτό διαγράψτε τα αντίστοιχα αρχεία στους φάκελους /var/cache/apt-cacher/packages, /var/cache/apt-cacher/headers, /var/cache/apt-cacher/private πιθανόν και τις καταχωρήσεις από το αρχείο sources.list και δοκιμάστε ξανά μέχρι να πετύχει η εκτέλεση της εντολής.
Μην αφήσετε ανολοκλήρωτα αρχεία από ανεπιτυχείς λήψεις! Οι πελάτες δενπαρουσιάζουν ιδιαίτερα προβλήματα. Εάν ο εξυπηρετητής παρουσιάσει δοκιμάστε να χρησιμοποιεί ο ίδιος απευθείας τις πηγές από το Internet αφού μπορεί να δημιουργείται κάποιο πρόβλημα φαύλου κύκλου.
Οι παρακάτω επιλογές υπάρχουν από τις οποίες προτείνετε η πρώτη
Για να γίνει αυτό προσθέστε τις γραμμές.
Dir::State::Lists "/var/cache/apt-cacher/headers"; Dir::Cache::archives "/var/cache/apt-cacher/packages";
επίσης
mkdir /var/cache/apt-cacher/packages/partial mkdir /var/cache/apt-cacher/packages/partial
Για λόγους δοκιμών και για εύκολη ρύθμιση των πελατών φτιάξτε ένα αρχείο /etc/apt/sources.list.default με τις βασικές απευθείας πηγές από το Internet για τον εξυπηρετητή και ένα /etc/apt/sources.list.client με τις πηγές μέσω Διμεσολαβητή για τους πελάτες. Να θυμάστε να συγχρονίζετε τις αλλαγές σε αυτά.
Χρησιμοποιήστε το αρχείο που θέλετε με μια αντιγραφή για παράδειγμα ως εξής :
cp /etc/apt/sources.list.default /etc/apt/sources.list
Δεν χρειάζεται να εγκαταστήσετε τίποτα στους πελάτες. Αρκεί να αλλαχθεί το /etc/apt/sources.list ώστε να στέλνονται οι αιτήσεις πακέτων στον διαμεσολαβητή apt. Μια τυπική γραμμή του μπορεί να είναι η εξής
deb http://ftp.au.debian.org/debian unstable main contrib non-free
Θα πρέπει να υπάρχει η διεύθυνση του Διαμεσολαβητή apt πριν από αυτή για παράδειγμα ως εξής :
deb http://cache.example.com/apt-cacher/ftp.au.debian.org/debian unstable main contrib non-free
Ποτέ όμως μην αλλάζετε τις υπάρχουσες τιμές, φτιάξτε ένα αρχείο sources.list.client από τον server και αντιγράψτε το στους πελάτες. Στην συνέχεια εκτελέστε
apt-get update
Για να ενημερώση το μηχάνημά σας τις λίστα των πακέτων του. Όλες οι αιτήσεις πακέτων από εδώ και στο εξής θα προέρχονται από τον διαμεσολαβητή.
Ένας εύκολος τρόπος δημιουργίας ενός τέτοιου αρχείου είναι
Εύρεση: | http:// |
---|---|
Αντικατάσταση με: | http://youraptserver.local/apt-cacher/ |
Δεν μπορούν να χρησιμοποιηθούν ftp πηγές, μικρό πρόβλημα όμως καθώς σπάνιο να μην υπάρχουν επίσης και http πηγές για τα ίδια πακέτα.
Τα αρχεία αντιγράφονται και στον εξυπηρετητή και στον πελάτη άρα ο πελάτης μπορεί άνετα να διαγράφει συχνά τα αρχεία του για να κερδίζει σε χώρο.
Μερικές φορές ο εξυπηρετητής, αφού του γίνει αίτηση από πελάτη, πρώτα φέρνει όλο το αρχείο και στην συνέχεια το δίνει στον πελάτη. Αυτό είναι φυσιολογικό και ο πελάτης θα πρέπει να περιμένει.
Παρακάτω είναι ένα κομμάτι από το αρχείο sources.list του πελάτη
#ntua greek mirror deb http://athlon/apt-cacher/ftp.ntua.gr/pub/linux/debian/ testing main deb-src http://athlon/apt-cacher/ftp.ntua.gr/pub/linux/debian/ testing main
Μέσω ftp ή samba πάρε ένα τέτοιο αρχείο και αντέγραψέ το πάνω στο υπάρχον source.list αφού κρατήσεις πρώτα ένα αντίγραφο ασφαλείας sources.list.default.
cp /etc/apt/sources.list /etc/apt/sources.list.default cp /etc/apt/sources.list.client /etc/apt/sources.list