Linux環境でのThriftのインストール


公式に提供されたthriftインストールはBasic requirements-A relatively POSIX-compliant*NIX system-Cygwin or MinGW can be used on Windows(but there are better options,see below)-g++4.2(4.8 or later required for thrift compiler plug-in support)-boost 1.53.0-Runtime libraries for lex and yacc might be needed for the compiler.Requirements for building from source GNU build tools:-autoconf 2.65-automake 1.13-libtool 1.5.24 pkg-config autoconf macros(pkg.m 4)lex and yacc(developed primarily with flex and bison)libssl-devコンパイラGCCに対して4.8以上のバージョンを推奨します.そうしないと、コンパイル時にリンクできないか、ヘッダファイルが見つからないなどの問題が投げ出される可能性があります.
様々な依存バージョンが検証されていない場合、インストール中にautoconf,g+,Bison,OpenSSL,Perlバージョンが低すぎます.これらの問題の暴露過程は大体:
  • thriftをインストールする前にconfigureスクリプトを実行すると、構文解析器GNU Bisonバージョンが低すぎることがわかりました.
  • Bisonをアップグレードすると、OpenSSLバージョンが低すぎることがわかりました.
  • OpenSSLをアップグレードすると、Perlバージョンが低すぎることがわかります.
  • Perlをアップグレードすると、g++バージョンが
  • と低すぎることがわかりました.
    Autoconfのアップグレード
    # rpm -e --nodeps autoconf //  
         autoconf-2.69.tar.gz
    # ./configure
    # make & make install

    さまざまな依存バージョンが検証されていない場合、インストールプロセスが投げ出す問題と、プロセスを順次解決します.1.thriftをインストールする前にconfigureスクリプトを実行すると、構文解析器GNU Bisonのバージョンが低すぎることがわかりました.
    # ./configure
    configure: error: Bison version 2.5 or higher must be installed on the system!

    BisonはGNUプロジェクトの一般的な目的のアナライザジェネレータである.GNU Bisonをアップグレードインストールパッケージbison-3.0.tar.gz.解凍後、インストールパッケージルートディレクトリのINSTALLファイルに詳細なインストール手順があります.基本的なインストール方法は次のとおりです.
    # tar -zxvf bison-3.0.tar.gz
    # cd bison-3.0
    # ./configure
    # make & make check
    # make install & make installcheck

    2.Bisonをアップグレードする時、OpenSSLバージョンが低すぎることを発見する;放出異常は次のとおりです.
    src/thrift/transport/TSSLSocket.cpp:166: error: 'TLSv1_1_method' was not declared in this scope
    src/thrift/transport/TSSLSocket.cpp:168: error: 'TLSv1_2_method' was not declared in this scope
    src/thrift/transport/TSSLSocket.cpp: In member function 'void apache::thrift::transport::TSSLSocket::checkHandshake()':
    src/thrift/transport/TSSLSocket.cpp:488: error: 'SSL_set_tlsext_host_name' was not declared in this scope

    OpenSSLはセキュリティソケット層の暗号ライブラリであり、主な暗号アルゴリズム、一般的な鍵と証明書パッケージ管理機能、SSLプロトコルを網羅し、テストやその他の目的で豊富なアプリケーションを提供しています.
    # rpm -qa|grep -i openssl  //     OpenSSL  
    openssl-0.9.8e-12.el5_4.6
    openssl-devel-0.9.8e-12.el5_4.6

    アップグレード、公式インストールパッケージダウンロードアドレスopenssl-1.1.0 f.tar.gzは現在サポートされている安定したバージョンです.解凍後のインストールパッケージのルートディレクトリのINSTALLファイルには、インストール手順が示されています.
    # ./config
    # make
    # make test
    # make install

    ダイナミックリンクライブラリはデフォルト環境に追加されていません:
    # openssl version
    openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
    # locate libssl
    /usr/local/lib64/libssl.so
    /usr/local/lib64/libssl.so.1.1
    # echo $LD_LIBRARY_PATH

    以上の2つのコマンドで、libsslのダイナミックライブラリはデフォルトで「/usr/local/lib 64/」にインストールされていますが、LD_LIBRARY_PATH環境変数にはパスがありませんので、現在のユーザーの環境変数に次のように追加します.
    # vim ~/.bash_profile
        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64
    # source ~/.bash_profile
    

    3.OpenSSLをアップグレードする時、Perlバージョンが低すぎることを発見する;OpenSSLのインストール時にconfigスクリプトを実行するとPerl v 5が必要になります.10.0以上のバージョン:Perl v 5.10.0 required–this is only v5.8.8 perlをアップグレードし、現在の安定バージョンperl-5.26.1をダウンロードし、インストール方法は以下の通りである.
    # sh Configure -de
    # make 
    # make test 
    # make install

    ps:perl-5.26.1低バージョンのCentosにバグがある場合は、インストールパッケージperl-5.10.10を交換してください.tar.gzは、同じようにインストールします
    4.Perlをアップグレードする時、g++バージョンが低すぎることを発見して、アップグレード方法はLinuxオフライン(手動)を参照してGCC-4.8をアップグレードする
    5.Thriftの実装実装方法実装パッケージのREADME.mdには説明があります
    # tar -zxvf thrift-0.10.0.tar.gz

    公式ダウンロードのtarパッケージにはすでにconfigureスクリプトがあり、初めてダウンロードしたソースファイルにconfigureスクリプトがない場合はbootstrapを使用する必要があります.sh自動生成.
    # ./configure
    # make
    # make install