Kaip įdiegti GCC CentOS 6

„CentOS“ seka „Red Hat Enterprise Linux“ (RHEL) kūrimą. RHEL siekia būti stabilia serverio platforma, o tai reiškia, kad neskuba įtraukti naujausių kiekvieno programinės įrangos paketo versijų.

Nuo šio straipsnio rašymo „CentOS 6“ oficialiai platina GCC v4.4.7. Tačiau neseniai buvo išleista GCC v5.1. Prieš tai buvo prieinama v4.9.2.

Oficialus pasiūlymas, kad reikia naujesnės GCC versijos, yra tai, kad turėtumėte apsvarstyti kitokį UNIX platinimą, kuris būtų labiau orientuotas į naujausių programinės įrangos paketų versijų palaikymą.

Laimei, CentOS galite įdiegti naujesnę GCC versiją, palikdami senesnę versiją. Tai nukrypsta nuo vien tik oficialiai platinamos programinės įrangos naudojimo, tačiau kartais gali atrodyti, kad neturite mažai pasirinkimo. Galite susidurti su tam tikromis komplikacijomis; Pavyzdžiui, jei diegiate trečiosios šalies branduolio modulius, jie turi būti sukompiliuoti naudojant tą pačią GCC versiją, kuri buvo naudojama branduoliui kurti.

Šiame straipsnyje aprašoma, kaip įdiegti CentOS 6 oficialiai palaikomą GCC versiją ir kaip įdiegti naujesnę versiją. Šiame straipsnyje daroma prielaida, kad turite naujai įdiegtą CentOS 6 VPS, nors tikrai galite vadovautis esamo VPS instrukcijomis.

Įdiekite oficialiai palaikomą (senesnę) GCC versiją

Net jei norite įdiegti naujesnę GCC versiją iš šaltinio, pati GCC yra parašyta C++. Todėl pirmiausia turite įdiegti senesnį C++ kompiliatorių.

  1. Prisijunkite prie savo VPS spustelėdami „View Console“ „Vultr“ valdymo skydelyje arba naudodami SSH, jei tai nustatėte.

    a) Prisijunkite kaip root.

    (b) Sukurkite savo vartotojo paskyrą ir suteikite jai slaptažodį.

    adduser <username>
    passwd <username>
    

    (c) Leiskite savo vartotojo abonementui vykdyti komandas su root teisėmis per komandą 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) Atsijunkite kaip root ir prisijunkite prie savo vartotojo paskyros.

  2. Įdiekite CentOS 6 GCC paketus. Dėl priklausomybių bus paklausta, ar norite įdiegti maždaug 11 paketų.

    sudo yum install gcc gcc-c++
    
  3. Patikrinkite įdiegtas versijas ir parodykite jų vietas.

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

Įdiekite naujesnę GCC versiją iš šaltinio

Jei norite tik oficialiai palaikomos CentOS versijos GCC, viskas paruošta. Jei jums reikia naujesnės GCC versijos, tęskite.

  1. SVARBU! Pirmiausia atlikite anksčiau nurodytus veiksmus, kad įdiegtumėte senesnę dvejetainę GCC versiją.

  2. Įdiekite papildomai reikalingus paketus. Bus paklausta, ar norite įdiegti maždaug 41 paketą.

    sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
    
  3. Nuspręskite, kurią GCC versiją norite įdiegti. Ši komanda parodys kiekvienos galimos versijos „žymas“.

    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. Gaukite norimos GCC versijos šaltinį. Tai veiks keletą minučių. Likusi šio straipsnio dalis skirta gcc-5_1_0_release/ir šaltiniai bus atsisiųsti į ~/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. Gaukite papildomų būtinų sąlygų šaltinį. Naudojant 5.1.0 versiją, atsisiunčiami šaltiniai ir pridedami prie GCC versijos MPFR v2.4.2, GMP 4.3.2 ir 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. Jei jūsų VPS turi tik 768 MB atminties, kitame veiksme atminties pritrūks. Jei turite 1 GB atminties, jums gali būti gerai, bet tai nepakenks atlikti šį veiksmą. Jei turite 2 GB ar daugiau atminties, galite praleisti šį veiksmą. Šis veiksmas prideda 500 MB virtualios atminties, naudojant apsikeitimo failą.

    SWAP=/tmp/swap
    dd if=/dev/zero of=$SWAP bs=1M count=500
    mkswap $SWAP
    sudo swapon $SWAP
    
  7. Sukurkite GCC. Tai veiks valandas. Jei tai bus atlikta teisingai, paskutinėje eilutėje, kurią pamatysite, bus nurodyta „sėkmė“. Normalu, kad kai kurie klaidą primenantys pranešimai greitai slenka, jei tik kūrimas baigiamas ir kartojasi „sėkmė“. Visada yra gera idėja kurti dalykus kitame kataloge nei šaltinio katalogas. GCC dokumentacijoje teigiama, kad neturėtumėte naudoti kūrimo katalogo, kuris yra šaltinio katalogo pakatalogis.

    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. Jei 6 veiksme nustatėte apsikeitimo failą, pašalinkite jį. Neatlikus daugiau konfigūravimo, po perkrovimo jis nebus naudojamas kaip apsikeitimo failas ir tiesiog užims vietos standžiajame diske jūsų VPS.

    sudo swapoff $SWAP
    rm /tmp/swap
    
  9. Patikrinkite įdiegtas versijas ir peržiūrėkite jų vietas.

    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. Pridėkite naujas bibliotekas prie ld (GNU nuoroda).

    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. Pasirinktinai sukurkite 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. Pasirinktinai atlaisvinkite vietos standžiajame diske. Jūsų ~/sourceInstallationsaplankas užims apie 8,0 GB. Tikriausiai būtų protinga pasilikti aplankus, nes yra pasirenkamų konfigūravimo parinkčių, kurias gali prireikti naudoti kada nors ateityje, ir būtų greičiau, jei daug ką jau padarytumėte. Be to, kūrimo procesas sukuria žurnalus, kuriuos vėliau galėsite patikrinti ir dirbti, jei kas nors negerai. Tačiau paleidus sudo make installanksčiau, jūsų įdiegtas GCC nepriklauso nuo nieko šiame kataloge, o vietos gali būti labai daug, todėl galite atlikti šį veiksmą ir susigrąžinti 8,0 GB.

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

Dabar jūsų CentOS oficialiai palaikomas gccir g++vis dar yra /usr/bin/, jūsų CentOS oficialiai palaiko 32 bitų libs /lib, jūsų CentOS oficialiai palaiko 64 bitų libs /lib64, o jūsų CentOS oficialiai palaiko įtraukimo failus /usr/include.

Jūsų naujesnės gccir g++yra /usr/local/bin, naujesnės 32 bitų libs, esančios /usr/local/lib, naujesnės 64 bitų libs /usr/local/lib64, o naujesnės įtrauktos failus į /usr/local/include.

Palikti komentarą

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį