Cara Memasang GCC di CentOS 6

CentOS mengikuti perkembangan Red Hat Enterprise Linux (RHEL). RHEL berusaha untuk menjadi platform pelayan yang stabil, yang bermaksud bahawa ia tidak tergesa-gesa untuk memasukkan versi terbaru dari setiap pakej perisian.

Sehingga penulisan artikel ini, CentOS 6 secara rasmi mengedarkan GCC v4.4.7. Walau bagaimanapun, GCC v5.1 baru-baru ini dikeluarkan. Sebelum itu, v4.9.2 telah tersedia.

Cadangan rasmi untuk memerlukan versi GCC yang lebih baru adalah anda harus mempertimbangkan pengedaran UNIX yang berbeza yang lebih tertumpu pada menyokong versi terbaru pakej perisian.

Nasib baik, anda dapat memasang versi GCC yang lebih baru di CentOS, membiarkan versi lama masih terpasang. Ini menyimpang dari penggunaan perisian yang diedarkan secara rasmi, tetapi kadang-kadang anda mungkin merasa seperti mempunyai sedikit pilihan. Anda boleh mengalami beberapa komplikasi; sebagai contoh, jika anda memasang modul kernel pihak ketiga, mereka mesti disusun menggunakan versi GCC yang sama yang digunakan untuk membina kernel anda.

Artikel ini menerangkan cara memasang versi GCC CentOS 6 yang disokong secara rasmi, dan cara memasang versi yang lebih baru juga. Artikel ini mengandaikan bahawa anda mempunyai CentOS 6 VPS yang baru dipasang, walaupun anda pasti dapat mengikuti arahan pada VPS yang ada.

Pasang versi GCC yang disokong secara rasmi (lama)

Walaupun anda ingin memasang versi GCC yang lebih baru dari sumbernya, GCC itu sendiri ditulis dalam C ++. Oleh itu, anda mesti memasang penyusun C ++ yang lebih lama.

  1. Log masuk ke VPS anda, baik dengan mengklik "Lihat Konsol" di panel kawalan Vultr, atau dengan SSH, jika anda telah menyiapkannya.

    (a) Log masuk sebagai root.

    (b) Buat akaun pengguna anda sendiri, dan berikan kata laluan.

    adduser <username>
    passwd <username>
    

    (c) Izinkan akaun pengguna anda untuk menjalankan perintah dengan hak root, melalui perintah 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) Keluar sebagai root, dan log masuk ke akaun pengguna anda.

  2. Pasang pakej CentOS 6 GCC. Ini akan menanyakan kepada anda jika anda ingin memasang sekitar 11 pakej, kerana bergantung.

    sudo yum install gcc gcc-c++
    
  3. Periksa versi yang dipasang, dan tunjukkan lokasinya.

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

Pasang versi GCC yang lebih baru dari sumber

Sekiranya anda hanya mahukan versi GCC yang disokong secara rasmi CentOS, anda sudah bersedia. Sekiranya anda memerlukan versi GCC yang lebih baru, teruskan.

  1. PENTING! Pertama, selesaikan langkah di atas untuk memasang versi binari GCC yang lebih lama.

  2. Pasang pakej tambahan yang diperlukan. Ini akan bertanya kepada anda jika anda ingin memasang sekitar 41 pakej.

    sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
    
  3. Tentukan versi GCC yang ingin anda pasang. Perintah ini akan menunjukkan kepada anda "tag" untuk setiap versi yang tersedia.

    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. Dapatkan sumber versi GCC yang anda mahukan. Ini akan berjalan selama beberapa minit. Selebihnya artikel ini ditulis untuk gcc-5_1_0_release/dan akan memuat turun sumbernya ke dalam ~/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. Dapatkan sumber prasyarat tambahan. Dengan menggunakan v5.1.0, ini memuat turun sumber dan menambahkannya ke GCC build untuk MPFR v2.4.2, GMP 4.3.2, dan 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. Sekiranya memori VPS anda hanya mempunyai 768MB, anda akan kehabisan memori pada langkah seterusnya. Sekiranya anda mempunyai memori 1GB, anda mungkin baik-baik saja, tetapi tidak ada salahnya melakukan langkah ini. Sekiranya anda mempunyai memori 2GB atau lebih, anda boleh melangkau langkah ini. Langkah ini menambah memori maya 500MB, menggunakan fail pertukaran.

    SWAP=/tmp/swap
    dd if=/dev/zero of=$SWAP bs=1M count=500
    mkswap $SWAP
    sudo swapon $SWAP
    
  7. Bina GCC. Ini akan berjalan berjam-jam. Sekiranya ini selesai dengan betul, baris terakhir yang akan anda lihat akan menyatakan "kejayaan". Adalah normal untuk melihat beberapa mesej yang kelihatan ralat bergulir dengan cepat, selagi build selesai dan echos "berjaya". Adalah idea yang baik untuk membina sesuatu dalam direktori yang berbeza daripada direktori sumber. Dokumentasi GCC menyatakan bahawa anda tidak boleh menggunakan direktori build yang merupakan sub-direktori dari direktori sumber.

    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. Sekiranya anda menyediakan fail pertukaran pada langkah 6, hapus fail tersebut. Tanpa melakukan lebih banyak konfigurasi, setelah reboot, ia tidak akan digunakan sebagai fail pertukaran, dan hanya mengambil ruang cakera keras di VPS anda.

    sudo swapoff $SWAP
    rm /tmp/swap
    
  9. Periksa versi yang dipasang, dan lihat lokasinya.

    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. Tambahkan perpustakaan baru ke ld (penghubung 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. Secara pilihan membuat 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. Dapatkan semula ruang cakera keras secara pilihan. ~/sourceInstallationsFolder anda akan menggunakan sekitar 8.0GB. Mungkin bijaksana untuk menyimpan folder, kerana terdapat pilihan konfigurasi pilihan yang mungkin perlu anda gunakan pada suatu ketika nanti, dan akan lebih cepat untuk menyelesaikan banyak perkara. Proses membina juga membuat log yang kemudian anda boleh periksa dan berfungsi sekiranya ada yang tidak kena. Tetapi, setelah berjalan sudo make installlebih awal, GCC yang anda pasang tidak bergantung pada apa pun dalam direktori ini, dan ruangnya dapat menjadi premium, jadi anda dapat melakukan langkah ini dan mendapatkan kembali 8.0GB atau lebih.

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

Anda sekarang telah menyokong CentOS anda secara rasmi gccdan g++masih ada /usr/bin/, CentOS anda secara rasmi menyokong lib 32-bit /lib, CentOS anda secara rasmi menyokong lib 64-bit /lib64, dan CentOS anda secara rasmi disertakan termasuk fail dalam /usr/include.

Anda yang lebih baru gccdan g++masuk /usr/local/bin, lib 32-bit yang lebih baru, lib /usr/local/lib-bit 64-bit yang /usr/local/lib64lebih baru dan yang baru termasuk fail-fail di dalamnya /usr/local/include.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut