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 unzip
Tarは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をコンパイルできません。
- ソースターボールはありません。
- クロスメイク(CMake)つまり、標準のLinuxビルドプロセスを使用しない独立したビルドシステムです。これを使用するクライアントには、KDEとPopplerが含まれます。
引用する
- ルート図ユーザー。私たちは通常ソースコードでビルドします。実際、すべての更新。
- UbuntuEasyCompilingHOWTO