Πώς να εγκαταστήσετε το GCC στο CentOS 6

Το CentOS ακολουθεί την ανάπτυξη του Red Hat Enterprise Linux (RHEL). Η RHEL προσπαθεί να είναι μια σταθερή πλατφόρμα διακομιστή, πράγμα που σημαίνει ότι δεν βιάζεται να συμπεριλάβει τις πιο πρόσφατες εκδόσεις κάθε πακέτου λογισμικού.

Από τη σύνταξη αυτού του άρθρου, το CentOS 6 διανέμει επίσημα το GCC v4.4.7. Ωστόσο, το GCC v5.1 κυκλοφόρησε πρόσφατα. Πριν από αυτό, η έκδοση 4.9.2 ήταν διαθέσιμη.

Η επίσημη πρόταση για την ανάγκη μιας πιο πρόσφατης έκδοσης του GCC είναι ότι θα πρέπει να εξετάσετε μια διαφορετική διανομή UNIX που θα επικεντρώνεται περισσότερο στην υποστήριξη των πιο πρόσφατων εκδόσεων πακέτων λογισμικού.

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

Αυτό το άρθρο περιγράφει πώς να εγκαταστήσετε την επίσημα υποστηριζόμενη έκδοση του GCC CentOS 6 και πώς να εγκαταστήσετε μια νεότερη έκδοση επίσης. Αυτό το άρθρο προϋποθέτει ότι έχετε ένα πρόσφατα εγκατεστημένο CentOS 6 VPS, αν και σίγουρα μπορείτε να ακολουθήσετε τις οδηγίες σε ένα υπάρχον VPS.

Εγκαταστήστε μια επίσημα υποστηριζόμενη (παλαιότερη) έκδοση του GCC

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

  1. Συνδεθείτε στο VPS σας, είτε κάνοντας κλικ στην "Προβολή κονσόλας" στον πίνακα ελέγχου Vultr, είτε μέσω SSH, εάν το έχετε ρυθμίσει.

    (α) Είσοδος ως root.

    (β) Δημιουργήστε τον δικό σας λογαριασμό χρήστη και δώστε του έναν κωδικό πρόσβασης.

    adduser <username>
    passwd <username>
    

    (γ) Επιτρέψτε στον λογαριασμό χρήστη σας να εκτελεί εντολές με δικαιώματα root, μέσω της εντολής sudo.

    visudo
        After the line "root   ALL=(ALL)   ALL"
        Add the line "<username>   ALL=(ALL)   ALL"
        --- If you aren't familiar with vi, go to the line "root   ALL=(ALL)   ALL".
        ---   Hit "o" to create a new line after that line and enter insert mode.
        ---   Type "<username>   ALL=(ALL)   ALL".
        ---   Hit ESC.
        ---   Type "ZZ" to save.
    

    (δ) Αποσυνδεθείτε ως root και συνδεθείτε στον λογαριασμό χρήστη σας.

  2. Εγκαταστήστε τα πακέτα CentOS 6 GCC. Αυτό θα σας ρωτήσει εάν θέλετε να εγκαταστήσετε περίπου 11 πακέτα, λόγω εξαρτήσεων.

    sudo yum install gcc gcc-c++
    
  3. Ελέγξτε τις εγκατεστημένες εκδόσεις και εμφανίστε τις τοποθεσίες τους.

    gcc --version
        May say: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
    g++ --version
        May say: g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
    which gcc
        /usr/bin/gcc
    which g++
        /usr/bin/g++
    

Εγκαταστήστε μια νεότερη έκδοση του GCC από την πηγή

Εάν θέλετε μόνο την επίσημη υποστηριζόμενη έκδοση του GCC CentOS, είστε έτοιμοι. Εάν χρειάζεστε μια πιο πρόσφατη έκδοση του GCC, συνεχίστε.

  1. ΣΠΟΥΔΑΙΟΣ! Αρχικά, ολοκληρώστε τα παραπάνω βήματα για να εγκαταστήσετε μια παλαιότερη δυαδική έκδοση του GCC.

  2. Εγκαταστήστε επιπλέον απαιτούμενα πακέτα. Αυτό θα σας ρωτήσει εάν θέλετε να εγκαταστήσετε περίπου 41 πακέτα.

    sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
    
  3. Αποφασίστε ποια έκδοση του GCC θέλετε να εγκαταστήσετε. Αυτή η εντολή θα σας δείξει τις "ετικέτες" για κάθε μία από τις διαθέσιμες εκδόσεις.

    svn ls svn://gcc.gnu.org/svn/gcc/tags | grep gcc | grep release
        gcc-2_95-release/
        ...
        gcc-4_9_2_release/
        gcc-5_1_0_release/
    
  4. Λάβετε την πηγή της έκδοσης του GCC που θέλετε. Αυτό θα τρέξει για λίγα λεπτά. Το υπόλοιπο αυτού του άρθρου είναι γραμμένο για gcc-5_1_0_release/και θα πραγματοποιήσει λήψη των πηγών στο ~/sourceInstallations/gcc_5_1_0_release/.

    mkdir ~/sourceInstallations
    cd ~/sourceInstallations
    svn co svn://gcc.gnu.org/svn/gcc/tags/gcc_5_1_0_release/
    
  5. Λάβετε την πηγή πρόσθετων προαπαιτούμενων. Χρησιμοποιώντας την έκδοση 5.1.0, γίνεται λήψη πηγών και τις προσθέτει στην έκδοση GCC για MPFR v2.4.2, GMP 4.3.2 και MPC 0.8.1.

    cd gcc_5_1_0_release/
    ./contrib/download_prerequisites
        --- Important, run this as shown, from the gcc_5_1_0_release directory.
        ---   Do not cd to the contrib directory
    
  6. Εάν το VPS σας έχει μόνο 768 MB μνήμης, θα ξεμείνετε από μνήμη στο επόμενο βήμα. Εάν έχετε 1 GB μνήμης, μπορεί να είστε εντάξει, αλλά δεν είναι κακό να κάνετε αυτό το βήμα. Εάν έχετε 2 GB μνήμης ή περισσότερο, μπορείτε να παραλείψετε αυτό το βήμα. Αυτό το βήμα προσθέτει 500 MB εικονικής μνήμης, χρησιμοποιώντας ένα αρχείο ανταλλαγής.

    SWAP=/tmp/swap
    dd if=/dev/zero of=$SWAP bs=1M count=500
    mkswap $SWAP
    sudo swapon $SWAP
    
  7. Κατασκευάστε το GCC. Αυτό θα λειτουργεί για ώρες. Εάν αυτό ολοκληρωθεί σωστά, η τελευταία γραμμή που θα δείτε θα λέει "επιτυχία". Είναι φυσιολογικό να βλέπετε ορισμένα μηνύματα που δείχνουν σφάλμα να μετακινούνται γρήγορα, εφόσον η κατασκευή ολοκληρώνεται και ηχεί "επιτυχία". Είναι πάντα καλή ιδέα να δημιουργείτε πράγματα σε διαφορετικό κατάλογο από έναν κατάλογο πηγής. Η τεκμηρίωση του GCC δηλώνει ότι δεν πρέπει να χρησιμοποιείτε έναν κατάλογο κατασκευής που είναι υποκατάλογος του καταλόγου προέλευσης.

    cd ..
    mkdir gcc_5_1_0_release_build/
    cd gcc_5_1_0_release_build/
    ../gcc_5_1_0_release/configure && make && sudo make install && echo "success"
    --- If your VPS has multiple cores, you can speed up the build by changing the middle part
    ---   of this line from "&& make &&" to "&& make -j <number of cores> &&".
    --- You can see the number of cores your VPS has by running "nproc"
    
  8. Εάν ρυθμίσετε ένα αρχείο ανταλλαγής στο βήμα 6, καταργήστε το. Χωρίς να κάνετε περισσότερες ρυθμίσεις, μετά από μια επανεκκίνηση, δεν θα χρησιμοποιηθεί ως αρχείο ανταλλαγής και απλώς καταλαμβάνει χώρο στον σκληρό δίσκο στο VPS σας.

    sudo swapoff $SWAP
    rm /tmp/swap
    
  9. Ελέγξτε τις εγκατεστημένες εκδόσεις και δείτε τις τοποθεσίες τους.

    hash -r
        (Makes your login "forget" about the previously seen locations of gcc and g++)
    gcc --version
        May say: gcc (GCC) 5.1.0
    g++ --version
        May say: g++ (GCC) 5.1.0
    which gcc
        /usr/local/bin/gcc
    which g++
        /usr/local/bin/g++
    
  10. Προσθέστε τις νέες βιβλιοθήκες στο ld (το σύνδεσμο GNU).

    echo "/usr/local/lib64" > usrLocalLib64.conf
    sudo mv usrLocalLib64.conf /etc/ld.so.conf.d/
    sudo ldconfig
        --- This may say a file or two "is not an ELF file - it has the wrong magic bytes at the start."
        --- You may ignore this message.  It is silent about the work it successfully completed.
    
  11. Προαιρετικά φτιάξτε ένα πρόγραμμα hello world.

    mkdir ~/code
    cd ~/code
    Create a file main.cpp that says:
        #include <iostream>
        using namespace std;
        int main() {
            cout << "Hello world!" << endl;
            return 0;
        }
    --- One way to create this file is to run "vi main.cpp", hitting "i" to enter insert mode,
    ---   typing the above file, hitting ESC, and hitting "ZZ" to save.
    g++ main.cpp -o main
    ./main
        Hello World!
    
  12. Προαιρετικά ανακτήστε χώρο στον σκληρό δίσκο. Ο ~/sourceInstallationsφάκελος σας θα καταλαμβάνει περίπου 8,0 GB. Είναι πιθανώς συνετό να διατηρήσετε τους φακέλους, καθώς υπάρχουν προαιρετικές επιλογές διαμόρφωσης που μπορεί να χρειαστεί να χρησιμοποιήσετε κάποια στιγμή στο μέλλον και θα ήταν πιο γρήγορο να έχετε ήδη κάνει πολλά. Επίσης, η διαδικασία κατασκευής δημιουργεί αρχεία καταγραφής που μπορείτε αργότερα να ελέγξετε και να εργαστείτε εάν κάτι πάει στραβά. Ωστόσο, μετά την εκτέλεση sudo make installνωρίτερα, το εγκατεστημένο GCC σας δεν εξαρτάται από τίποτα σε αυτόν τον κατάλογο και ο χώρος μπορεί να είναι υψηλότερος, επομένως μπορείτε να κάνετε αυτό το βήμα και να ανακτήσετε τα 8,0 GB περίπου.

    cd ~/
    rm -rf sourceInstallations
    --- Again, if you can spare the space, you may someday be happy to have left it there.
    

Τώρα υποστηρίζεται επίσημα το CentOS σας gccκαι g++εξακολουθεί να είναι /usr/bin/, το CentOS σας υποστηρίζει επίσημα lib 32 bit στο /lib, το CentOS σας υποστηρίζει επίσημα lib 64 bit στο /lib64, και το CentOS που υποστηρίζεται επίσημα περιλαμβάνει αρχεία στο /usr/include.

Τα νεότερα σας gccκαι g++είναι in /usr/local/bin, τα νεότερα lib 32 bit στο /usr/local/lib, τα νεότερα 64 bit lib στο /usr/local/lib64, και τα νεότερα περιλαμβάνουν αρχεία στο /usr/local/include.

Αφήστε ένα σχόλιο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

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

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

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

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

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

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα