Како инсталирати ГЦЦ на ЦентОС 6

ЦентОС прати развој Ред Хат Ентерприсе Линук-а (РХЕЛ). РХЕЛ тежи да буде стабилна серверска платформа, што значи да не жури да укључи најновије верзије сваког софтверског пакета.

Од писања овог чланка, ЦентОС 6 званично дистрибуира ГЦЦ в4.4.7. Међутим, ГЦЦ в5.1 је недавно објављен. Пре тога, в4.9.2 је била доступна.

Званични предлог да вам је потребна новија верзија ГЦЦ-а је да бисте требали размотрити другу УНИКС дистрибуцију која је више фокусирана на подршку најновијим верзијама софтверских пакета.

На срећу, можете да инсталирате новију верзију ГЦЦ-а на ЦентОС, остављајући старију верзију и даље инсталирану. Ово одступа од чистог коришћења званично дистрибуираног софтвера, али понекад се можете осећати као да немате мало избора. Можете наићи на неке компликације; на пример, ако инсталирате модуле кернела треће стране, они морају бити компајлирани користећи исту верзију ГЦЦ-а која се користи за прављење вашег кернела.

Овај чланак описује како да инсталирате званично подржану верзију ГЦЦ-а за ЦентОС 6, као и како да инсталирате новију верзију. Овај чланак претпоставља да имате недавно инсталиран ЦентОС 6 ВПС, иако свакако можете пратити упутства на постојећем ВПС-у.

Инсталирајте званично подржану (старију) верзију ГЦЦ-а

Чак и ако желите да инсталирате новију верзију ГЦЦ-а из извора, сам ГЦЦ је написан у Ц++. Стога, прво морате да инсталирате старији Ц++ компајлер.

  1. Пријавите се на свој ВПС, било кликом на „Прикажи конзолу“ на Вултр контролној табли или путем ССХ-а, ако сте то подесили.

    (а) Пријавите се као роот.

    (б) Креирајте сопствени кориснички налог и дајте му лозинку.

    adduser <username>
    passwd <username>
    

    (ц) Дозволите свом корисничком налогу да извршава команде са роот привилегијама, преко команде судо.

    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.
    

    (д) Одјавите се као роот и пријавите се на свој кориснички налог.

  2. Инсталирајте ЦентОС 6 ГЦЦ пакете. Ово ће вас питати да ли желите да инсталирате око 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++
    

Инсталирајте новију верзију ГЦЦ-а из извора

Ако желите само званично подржану верзију ГЦЦ-а за ЦентОС, спремни сте. Ако вам је потребна новија верзија ГЦЦ-а, наставите даље.

  1. ВАЖНО! Прво довршите горе наведене кораке да бисте инсталирали старију бинарну верзију ГЦЦ-а.

  2. Инсталирајте додатно потребне пакете. Ово ће вас питати да ли желите да инсталирате око 41 пакет.

    sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
    
  3. Одлучите коју верзију ГЦЦ-а желите да инсталирате. Ова команда ће вам показати "ознаке" за сваку од доступних верзија.

    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-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, ово преузима изворе и додаје их у ГЦЦ верзију за МПФР в2.4.2, ГМП 4.3.2 и МПЦ 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. Ако ваш ВПС има само 768 МБ меморије, у следећем кораку ће вам понестати меморије. Ако имате 1 ГБ меморије, можда сте у реду, али овај корак не шкоди. Ако имате 2 ГБ меморије или више, можете прескочити овај корак. Овај корак додаје 500МБ виртуелне меморије, користећи свап датотеку.

    SWAP=/tmp/swap
    dd if=/dev/zero of=$SWAP bs=1M count=500
    mkswap $SWAP
    sudo swapon $SWAP
    
  7. Изградите ГЦЦ. Ово ће трајати сатима. Ако се ово заврши исправно, последњи ред који ћете видети ће рећи „успех“. Нормално је да видите неке поруке које изгледају као грешке како се брзо померају, све док се изградња заврши и одзвања „успех“. Увек је добра идеја изградити ствари у директоријуму различитом од изворног. ГЦЦ документација каже да не би требало да користите директоријум за изградњу који је поддиректоријум изворног директоријума.

    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, уклоните је. Без додатног конфигурисања, након поновног покретања, неће се користити као свап датотека, већ ће само заузимати простор на чврстом диску у вашем ВПС-у.

    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. Додајте нове библиотеке у лд (ГНУ линкер).

    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. По жељи направите програм Здраво свет.

    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 ГБ. Вероватно је паметно задржати фасцикле, јер постоје опционе опције конфигурације које ћете можда морати да користите у неком тренутку у будућности, а било би брже да сте већ много тога урадили. Такође, процес изградње прави евиденције које касније можете да проверите и да радите са њима ако нешто крене наопако. Али, након sudo make installранијег покретања , ваш инсталирани ГЦЦ не зависи ни од чега у овом директоријуму, а простор може бити премиум, тако да можете да урадите овај корак и повратите 8,0 ГБ или тако нешто.

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

Сада имате ваш ЦентОС званично подржан gccи g++још увек у /usr/bin/, ваш ЦентОС званично подржава 32-битне библиотеке у /lib, ваш ЦентОС званично подржава 64-битне библиотеке у /lib64, а ваш ЦентОС званично подржава укључује датотеке у /usr/include.

Ваше новије gccи g++налазе се у /usr/local/bin, новије 32-битне библиотеке у /usr/local/lib, ваше новије 64-битне библиотеке у /usr/local/lib64, и ваше новије укључене датотеке у /usr/local/include.

Остави коментар

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више