dnscryptプラグインを構築する方法は?

dnscryptプラグインを構築する方法は?

DNSCrypt用のプラグインを構築しようとしていますが、追加のファイルが必要であるというメッセージが表示され続けます。

ビルド方法を知る必要がありますが、パッケージを最初からコンパイルしたことはありません。私はいつもリポジトリを使うことができました。

gccでUbuntu 14.04(64ビット)を使用してください。どこでもコーディング

プラグインへのリンクは次のとおりです。GeoIPプラグイン

dnscryptへのリンクは次のとおりです。DNS暗号化

コンパイルしようとすると、次のような結果が出ます。

cabox@box-codeanywhere:~/workspace$ cmake . && make                                                                                                            
CMake Error: The source directory "/home/cabox/workspace" does not appear to contain CMakeLists.txt.                                                           
Specify --help for usage, or press the help button on the CMake GUI.                                                                                           
cabox@box-codeanywhere:~/workspace$ cd plugin                                                                                                                  
cabox@box-codeanywhere:~/workspace/plugin$ cmake . && make                                                                                                     
-- Configuring done                                                                                                                                            
-- Generating done                                                                                                                                             
-- Build files have been written to: /home/cabox/workspace/plugin                                                                                              
[100%] Building C object CMakeFiles/geoip-block.dir/geoip-block.c.o                                                                                            
/home/cabox/workspace/plugin/geoip-block.c:14:29: fatal error: dnscrypt/plugin.h: No such file or directory                                                    
 #include <dnscrypt/plugin.h>                                                                                                                                  
                             ^                                                                                                                                 
compilation terminated.                                                                                                                                        
make[2]: *** [CMakeFiles/geoip-block.dir/geoip-block.c.o] Error 1                                                                                              
make[1]: *** [CMakeFiles/geoip-block.dir/all] Error 2                                                                                                          
make: *** [all] Error 2                         

より多くの情報が必要な場合は、できるだけ早く追加します。


Dnscryptはすべてをうまく構築しますが、それでも http://pastebin.com/MeU4Q24W

答え1

修正する

terdonが感謝祭の休暇中にいくつかのコマンドを追加して更新したようです。これは追加および/または必須機能を追加します。私はこれを追加してくれた彼に感謝したいです。

仕事

まず最初から始めましょう。

cd ~ && rm -Rv workspace

次に、Ubuntuに適切なツールがあることを確認します。

sudo apt-get update  ## run make sure you get all things right
sudo apt-get install build-essential checkinstall
sudo apt-get install cmake wget software-properties-common python-software-properties autoconf
sudo add-apt-repository ppa:shnatsel/dnscrypt
sudo add-apt-repository ppa:maxmind/ppa
sudo apt-get update
sudo apt-get install libtool openssl libssl-dev

その後、ソース管理にパッケージを追加するには、より多くのツールを追加する必要があります。 DNScryptには必要ありませんが、ソースからプロジェクトを再構築する場合:

sudo apt-get install cvs subversion git-core mercurial

ホームディレクトリに存在する必要があるため、今ではdnscrypt-proxyの実際のソースtarballが必要です。

  • ダウンロードナトリウム(まだインストールしていない場合)

    wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.1.tar.gz
    tar xzf libsodium-1.0.1.tar.gz && cd libsodium-1.0.1 && ./configure
    make && make check && sudo make install
    sudo ldconfig && ./configure && cd ..
    
  • ダウンロードローカルIP API(まだインストールしていない場合)

    wget https://github.com/maxmind/geoip-api-c/archive/v1.6.3.tar.gz
    tar xzf v1.6.3.tar.gz && cd geoip-api-c-1.6.3
    sh bootstrap && ./configure
    make && make check && sudo make install && cd ..
    
  • ダウンロードドメイン名システム(まだインストールしていない場合)

    wget http://www.nlnetlabs.nl/downloads/ldns/ldns-1.6.17.tar.gz
    tar xzf ldns-1.6.17.tar.gz && cd ldns-1.6.17
    ./configure && make && sudo make install && cd ..
    
  • ダウンロードDNSCryptプロキシバージョン1.4.1 Tar.bz2文書。 Ubuntu方式の場合はこれを追加してくださいDNSCrypt-PPA このPPAは古いので(13.10の最新バージョンは1.4.0)、ソースからインストールされます。

    tar -xvjpf dnscrypt-proxy-1.4.1.tar.bz2 && cd dnscrypt-proxy-1.4.1
    ./configure && make && sudo make install
    
    • プラグインを削除したので、次のものが必要です。GitHub RepoからZipファイルを再ダウンロードします。。私たちが作成するディレクトリはmasterと呼ばれます。

      sudo apt-get install zip unzipTarはzipを抽出しないので、新しいツールが必要です。あなたはすでにこれを持っているかもしれません。

      unzip master.zip && cd master

    • ファイルを解凍したら、そのフォルダに移動してCMakeLists.txt次の行を編集して追加します。

include_directories(/home/cabox/workspace/dnscrypt-proxy-1.4.1/src/include) include_directories(/home/cabox/workspace/geoip-api-c-1.6.3/libGeoIP) include_directories(/home/cabox/workspace ) /ldns-1.6.17/ldns)

  • その後実行

    cmake . && make
    cd .. && cp -v master/nameofplugin.ext /some/dir/where/you/store/plugins
    

エラーが発生する理由

DNSCryptのヘッダファイルは、DNSCrypt自体を正常にコンパイルした後にのみインストールされますplugin.h/usr/include/dnscrypt次の2つの理由でDNSCryptをコンパイルできません。

  1. ソースターボールはありません。
  2. クロスメイク(CMake)つまり、標準のLinuxビルドプロセスを使用しない独立したビルドシステムです。これを使用するクライアントには、KDEとPopplerが含まれます。

引用する

  1. ルート図ユーザー。私たちは通常ソースコードでビルドします。実際、すべての更新。
  2. UbuntuEasyCompilingHOWTO

関連情報