Kako instalirati GCC na CentOS 6

CentOS prati razvoj Red Hat Enterprise Linuxa (RHEL). RHEL nastoji biti stabilna poslužiteljska platforma, što znači da ne žuri uključiti najnovije verzije svakog softverskog paketa.

Od pisanja ovog članka, CentOS 6 službeno distribuira GCC v4.4.7. Međutim, nedavno je objavljen GCC v5.1. Prije toga je bila dostupna v4.9.2.

Službeni prijedlog da vam je potrebna novija verzija GCC-a je da biste trebali razmotriti drugu distribuciju UNIX-a koja je više usredotočena na podršku najnovijim verzijama softverskih paketa.

Srećom, možete instalirati noviju verziju GCC-a na CentOS, ostavljajući stariju verziju još uvijek instaliranom. Ovo odstupa od čistog korištenja službeno distribuiranog softvera, ali ponekad se možete osjećati kao da nemate izbora. Možete naići na neke komplikacije; na primjer, ako instalirate module kernela treće strane, oni moraju biti prevedeni koristeći istu verziju GCC-a koja se koristi za izgradnju vaše jezgre.

Ovaj članak opisuje kako instalirati službeno podržanu verziju GCC-a za CentOS 6 te kako instalirati i noviju verziju. Ovaj članak pretpostavlja da imate svježe instaliran CentOS 6 VPS, iako svakako možete slijediti upute na postojećem VPS-u.

Instalirajte službeno podržanu (stariju) verziju GCC-a

Čak i ako želite instalirati noviju verziju GCC-a iz izvora, sam GCC je napisan u C++. Stoga prvo morate instalirati stariji C++ prevodilac.

  1. Prijavite se na svoj VPS, bilo klikom na "View Console" na Vultr upravljačkoj ploči ili putem SSH-a, ako ste to postavili.

    (a) Prijavite se kao root.

    (b) Napravite vlastiti korisnički račun i dajte mu lozinku.

    adduser <username>
    passwd <username>
    

    (c) Dopustite vašem korisničkom računu da izvršava naredbe s root privilegijama, putem naredbe 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.
    

    (d) Odjavite se kao root i prijavite se na svoj korisnički račun.

  2. Instalirajte CentOS 6 GCC pakete. Ovo će vas pitati želite li instalirati oko 11 paketa, zbog ovisnosti.

    sudo yum install gcc gcc-c++
    
  3. Provjerite instalirane verzije i pokažite njihove lokacije.

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

Instalirajte noviju verziju GCC-a iz izvora

Ako želite samo službeno podržanu verziju GCC-a za CentOS, spremni ste. Ako trebate noviju verziju GCC-a, nastavite dalje.

  1. VAŽNO! Prvo dovršite gore navedene korake da biste instalirali stariju binarnu verziju GCC-a.

  2. Instalirajte dodatno potrebne pakete. Ovo će vas pitati želite li instalirati oko 41 paket.

    sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
    
  3. Odlučite koju verziju GCC-a želite instalirati. Ova naredba će vam pokazati "oznake" za svaku od dostupnih verzija.

    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. Nabavite izvor željene verzije GCC-a. Ovo će trajati nekoliko minuta. Ostatak ovog članka je napisan za gcc-5_1_0_release/te će preuzeti izvore u ~/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. Dobijte izvor dodatnih preduvjeta. Koristeći v5.1.0, ovo preuzima izvore i dodaje ih u GCC verziju za MPFR v2.4.2, GMP 4.3.2 i 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. Ako vaš VPS ima samo 768 MB memorije, u sljedećem koraku će vam ponestati memorije. Ako imate 1 GB memorije, možda ste u redu, ali ovaj korak ne škodi. Ako imate 2 GB memorije ili više, možete preskočiti ovaj korak. Ovaj korak dodaje 500 MB virtualne memorije, koristeći swap datoteku.

    SWAP=/tmp/swap
    dd if=/dev/zero of=$SWAP bs=1M count=500
    mkswap $SWAP
    sudo swapon $SWAP
    
  7. Izgradite GCC. Ovo će trajati satima. Ako se ovo završi ispravno, zadnji redak koji ćete vidjeti će pisati "uspjeh". Normalno je vidjeti neke poruke koje izgledaju kao pogreške kako se brzo pomiču, sve dok se izgradnja završi i odjekne "uspjeh". Uvijek je dobra ideja izgraditi stvari u direktoriju različitom od izvornog. GCC dokumentacija navodi da ne biste trebali koristiti direktorij izgradnje koji je poddirektorij izvornog direktorija.

    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. Ako ste postavili swap datoteku u koraku 6, uklonite je. Bez dodatnog konfiguriranja, nakon ponovnog pokretanja, neće se koristiti kao swap datoteka, već će samo zauzimati prostor na tvrdom disku u vašem VPS-u.

    sudo swapoff $SWAP
    rm /tmp/swap
    
  9. Provjerite instalirane verzije i pogledajte njihova mjesta.

    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. Dodajte nove biblioteke u ld (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. Po želji napravite program 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. Po želji povratite prostor na tvrdom disku. Vaša ~/sourceInstallationsmapa će zauzimati oko 8,0 GB. Vjerojatno je pametno zadržati mape, jer postoje izborne opcije konfiguracije koje ćete možda morati koristiti u nekom trenutku u budućnosti, a bilo bi brže da ste već puno toga učinili. Također, proces izgradnje stvara zapisnike koje kasnije možete provjeriti i raditi ako nešto pođe po zlu. No, nakon što se pokrene sudo make installranije, vaš instalirani GCC ne ovisi ni o čemu u ovom direktoriju, a prostor može biti premium, tako da možete učiniti ovaj korak i povratiti 8,0 GB ili tako nešto.

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

Sada imate službeno podržani CentOS gcci g++još uvijek u /usr/bin/, vaš CentOS službeno podržava 32-bitne biblioteke u /lib, vaš CentOS službeno podržava 64-bitne biblioteke u /lib64, a vaš CentOS službeno podržava uključuje datoteke u /usr/include.

Vaše novije gcci g++su u /usr/local/bin, novije 32-bitne biblioteke u /usr/local/lib, vaše novije 64-bitne biblioteke u /usr/local/lib64, i vaše novije uključene datoteke u /usr/local/include.

Ostavite komentar

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više