Σε αυτόν τον μικρό οδηγό πρόκειται να σας εξηγήσω (και να σας διδάξω) γιατί είναι καλύτερο να συντάξετε ένα πρόγραμμα (π.χ. Firefox, Vlc κ.λπ.) από τον πηγαίο του κώδικα, από το να το κατεβάσετε (από το The Software Center, Yumex, Pacman κ.λπ. ) και εγκαταστήστε.
Πρώτα πηγαίνουμε με τη θεωρία:
Τι είναι το "compile";
Η μεταγλώττιση μετατρέπει τον πηγαίο κώδικα (κωδικός γραμμένος σε μια συγκεκριμένη γλώσσα προγραμματισμού, ας πούμε C, C ++ κ.λπ.) σε ένα εκτελέσιμο πρόγραμμα για τη λειτουργία του χρησιμοποιώντας τον επεξεργαστή για να μετατρέψει τη γλώσσα που χρησιμοποιείται για τη δημιουργία του κώδικα σε δυαδικό και συναρμολογητή. Ονομάζεται επίσης συχνά συσκευασία.
Γιατί είναι καλύτερο να "μεταγλωττίσετε";
Πρώτα πρέπει να γνωρίζετε τα παρακάτω για να καταλάβετε γιατί. Είπε με «ακατέργαστο» τρόπο (απλό, όχι πολύ επαγγελματικό, κ.λπ.), κάθε φυλή (Pentium, Core, Atom, κ.λπ.) και τα είδη της (Intel, AMD, ARM κ.λπ.) του επεξεργαστή έχουν οδηγίες (λογισμικό γραμμένο σε assembler που επεξεργάζεται τον κώδικα) του μοντέλου τους (Core i7, Core i5, Atom x2, Phantom x8, Arm κ.λπ.) και έχουν επίσης γενικές οδηγίες που έχουν όλα τα είδη τους.
Όταν κάνετε λήψη από τα αποθετήρια μέσω του Κέντρου λογισμικού / apt-get / Yumex / Yum / Pacman / κλπ, ένα πρόγραμμα που εγκαθίσταται αυτόματα λέει ότι αυτό προκατασκευασμένο για λειτουργία σε όλους τους πιθανούς επεξεργαστές (Intel και Amd). Δεδομένου ότι είναι ένα προ-μεταγλωττισμένο πρόγραμμα, χάνονται εκείνες οι τυπικές οδηγίες αυτού του συγκεκριμένου μοντέλου επεξεργαστή (σκεφτείτε ότι εάν ένα πρόγραμμα όπως το Firefox ή το Chrome, το οποίο έχει περισσότερες από 7 ή 8 εκατομμύρια γραμμές κώδικα, έπρεπε να θέσει όλες τις συγκεκριμένες οδηγίες για κάθε επεξεργαστή στην αγορά, το ποσό του κώδικα θα ήταν τόσο μεγάλο που το πρόγραμμα δεν θα ήταν πλέον αποτελεσματικό) αφήνοντας τίποτα περισσότερο από τα γενικά της μάρκας δημιουργών του (Intel, Amd, Arm).
Όταν κάνετε λήψη, αποσυμπιέστε και μεταγλωττίσετε τον πηγαίο κώδικα ενός προγράμματος, συντάσσεται με τις συγκεκριμένες οδηγίες του TU επεξεργαστής, (το οποίο δεν σημαίνει ότι δεν θα λειτουργεί σε διαφορετικό μηχάνημα, αλλά θα βελτιστοποιείται ειδικά και καθαρά για τον επεξεργαστή σας), απελευθερώνοντας έτσι και απελευθερώνοντας όλη τη δύναμη που ο επεξεργαστής σας μπορεί να προσφέρει χάρη στις συγκεκριμένες οδηγίες του.
Σε περισσότερες τεχνικές λεπτομέρειες, αυτές οι συγκεκριμένες οδηγίες συνδέονται στενά με αυτό που είναι γνωστό ως το chipset της μητρικής πλακέτας σας, το οποίο είναι ο μεγάλος πονοκέφαλος για όσους από εμάς έχουμε Intel όταν θέλουμε να αναβαθμίσουμε τον επεξεργαστή και τη μητρική πλακέτα.
Θα εκπλαγείτε με τη δύναμη που σας amd άτομο x2 ή εσείς Intel Core Εσωτερικά, 2 Core Duo, i3κλπ από τον παλιό σας υπολογιστή. Τώρα καταλαβαίνετε γιατί υπάρχει πολλή συζήτηση στον κόσμο του Linux σχετικά με τη σύνταξη του περίφημου πυρήνα (καρδιά κάθε λειτουργικού συστήματος); Φανταστείτε εάν μεταγλωττίσετε ένα ολόκληρο σύστημα (γραφικό περιβάλλον (Gnome, Kde, κ.λπ.), Kernel, προγράμματα που χρησιμοποιούνται συνήθως (Firefox, Vlc, Chrome, Wine κ.λπ.) ειδικά για τον υπολογιστή σας) όλα τα επίπεδα ταχύτητας και βελτιστοποίησης που θα έχετε .
Αυτή η αρχή συλλογής για να αποκτήσετε έναν κωδικό βελτιστοποιημένο ειδικά για το μηχάνημά σας είναι αυτή που χρησιμοποιείται από διανομές όπως το Gentoo και τα παράγωγα (για τα οποία δεν πρόκειται να μιλήσω τώρα, χρησιμοποιώ το Fedora minimal με τη συλλογή του Gnome 3, του πυρήνα και άλλων προγραμμάτων) όπου το σύστημα, οι ενημερώσεις και τα προγράμματά σας συντάσσονται πάντα.
Μειονεκτήματα της συλλογής:
Έχω ήδη εξηγήσει όλα τα πλεονεκτήματα, αλλά όπως όλα όσα υπάρχουν στο σύμπαν.
Στην περίπτωση συλλογής είναι:
- Χρόνος που απαιτείται για αυτό (ο Firefox με i7 4790K (χωρίς overclock καθώς είμαι πολύ άσχημος με τάσεις) διαρκεί 3 λεπτά, το Gnome Shell (το μπαρ τίποτα περισσότερο) με το Gnome-Control-Center με πήρε περίπου 2 λεπτά, και οι δύο συντάχθηκαν στις την ίδια ώρα στο Fedora. Αλλά σε ένα μηχάνημα με λιγότερο ισχυρό επεξεργαστή αυτή τη φορά μπορεί να είναι δυσανάλογα μεγάλο).
- Ο επεξεργαστής χρησιμοποιεί το 100% της ισχύος του με όλους τους πυρήνες του στο μέγιστο, οπότε η κατανάλωση και η θερμότητα ανεβάζουν (λάβετε υπόψη αυτό εάν έχετε overclocking ή εάν είναι ιδιαίτερα φορητός υπολογιστής), οπότε είναι βολικό να προετοιμάσετε έναν σύντροφο ή έναν καφέ για την περίσταση.
- Ίσως λείπει μια βιβλιοθήκη (εργαλείο) που χρησιμοποιεί ένα πρόγραμμα, ώστε να μην παρουσιάζεται σφάλμα στη συλλογή. Γενικά, όλες οι διανομές έχουν πακέτα ή σύνολα από αυτά για να το αποφύγουν (είναι γεμάτα με διάφορες βιβλιοθήκες και άλλα πράγματα που επιτρέπουν στον πυρήνα να επικοινωνεί όπως θα έπρεπε με τον επεξεργαστή κατά τη διάρκεια της διαδικασίας)
Πώς μπορώ να μεταγλωττίσω;
Εδώ μιλάω για τη σύνταξη ενός προγράμματος για κανονική χρήση και όχι για έναν πυρήνα.
aptitude install build-essential dh-make devscripts fakeroot debhelper debian-Policy ccache dh-autoreconf autotools-dev build-dep ardor
Βάζω το Debian-Policy, αλλά αν η διανομή σας δεν είναι Debian και σας δίνει ένα σφάλμα ότι δεν υπάρχει τέτοιο πακέτο, απλώς αγνοήστε το. Πρέπει να ξεκαθαρίσω ότι δεν έχω χρησιμοποιήσει αυτά τα συστήματα για μεγάλο χρονικό διάστημα, οπότε αν ένα πακέτο δεν είναι πλέον στα αποθετήρια, μην δημιουργήσετε πρόβλημα.
Για το Fedora:
sudo yum -y εγκατάσταση πυρήνων-κεφαλίδωνπυρήνας-ανάπτυξηsudo yum groupinstall "Εργαλεία ανάπτυξης"sudo yum groupinstall "Βιβλιοθήκες ανάπτυξης"
Εδώ πρέπει να ζητήσω συγνώμη για όσους χρησιμοποιούν το Arch (δεν γνωρίζω καλά το distro) και το OpenSuse, καθώς δεν γνωρίζω αυτές τις διανομές ή τα αντίστοιχα πακέτα για να πραγματοποιήσω μια σωστή συλλογή (και δεν επιβεβαίωσα τι υπάρχει στο δίκτυο, έτσι ώστε για αυτούς τους δύο δεν ξέρω αν λειτουργούν).
Τώρα που έχετε όλες τις απαραίτητες απαιτήσεις, πρέπει να κατεβάσετε μόνο τον πηγαίο κώδικα του προγράμματος που θέλετε να μεταγλωττίσετε, ανάλογα με την επέκταση που αποσυμπιέστε χρησιμοποιώντας το τερματικό (μην ανησυχείτε, θα σας αφήσω τις εντολές) και όταν πηγαίνετε στο φάκελο (πάντα με το τερματικό) κάνετε το ίδιο στη συνέχεια:
Εάν έχετε τη δυνατότητα να διαμορφώσετε τον εαυτό σας για να επιλέξετε τα στοιχεία και άλλα:
./configure
Στη συνέχεια πληκτρολογείτε:
make
Και τέλος να εγκαταστήσετε το πρόγραμμα στο linux σας:
make install
Εντολές για αποσυμπίεση χρησιμοποιώντας το τερματικό (το αρχείο αποσυνδέεται σε φάκελο όπου βρίσκεται το αρχείο):
.Tar αρχεία (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Πακέτο | tar cvf file.tar / file / * Αποσυσκευασία | tar xvf file.tar Προβολή περιεχομένου | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (πίσσα με gzip ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Συσκευασία και φερμουάρ | tar czvf file.tar.gz / file / Αποσυμπιέστε και αποσυμπιέστε | tar xzvf file.tar.gz Προβολή περιεχομένου (δεν έχει εξαχθεί) | tar tzvf file.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Συμπίεση | αρχείο gzip -q (Το αρχείο συμπιέζει και μετονομάζει το αρχείο "file.gz") Αποσυμπίεση | gzip -d file.gz (Το αρχείο το αποσυμπιέζει και το αφήνει ως "αρχείο" Σημείωση: το gzip συμπιέζει μόνο αρχεία, όχι καταλόγους
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Συμπίεση | αρχείο bzip2 | αρχείο bunzip2 (Το αρχείο συμπιέζει και μετονομάζει το αρχείο "file.bz2") Αποσυμπίεση | bzip2 -d file.bz2 | bunzip2 file.bz2 (Το αρχείο το αποσυμπιέζει και το αφήνει ως "αρχείο") Σημείωση: Το bzip2 συμπιέζει μόνο αρχεία, όχι καταλόγους
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (πίσσα με bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Συμπίεση | αρχεία tar -c | bzip2> file.tar.bz2 Αποσυμπίεση | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (πρόσφατες εκδόσεις tar) Προβολή περιεχομένου | bzip2 -dc file.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Συμπίεση | zip file.zip / mayo / archives Unzip | unzip file.zip Προβολή περιεχομένου | αποσυμπιέστε -v file.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Συμπίεση | rar -a file.rar / may / archives Unzip | rar -x file.rar Προβολή περιεχομένου | rar -v file.rar | rar -l file.rar
Και αυτό είναι όλο. Χαιρετίσματα από το Μπουένος Άιρες, Αργεντινή. Καλές γιορτές και νέα χρόνια! :)