Σάββατο, 26 Μαρτίου 2011

Debian administration: apt-cacher-ng

Αν έχετε περισσότερα από ένα μηχανήματα με debian/ubuntu στο σπίτι ή στο γραφείο, ή αν ασχολείστε ενεργά με την ανάπτυξη / συντήρηση / δοκιμή εφαρμογών και επομένως χρειάζεστε να μπορείτε να φτιάχνετε γρήγορα chroots ή εικονικές μηχανές με συγκεκριμμένα debian πακέτα και εκδόσεις, θα έχετε παρατηρήσει ότι ακόμα και με μια γρήγορη σύνδεση, το "κατέβασμα" των πακέτων κάθε φορά είναι η κύρια αιτία καθυστέρησης (bottleneck).

Η λύση στο πρόβλημα, είναι ένας τοπικός caching proxy για debian πακέτα. Μόλις δηλαδή τα πακέτα κατέβουν μία φορά, παραμένουν στο δίσκο σας και τις επόμενες φορές που θα ζητηθούν δε θα χρειαστεί να τα πάρετε από το internet.

Μέχρι και πριν από 1-2 χρόνια, οι λύσεις που κυκλοφορούσαν στα επίσημα αποθετήρια (apt-cacher γραμμένο σε python, apt-cacher-ng σε C, approx σε Ocaml) παρουσίαζαν διάφορα προβλήματα ειδικά κάτω από συνθήκες μεγάλου traffic ή αναξιόπιστης σύνδεσης με το internet.

Αυτά όμως πλέον ανήκουν στο παρελθόν και ο apt-cacher-ng προτείνεται πια ανεπιφύλακτα σε όλους όσους έχουν αρκετό χώρο στο δίσκο και θέλουν να μειώσουν σημαντικά το χρόνο αναμονής τους. Ενδεικτικά, ο χρόνος για το "χτίσιμο" ενός ubuntu maverick virtual machine για Qemu/KVM μέσω του ubuntu-vm-builder πέφτει από τα ~30 στα ~3 λεπτά σε ένα σχετικά γρήγορο σύστημα με "ζεστή" cache!!

Η εγκατάσταση του apt-cacher-ng είναι επίσης πανεύκολη (2 εντολές):

sudo apt-get install apt-cacher-ng
echo 'Acquire::http { Proxy "http://127.0.0.1:3142" ; };' |
sudo tee -a /etc/apt/apt.conf.d/98aptcacher

Αν έχετε εικονικές μηχανές, chroot, άλλα μηχανήματα στο δίκτυο κλπ το μόνο που χρειάζεται να κάνετε σε αυτά είναι

echo 'Acquire::http { Proxy "http://192.168.1.1:3142" ; }; |
sudo tee -a /etc/apt/apt.conf.d/98aptcacher

Όπου αντί για 192.168.1.1 βάζετε το κατάλληλο IP (ή hostname αν έχετε κάνει τις κατάλληλες ρυθμίσεις) του μηχανήματος που "τρέχει" το apt-cacher-ng και φροντίζετε το port 3142 να είναι ανοιχτό από το firewall σε αυτό το μηχάνημα.

Δυστυχώς δεν έχω βρει ακόμα κάτι αντίστοιχα κομψό για Fedora (όχι, το squid
δεν το θεωρώ κομψή λύση). Αν γνωρίζετε κάποιο τέτοιο proxy για .rpm
θα ενδιαφερόμουν πολύ να το μάθω :)

Παντελής

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου