CentOS 6にGCCをインストールする方法

CentOSはRed Hat Enterprise Linux(RHEL)の開発に従います。RHELは、安定したサーバープラットフォームになるように努めています。つまり、すべてのソフトウェアパッケージの最新バージョンを含めることを急いでいません。

この記事の執筆時点で、CentOS 6はGCC v4.4.7を正式に配布しています。ただし、GCC v5.1が最近リリースされました。それ以前は、v4.9.2が利用可能でした。

より新しいバージョンのGCCが必要であるという公式の提案は、最新バージョンのソフトウェアパッケージのサポートに重点を置いた別のUNIXディストリビューションを検討する必要があるということです。

さいわい、CentOSに最新バージョンのGCCをインストールして、古いバージョンをインストールしたままにできます。これは、正式に配布されたソフトウェアを純粋に使用することから逸脱していますが、選択肢が少ないように感じる場合があります。あなたはいくつかの合併症に遭遇する可能性があります。たとえば、サードパーティのカーネルモジュールをインストールする場合は、カーネルのビルドに使用したのと同じバージョンのGCCを使用してコンパイルする必要があります。

この記事では、GOSの正式にサポートされているバージョンのCentOS 6をインストールする方法と、新しいバージョンをインストールする方法についても説明します。この記事は、CentOS 6 VPSを新しくインストールしたことを前提としていますが、既存のVPSの指示に従うことはできます。

公式にサポートされている(古い)バージョンのGCCをインストールする

ソースから新しいバージョンのGCCをインストールする場合でも、GCC自体はC ++で記述されています。したがって、最初に古いC ++コンパイラをインストールする必要があります。

  1. Vultrコントロールパネルの[コンソールの表示]をクリックするか、SSH(設定している場合)をクリックして、VPSにログインします。

    (a)rootとしてログインします。

    (b)独自のユーザーアカウントを作成し、パスワードを設定します。

    adduser <username>
    passwd <username>
    

    (c)ユーザーアカウントがsudoコマンドを使用して、root権限でコマンドを実行できるようにします。

    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を使用してソースをダウンロードし、MPFR v2.4.2、GMP 4.3.2、およびMPC 0.8.1のGCCビルドに追加します。

    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のメモリがあれば大丈夫かもしれませんが、このステップを実行しても害はありません。2GB以上のメモリがある場合は、この手順をスキップできます。この手順では、スワップファイルを使用して、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.0GBを占めます。将来、ある時点で使用する必要があるオプションの構成オプションがあり、多くのことを既に実行した方が速いので、フォルダーを保持することはおそらく賢明です。また、ビルドプロセスではログが作成されるため、問題が発生した場合に後で確認して作業できます。しかし、sudo make install以前に実行した後、インストールされたGCCはこのディレクトリの何にも依存せず、スペースが非常に大きくなる可能性があるため、この手順を実行して8.0GB程度を再利用できます。

    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ビットライブラリ、/libCentOSが正式にサポートされている64ビットライブラリ、/lib64CentOSが正式にサポートされているインクルードファイルを使用できます/usr/include

新しいgccとにありg++ます/usr/local/bin。新しい32ビットライブラリは/usr/local/libに、新しい64ビットライブラリはに/usr/local/lib64、新しいインクルードファイルはにあります/usr/local/include



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。