Εγκατάσταση optimized πακέτων στο Arch Linux

Η εγκατάσταση πακέτων από τον πηγαίο κώδικα, πέραν της πλάκας και του απόλυτου «χάσιμο» χρόνου, παράγει optimized πακέτα για εγκατάσταση τα οποία είναι κομμένα και ραμμένα για το hardware του υπολογιστή μας.

Παρότι, πριν λίγα χρόνια η «μεταγλώττιση» (compiling) λογισμικού από τον πηγαίο κώδικά του είχε νόημα στην δημιουργία βελτιστοποιημένων (optimized) για την αρχιτεκτονική του υπολογιστή μας εκτελέσιμων (binary) αρχείων, πλέον εξορισμού θα το βρείτε σε ελάχιστες διανομές.

Εκείνη την εποχή είχε σημασία να παράγεις optimized εκτελέσιμα για να έχεις χαμηλότερη κατανάλωση μνήμης RAM (μιας και 512 ΜΒ ήταν πολυτέλεια) αλλά και χαμηλότερη κατανάλωση πόρων του συστήματος. Πλέον όμως οι πλειοψηφία των υπολογιστών διαθέτει 64bit επεξεργαστή και μπόλικη RAM. Ταυτόχρονα, τα αποθετήρια των διανομών παρότι έχουν «generic» εκτελέσιμα, οι compilers που χρησιμοποιούνται είναι αρκετά εξελιγμένοι και παράγουν υψηλού βαθμού βελτιστοποιημένα πακέτα.

Έλα μου ντε που όμως, καμιά φορά σε τρώει ο κ…ς και θες να ξεζουμίσεις και το ελάχιστο δυνατό πλεονέκτημα στην εγκατάσταση optimized πακέτων.

Όπως λοιπόν είχαμε αναλύσει, σε παλιότερο άρθρο, την δύναμη της μεταγλώττισης πηγαίου κώδικα (τα θετικά και τα αρνητικά τη υπόθεσης) έτσι εδώ θα δούμε πως μπορούμε να το εκμεταλλευτούμε στο Arch

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

Ρύθμιση του Arch για δημιουργία optimized πακέτων

Για να γίνει η μεταγλώττιση optimized πακέτων στο Arch, θα χρειαστεί να κάνουμε μια ρύθμιση στο makepkg.conf. Ανοίξτε το ως root και στις εγγραφές CFLAGS και CXXFLAGS κάντε τις παρακάτω αλλαγές:

sudo nano /etc/makepkg.conf

και έπειτα βρείτε τις εγγραφές που είπαμε και αλλάξτε όπως παρακάτω:

CFLAGS="-march=native -O2 -pipe -fstack-protector-strong"
CXXFLAGS="${CFLAGS}"

Ενώ παλιότερα έπρεπε να θέτουμε οδηγίες με βάση την έκδοση/μοντέλο επεξεργαστή μας, πλέον δεν χρειάζεται, μιας και ο GCC compliler είναι αρκετά «έξυπνος» για να διαβάσει τις οδηγίες του επεξεργαστή μας. Οπότε και εδώ και λίγα χρόνια βάζουμε -march=native.

Για αυτούς που γνωρίζουν τα ενδότερα του compiling, μπορούν να διαβάσουν την «Βίβλο» του Gentoo στο θέμα αυτό. Για την πλειοψηφία από εμάς αρκούν οι παραπάνω ρυθμίσεις.

Τέλος, επειδή οι περισσότεροι υπολογιστές έρχονται με πάνω από 2 πυρήνες επεξεργαστή, επεξεργαστείτε την εγγραφή COMPRESSXZ όπως παρακάτω για να επιταχύνετε τις εργασίες συμπίεσης για την δημιουργία των πακέτων μετά την μεταγλώττιση:

COMPRESSXZ=(xz -c -z - --threads=0)

Τέλος, απλά αποθηκεύστε το αρχείο και κλείστε το.

Εγκατάσταση optimized πακέτων

Από εδώ και πέρα τα πράγματα είναι απλά (περίπου). Για παράδειγμα αν θέλετε να γίνει optimized κάποιο πακέτο απο το AUR π.χ. το Htop δίνετε:

yaourt -Sb htop

Θα σας κάνει κάποιες ερωτήσεις και αφού δώσετε με Υ, Ν και λοιπά, θα κάνει λήψη, μεταγλώττιση του κώδικα

egkatastasi-optimised-paketon-arch-1

και τέλος θα σας ρωτήσει αν θέλετε να το εγκαταστήσετε (προφανώς πατάτε Υ)

egkatastasi-optimised-paketon-arch-2

Επίλογος

Ο παρατηρητικός αναγνώστης, θα πρόσεξε ότι «τα πράγματα είναι απλά (περίπου)». Μην εκπλαγείτε λοιπόν αν τελικά η μεταγλώττιση του κώδικα αποτύχει αν επιλέξετε να εγκαταστήσετε μια optimized έκδοση π.χ. του firefox βελτιστοποιημένη για τον επεξεργαστή σας. Εκεί θα χρειαστεί να μελετήσετε γιατί πήγε στραβά και να το διορθώσετε με το «χεράκι».

Τέλος, ανάλογα με το μέγεθος του λογισμικού και των dependencies που χρειάζεται, η διαδικασία της μεταγλώττισης μπορεί να διαρκέσει αρκετές ώρες.

Happy Compilling λοιπών και καλό optimization των πακέτων.

Πηγή: Creating optimized packages (Archlinux Wiki)

2 thoughts on “Εγκατάσταση optimized πακέτων στο Arch Linux

  1. Μάστορα…επειδή να ξε’ς τρώγομαι με κάτι τέτοια και μου έβαλες ζούδια τώρα…κάθισα και έψαξα λοιπόν, για εγκατάσταση optimized πακέτων στο ubuntu…
    Να δω ρε παιδί μου, γίνεται κάτι τέτοιο;…
    Μάντεψε τι βρήκα, και ποιος το ‘γραψε!!!
    http://askubuntu.com/questions/29856/how-to-build-all-my-installed-package-from-sources

    Χα χα χα χα… Οπότε πιστεύω είναι το ίδιο απλή διαδικασία, να γίνει κάτι τέτοιο (και) στο ubuntu?

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

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s