So installieren Sie GCC unter CentOS 6

CentOS folgt der Entwicklung von Red Hat Enterprise Linux (RHEL). RHEL ist bestrebt, eine stabile Serverplattform zu sein, was bedeutet, dass es nicht eilig ist, die neuesten Versionen jedes Softwarepakets einzuschließen.

Zum Zeitpunkt des Schreibens dieses Artikels vertreibt CentOS 6 offiziell GCC v4.4.7. GCC v5.1 wurde jedoch kürzlich veröffentlicht. Zuvor war v4.9.2 verfügbar.

Der offizielle Vorschlag, eine neuere Version von GCC zu benötigen, lautet, dass Sie eine andere UNIX-Distribution in Betracht ziehen sollten, die sich mehr auf die Unterstützung der neuesten Versionen von Softwarepaketen konzentriert.

Glücklicherweise können Sie eine neuere Version von GCC unter CentOS installieren, wobei die ältere Version weiterhin installiert bleibt. Dies weicht von der reinen Verwendung der offiziell verteilten Software ab, aber manchmal haben Sie das Gefühl, keine andere Wahl zu haben. Sie können auf einige Komplikationen stoßen; Wenn Sie beispielsweise Kernelmodule von Drittanbietern installieren, müssen diese mit derselben Version von GCC kompiliert werden, die zum Erstellen Ihres Kernels verwendet wurde.

Dieser Artikel beschreibt, wie Sie die offiziell unterstützte CentOS 6-Version von GCC installieren und wie Sie auch eine neuere Version installieren. In diesem Artikel wird davon ausgegangen, dass Sie ein frisch installiertes CentOS 6 VPS haben, obwohl Sie die Anweisungen auf einem vorhandenen VPS auf jeden Fall befolgen können.

Installieren Sie eine offiziell unterstützte (ältere) Version von GCC

Selbst wenn Sie eine neuere Version von GCC aus dem Quellcode installieren möchten, ist GCC selbst in C ++ geschrieben. Daher müssen Sie zuerst einen älteren C ++ - Compiler installieren.

  1. Melden Sie sich bei Ihrem VPS an, indem Sie entweder in der Vultr-Systemsteuerung auf "Konsole anzeigen" klicken oder über SSH, falls Sie dies eingerichtet haben.

    (a) Melden Sie sich als root an.

    (b) Erstellen Sie Ihr eigenes Benutzerkonto und geben Sie ihm ein Passwort.

    adduser <username>
    passwd <username>
    

    (c) Ermöglichen Sie Ihrem Benutzerkonto, Befehle mit Root-Rechten über den Befehl sudo auszuführen.

    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.
    

    (d) Melden Sie sich als root ab und bei Ihrem Benutzerkonto an.

  2. Installieren Sie die CentOS 6 GCC-Pakete. Hier werden Sie gefragt, ob Sie aufgrund von Abhängigkeiten etwa 11 Pakete installieren möchten.

    sudo yum install gcc gcc-c++
    
  3. Überprüfen Sie die installierten Versionen und zeigen Sie deren Speicherorte an.

    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++
    

Installieren Sie eine neuere Version von GCC aus dem Quellcode

Wenn Sie nur die offiziell unterstützte CentOS-Version von GCC möchten, sind Sie fertig. Wenn Sie eine neuere Version von GCC benötigen, fahren Sie fort.

  1. WICHTIG! Führen Sie zunächst die obigen Schritte aus, um eine ältere Binärversion von GCC zu installieren.

  2. Installieren Sie zusätzlich erforderliche Pakete. Hier werden Sie gefragt, ob Sie ungefähr 41 Pakete installieren möchten.

    sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
    
  3. Entscheiden Sie, welche Version von GCC Sie installieren möchten. Dieser Befehl zeigt Ihnen die "Tags" für jede der verfügbaren Versionen.

    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. Holen Sie sich die Quelle der gewünschten Version von GCC. Dies dauert einige Minuten. Der Rest dieses Artikels ist für geschrieben gcc-5_1_0_release/und wird die Quellen in herunterladen ~/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. Holen Sie sich die Quelle für zusätzliche Voraussetzungen. Mit v5.1.0 werden Quellen heruntergeladen und dem GCC-Build für MPFR v2.4.2, GMP 4.3.2 und MPC 0.8.1 hinzugefügt.

    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. Wenn Ihr VPS nur 768 MB Speicher hat, wird Ihnen im nächsten Schritt der Speicher ausgehen. Wenn Sie über 1 GB Speicher verfügen, ist dies möglicherweise in Ordnung, aber es kann nicht schaden, diesen Schritt auszuführen. Wenn Sie über 2 GB oder mehr Speicher verfügen, können Sie diesen Schritt überspringen. In diesem Schritt werden mithilfe einer Auslagerungsdatei 500 MB virtueller Speicher hinzugefügt.

    SWAP=/tmp/swap
    dd if=/dev/zero of=$SWAP bs=1M count=500
    mkswap $SWAP
    sudo swapon $SWAP
    
  7. Erstellen Sie GCC. Dies wird stundenlang laufen. Wenn dies korrekt abgeschlossen ist, wird in der letzten Zeile "Erfolg" angezeigt. Es ist normal, dass einige fehlerhafte Meldungen schnell vorbeirollen, solange der Build abgeschlossen ist und "Erfolg" wiedergibt. Es ist immer eine gute Idee, Dinge in einem anderen Verzeichnis als einem Quellverzeichnis zu erstellen. In der GCC-Dokumentation heißt es, dass Sie kein Build-Verzeichnis verwenden sollten, das ein Unterverzeichnis des Quellverzeichnisses ist.

    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. Wenn Sie in Schritt 6 eine Auslagerungsdatei eingerichtet haben, entfernen Sie diese. Ohne weitere Konfiguration wird es nach einem Neustart nicht als Auslagerungsdatei verwendet und beansprucht nur Festplattenspeicher in Ihrem VPS.

    sudo swapoff $SWAP
    rm /tmp/swap
    
  9. Überprüfen Sie die installierten Versionen und sehen Sie sich deren Speicherorte an.

    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. Fügen Sie die neuen Bibliotheken zu ld (dem GNU-Linker) hinzu.

    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. Optional können Sie ein Hallo-Welt-Programm erstellen.

    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. Optional können Sie Festplattenspeicher zurückfordern. Ihr ~/sourceInstallationsOrdner nimmt ungefähr 8,0 GB ein. Es ist wahrscheinlich ratsam, die Ordner beizubehalten, da es optionale Konfigurationsoptionen gibt, die Sie möglicherweise zu einem späteren Zeitpunkt verwenden müssen, und es wäre schneller, wenn bereits viel getan worden wäre. Außerdem erstellt der Erstellungsprozess Protokolle, die Sie später überprüfen und bearbeiten können, wenn etwas schief geht. Nach einer sudo make installfrüheren Ausführung hängt Ihr installierter GCC jedoch nicht von irgendetwas in diesem Verzeichnis ab, und der Speicherplatz kann knapp sein. Sie können diesen Schritt also ausführen und etwa 8,0 GB zurückfordern.

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

Sie haben jetzt Ihr CentOS offiziell unterstützt gccund sind g++noch in /usr/bin/, Ihr CentOS unterstützt offiziell 32-Bit-Bibliotheken in /lib, Ihr CentOS unterstützt offiziell 64-Bit-Bibliotheken in /lib64und Ihr CentOS unterstützt offiziell Include-Dateien in /usr/include.

Ihre neueren gccund in g++sind /usr/local/bin, neuere 32-Bit-Bibliotheken in /usr/local/lib, Ihre neueren 64-Bit-Bibliotheken in /usr/local/lib64und Ihre neueren Include-Dateien in /usr/local/include.



Leave a Comment

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.