CentOS 6 Üzerinde GCC Kurulumu

CentOS, Red Hat Enterprise Linux'un (RHEL) gelişimini takip ediyor. RHEL, kararlı bir sunucu platformu olmaya çalışır, yani her yazılım paketinin en son sürümlerini dahil etmek için acele etmez.

Bu makalenin yazımından itibaren, CentOS 6 resmi olarak GCC v4.4.7'yi dağıtır. Bununla birlikte, GCC v5.1 yakın zamanda piyasaya sürüldü. Bundan önce v4.9.2 mevcuttu.

GCC'nin daha yeni bir sürümüne ihtiyaç duymanın resmi önerisi, yazılım paketlerinin en son sürümlerini desteklemeye odaklanan farklı bir UNIX dağıtımını düşünmeniz gerektiğidir.

Neyse ki, CentOS'a GCC'nin daha yeni bir sürümünü yükleyebilir ve eski sürümü hala yüklü bırakabilirsiniz. Bu sadece resmi olarak dağıtılmış yazılımı kullanmaktan sapar, ancak bazen çok az seçeneğiniz varmış gibi hissedebilirsiniz. Bazı komplikasyonlarla karşılaşabilirsiniz; örneğin, üçüncü taraf çekirdek modüllerini kuruyorsanız, bunlar çekirdekinizi oluşturmak için kullanılan GCC'nin aynı sürümü kullanılarak derlenmelidir.

Bu makalede, CentCC 6'nın resmi olarak desteklenen GCC sürümünün nasıl yükleneceği ve daha yeni bir sürümün nasıl yükleneceği açıklanır. Bu makalede, varolan bir VPS'deki yönergeleri kesinlikle uygulayabilmenize rağmen, yeni kurulmuş bir CentOS 6 VPS'niz olduğu varsayılmaktadır.

GCC'nin resmi olarak desteklenen (eski) bir sürümünü yükleyin

GCC'nin kaynaktan daha yeni bir sürümünü yüklemek isteseniz bile, GCC'nin kendisi C ++ ile yazılmıştır. Bu nedenle, önce eski bir C ++ derleyicisi yüklemeniz gerekir.

  1. Vultr kontrol panelinde "Konsolu Görüntüle" yi tıklayarak veya ayarladıysanız SSH ile VPS'nize giriş yapın.

    (a) Kök olarak oturum açın.

    (b) Kendi kullanıcı hesabınızı oluşturun ve bir şifre verin.

    adduser <username>
    passwd <username>
    

    (c) Kullanıcı hesabınızın sudo komutu aracılığıyla kök ayrıcalıklarına sahip komutlar yürütmesine izin verin.

    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) Kök olarak çıkış yapın ve kullanıcı hesabınıza giriş yapın.

  2. CentOS 6 GCC paketlerini kurun. Bu, bağımlılıklar nedeniyle yaklaşık 11 paket yüklemek isteyip istemediğinizi soracaktır.

    sudo yum install gcc gcc-c++
    
  3. Yüklü sürümleri kontrol edin ve konumlarını gösterin.

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

Kaynaktan GCC'nin daha yeni bir sürümünü yükleyin

Yalnızca CentOS'un resmi olarak desteklenen GCC sürümünü istiyorsanız, hazırsınız demektir. GCC'nin daha yeni bir sürümüne ihtiyacınız varsa devam edin.

  1. ÖNEMLİ! İlk olarak, GCC'nin eski bir ikili sürümünü yüklemek için yukarıdaki adımları tamamlayın.

  2. Ek olarak gerekli paketleri kurun. Bu size yaklaşık 41 paket yüklemek isteyip istemediğinizi soracaktır.

    sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
    
  3. Hangi GCC sürümünü yüklemek istediğinize karar verin. Bu komut, mevcut sürümlerin her biri için "etiketler" i gösterir.

    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. İstediğiniz GCC sürümünün kaynağını alın. Bu birkaç dakika sürecek. Bu makalenin geri kalanı için yazılmış gcc-5_1_0_release/ve kaynakları içine indirir ~/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. Ek ön koşulların kaynağını alın. V5.1.0 kullanarak, kaynaklar indirilir ve MPFR v2.4.2, GMP 4.3.2 ve MPC 0.8.1 için GCC derlemesine eklenir.

    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'nizde yalnızca 768 MB bellek varsa, bir sonraki adımda bellek yetersiz kalır. 1 GB belleğiniz varsa, iyi olabilirsiniz, ancak bu adımı yapmak zarar veremez. 2 GB veya daha fazla belleğiniz varsa bu adımı atlayabilirsiniz. Bu adım, takas dosyası kullanarak 500MB sanal bellek ekler.

    SWAP=/tmp/swap
    dd if=/dev/zero of=$SWAP bs=1M count=500
    mkswap $SWAP
    sudo swapon $SWAP
    
  7. GCC'yi oluşturun. Bu saatlerce sürecek. Bu doğru şekilde tamamlanırsa, göreceğiniz son satırda "başarı" yazacaktır. Derleme tamamlandığında ve echos "başarılı" olduğu sürece, bazı hata görünümlü mesajların hızla kaydığını görmek normaldir. İşleri kaynak dizinden farklı bir dizinde oluşturmak her zaman iyi bir fikirdir. GCC belgeleri, kaynak dizinin alt dizini olan bir oluşturma dizini kullanmamanız gerektiğini belirtir.

    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. adımda bir takas dosyası oluşturursanız, kaldırın. Daha fazla yapılandırma yapmadan, yeniden başlattıktan sonra takas dosyası olarak kullanılmaz ve VPS'nizde sabit disk alanı kaplar.

    sudo swapoff $SWAP
    rm /tmp/swap
    
  9. Yüklü sürümleri kontrol edin ve konumlarını görün.

    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. Yeni kütüphaneleri ld'ye (GNU bağlayıcısı) ekleyin.

    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. İsteğe bağlı olarak bir merhaba dünya programı yapın.

    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. İsteğe bağlı olarak sabit sürücü alanını geri kazanın. Kişisel ~/sourceInstallationsklasör 8.0GB etrafında alacak. Gelecekte bir noktada kullanmanız gerekebilecek isteğe bağlı yapılandırma seçenekleri olduğu için muhtemelen klasörleri saklamak akıllıca olacaktır ve zaten çok şey yapmak daha hızlı olacaktır. Ayrıca, derleme işlemi daha sonra bir şeyler ters giderse kontrol edip çalışabileceğiniz günlükler oluşturur. Ancak, sudo make installdaha önce çalıştıktan sonra , yüklü GCC'niz bu dizindeki herhangi bir şeye bağlı değildir ve alan bir prim olabilir, bu nedenle bu adımı yapabilir ve 8.0GB veya daha fazlasını geri alabilirsiniz.

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

Artık CentOS'unuzu resmi olarak desteklediniz gccve g++hala /usr/bin/içerdiniz, CentOS'unuz resmi olarak 32 bitlik kütüphaneleri /libdestekledi, CentOS'unuz resmi olarak 64 bitlik kütüphaneleri /lib64destekledi ve CentOS'unuz resmi olarak desteklenen dosyaları içeriyor /usr/include.

Daha yeni olan gccve içerdiğiniz , daha yeni olan 32 bitlik kütüphaneler , daha yeni olan 64 bitlik kütüphaneleriniz ve g++daha yeni olanlarınız içinde dosyalar içeriyor ./usr/local/bin/usr/local/lib/usr/local/lib64/usr/local/include



Leave a Comment

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?