Как да инсталирате GCC на CentOS 6

Как да инсталирате GCC на CentOS 6

CentOS следва развитието на Red Hat Enterprise Linux (RHEL). RHEL се стреми да бъде стабилна сървърна платформа, което означава, че не бърза да включва най-новите версии на всеки софтуерен пакет.

Към написването на тази статия CentOS 6 официално разпространява GCC v4.4.7. Въпреки това, наскоро беше пусната GCC v5.1. Преди това беше налична v4.9.2.

Официалното предложение за нужда от по-нова версия на GCC е, че трябва да помислите за различна UNIX дистрибуция, която е по-фокусирана върху поддръжката на най-новите версии на софтуерни пакети.

За щастие можете да инсталирате по-нова версия на GCC на CentOS, оставяйки по-старата версия все още инсталирана. Това се отклонява от чистото използване на официално разпространения софтуер, но понякога може да почувствате, че нямате малък избор. Може да се сблъскате с някои усложнения; например, ако инсталирате модули на ядрото на трети страни, те трябва да бъдат компилирани с помощта на същата версия на GCC, използвана за изграждане на вашето ядро.

Тази статия описва как да инсталирате официално поддържаната версия на GCC от CentOS 6, както и как да инсталирате по-нова версия. Тази статия предполага, че имате прясно инсталиран CentOS 6 VPS, въпреки че със сигурност можете да следвате инструкциите на съществуващ VPS.

Инсталирайте официално поддържана (по-стара) версия на GCC

Дори ако искате да инсталирате по-нова версия на GCC от източника, самият GCC е написан на C++. Следователно, първо трябва да инсталирате по-стар C++ компилатор.

  1. Влезте във вашия VPS, или като щракнете върху „Преглед на конзолата“ в контролния панел на Vultr, или чрез SSH, ако сте го настроили.

    (a) Влезте като root.

    (b) Създайте свой собствен потребителски акаунт и му дайте парола.

    adduser <username>
    passwd <username>
    

    (c) Позволете на вашия потребителски акаунт да изпълнява команди с root привилегии чрез командата 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) Излезте като root и влезте във вашия потребителски акаунт.

  2. Инсталирайте пакетите на CentOS 6 GCC. Това ще ви попита дали искате да инсталирате около 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++
    

Инсталирайте по-нова версия на GCC от източника

Ако искате само официално поддържаната от CentOS версия на GCC, сте готови. Ако имате нужда от по-нова версия на GCC, продължете.

  1. ВАЖНО! Първо, изпълнете стъпките по-горе, за да инсталирате по-стара двоична версия на GCC.

  2. Инсталирайте допълнително необходими пакети. Това ще ви попита дали искате да инсталирате около 41 пакета.

    sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
    
  3. Решете коя версия на GCC искате да инсталирате. Тази команда ще ви покаже "таговете" за всяка от наличните версии.

    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, която искате. Това ще работи за няколко минути. Останалата част от тази статия е написана за 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. Вземете източника на допълнителни предпоставки. Използвайки v5.1.0, това изтегля източници и ги добавя къ�� компилацията на GCC за MPFR v2.4.2, GMP 4.3.2 и 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. Ако вашият VPS има само 768MB памет, ще ви свърши паметта в следващата стъпка. Ако имате 1GB памет, може да сте добре, но няма да навреди да направите тази стъпка. Ако имате 2 GB памет или повече, можете да пропуснете тази стъпка. Тази стъпка добавя 500MB виртуална памет, използвайки суап файл.

    SWAP=/tmp/swap
    dd if=/dev/zero of=$SWAP bs=1M count=500
    mkswap $SWAP
    sudo swapon $SWAP
    
  7. Изградете GCC. Това ще продължи с часове. Ако това приключи правилно, последният ред, който ще видите, ще гласи "успех". Нормално е да видите някои съобщения, изглеждащи за грешка, да превъртат бързо, стига изграждането да завърши и да отекне "успех". Винаги е добра идея да изграждате неща в директория, различна от директорията с източник. Документацията на GCC гласи, че не трябва да използвате директория за компилиране, която е поддиректория на изходната директория.

    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, премахнете го. Без да правите повече конфигуриране, след рестартиране, той няма да се използва като суап файл и просто заема място на твърдия диск във вашия VPS.

    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. Добавете новите библиотеки към ld (линкерът на GNU).

    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. По желание направете програма 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. По избор възстановите място на твърдия диск. Вашата ~/sourceInstallationsпапка ще заема около 8,0 GB. Вероятно е разумно да запазите папките, тъй като има допълнителни опции за конфигуриране, които може да се наложи да използвате в някакъв момент в бъдещето, и би било по-бързо, ако вече сте направили много. Освен това процесът на изграждане прави регистрационни файлове, които по-късно можете да проверите и да работите, ако нещо се обърка. Но след като стартирате sudo make installпо-рано, вашият инсталиран GCC не зависи от нищо в тази директория и пространството може да бъде ограничено, така че можете да направите тази стъпка и да си върнете 8,0 GB или така.

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

Вече имате официално поддържан CentOS gccи g++все още в /usr/bin/, вашият CentOS официално поддържа 32-битови библиотеки в /lib, вашият CentOS официално поддържа 64-битови библиотеки в /lib64, а вашият CentOS официално поддържа включващи файлове в /usr/include.

Вашите по-нови gccи g++са в /usr/local/bin, по-нови 32-битови библиотеки в /usr/local/lib, по-новите ви 64-битови библиотеки в /usr/local/lib64, и по-новите ви включващи файлове в /usr/local/include.


Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече