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문서. 우분투 방식의 경우 이것을 추가하십시오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
다음 두 가지 이유로 DNSCrypt를 컴파일할 수 없습니다.
- 소스 타르볼이 없습니다.
- 크로스메이크(CMake)즉, 표준 Linux 빌드 프로세스를 사용하지 않는 독립적인 빌드 시스템입니다. 이를 사용하는 클라이언트에는 KDE 및 Poppler가 포함됩니다.
인용하다
- 루트 다이어그램사용자. 우리는 일반적으로 소스 코드로 빌드합니다. 사실, 모든 업데이트.
- 우분투EasyCompilingHOWTO