Hoe GCC op CentOS te installeren 6

CentOS volgt de ontwikkeling van Red Hat Enterprise Linux (RHEL). RHEL streeft ernaar een stabiel serverplatform te zijn, wat betekent dat het niet overhaast is om de nieuwste versies van elk softwarepakket op te nemen.

Vanaf het schrijven van dit artikel distribueert CentOS 6 officieel GCC v4.4.7. GCC v5.1 is echter onlangs uitgebracht. Voordien was v4.9.2 beschikbaar.

De officiële suggestie om een ​​recentere versie van GCC nodig te hebben, is dat u een andere UNIX-distributie overweegt die meer gericht is op het ondersteunen van de nieuwste versies van softwarepakketten.

Gelukkig kun je een meer recente versie van GCC op CentOS installeren, waardoor de oudere versie nog steeds geïnstalleerd blijft. Dit wijkt af van puur gebruik van de officieel gedistribueerde software, maar soms heb je het gevoel dat je weinig keus hebt. U kunt enkele complicaties tegenkomen; Als u bijvoorbeeld kernelmodules van derden installeert, moeten ze worden gecompileerd met dezelfde versie van GCC die is gebruikt om uw kernel te bouwen.

In dit artikel wordt beschreven hoe u de officieel ondersteunde versie van GCC CentOS 6 installeert en hoe u ook een nieuwere versie installeert. In dit artikel wordt ervan uitgegaan dat je een nieuw geïnstalleerde CentOS 6 VPS hebt, hoewel je zeker de instructies op een bestaande VPS kunt volgen.

Installeer een officieel ondersteunde (oudere) versie van GCC

Zelfs als je een nieuwere versie van GCC vanaf de bron wilt installeren, wordt GCC zelf geschreven in C ++. Daarom moet je eerst een oudere C ++ - compiler installeren.

  1. Log in op je VPS, ofwel door te klikken op "View Console" in het Vultr-configuratiescherm, of door SSH, als je dat hebt ingesteld.

    (a) Log in als root.

    (b) Maak uw eigen gebruikersaccount aan en geef het een wachtwoord.

    adduser <username>
    passwd <username>
    

    (c) Laat uw gebruikersaccount opdrachten uitvoeren met rootprivileges, via het sudo-commando.

    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) Log uit als root en log in op uw gebruikersaccount.

  2. Installeer de CentOS 6 GCC-pakketten. Dit zal u vragen of u vanwege afhankelijkheden ongeveer 11 pakketten wilt installeren.

    sudo yum install gcc gcc-c++
    
  3. Controleer de geïnstalleerde versies en toon hun locaties.

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

Installeer een nieuwere versie van GCC vanaf de bron

Als je alleen de CentOS officieel ondersteunde versie van GCC wilt, ben je helemaal klaar. Als u een recentere versie van GCC nodig heeft, ga dan verder.

  1. BELANGRIJK! Voltooi eerst de bovenstaande stappen om een ​​oudere binaire versie van GCC te installeren.

  2. Installeer extra vereiste pakketten. Dit zal je vragen of je ongeveer 41 pakketten wilt installeren.

    sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
    
  3. Bepaal welke versie van GCC u wilt installeren. Deze opdracht toont u de "tags" voor elk van de beschikbare versies.

    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. Download de bron van de gewenste versie van GCC. Dit duurt een paar minuten. De rest van dit artikel is geschreven voor gcc-5_1_0_release/en zal de bronnen downloaden ~/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. Haal de bron van aanvullende vereisten op. Met v5.1.0 downloadt dit bronnen en voegt ze toe aan de GCC-build voor MPFR v2.4.2, GMP 4.3.2 en 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. Als je VPS maar 768 MB geheugen heeft, zal je in de volgende stap geen geheugen meer hebben. Als je 1 GB geheugen hebt, ben je misschien in orde, maar het kan geen kwaad om deze stap te doen. Als je 2 GB of meer geheugen hebt, kun je deze stap overslaan. Deze stap voegt 500 MB virtueel geheugen toe met behulp van een wisselbestand.

    SWAP=/tmp/swap
    dd if=/dev/zero of=$SWAP bs=1M count=500
    mkswap $SWAP
    sudo swapon $SWAP
    
  7. Bouw GCC. Dit zal uren duren. Als dit correct is ingevuld, zal de laatste regel die je ziet "succes" zeggen. Het is normaal om een ​​aantal foutief uitziende berichten snel voorbij te zien scrollen, zolang de build is voltooid en "succes" weergeeft. Het is altijd een goed idee om dingen in een andere map te bouwen dan in een bronmap. In de GCC-documentatie staat dat u geen build-directory mag gebruiken die een submap van de source-directory is.

    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. Als u in stap 6 een wisselbestand hebt aangemaakt, verwijder het dan. Zonder meer te configureren, wordt het na een herstart niet gebruikt als een wisselbestand en neemt het gewoon ruimte op de harde schijf in je VPS in beslag.

    sudo swapoff $SWAP
    rm /tmp/swap
    
  9. Controleer de geïnstalleerde versies en bekijk hun locaties.

    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. Voeg de nieuwe bibliotheken toe aan ld (de GNU-linker).

    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. Maak optioneel een hallo wereldprogramma.

    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. Herstel optioneel ruimte op de harde schijf. Uw ~/sourceInstallationsmap neemt ongeveer 8.0 GB in beslag. Het is waarschijnlijk verstandig om de mappen te bewaren, aangezien er optionele configuratie-opties zijn die u op een bepaald moment in de toekomst mogelijk moet gebruiken, en het zou sneller zijn als er al veel gedaan is. Het bouwproces maakt ook logboeken die u later kunt controleren en waarmee u kunt werken als er iets misgaat. Maar na sudo make installeerder te hebben gedraaid, is uw geïnstalleerde GCC niet afhankelijk van iets in deze map, en kan ruimte schaars zijn, dus u kunt deze stap doen en de 8,0 GB of zo terugwinnen.

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

Je hebt nu je CentOS officieel ondersteund gccen g++nog steeds in /usr/bin/, je CentOS officieel ondersteunde 32-bit libs in /lib, je CentOS officieel ondersteunde 64-bit libs in /lib64en je CentOS officieel ondersteunde bestanden in /usr/include.

Je nieuwere gccen g++zijn in /usr/local/bin, nieuwere 32-bit libs in /usr/local/lib, je nieuwere 64-bit libs in /usr/local/lib64en je nieuwere bevatten bestanden in /usr/local/include.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.