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문서. 우분투 방식의 경우 이것을 추가하십시오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다음 두 가지 이유로 DNSCrypt를 컴파일할 수 없습니다.

  1. 소스 타르볼이 없습니다.
  2. 크로스메이크(CMake)즉, 표준 Linux 빌드 프로세스를 사용하지 않는 독립적인 빌드 시스템입니다. 이를 사용하는 클라이언트에는 KDE 및 Poppler가 포함됩니다.

인용하다

  1. 루트 다이어그램사용자. 우리는 일반적으로 소스 코드로 빌드합니다. 사실, 모든 업데이트.
  2. 우분투EasyCompilingHOWTO

관련 정보