Intereting Posts
Представить флаги USE при появлении пакета в gentoo Bash: Float to Integer попытка поместить динамические входные данные в переменную с помощью метода cat Восстановить окно GUI после минимизации в ratpoison Почему команда «w» сообщает о некорректном количестве зарегистрированных пользователей? Происхождение записи / etc / termcap linux Использовать символическую ссылку для перенаправления? Не удалось установить erlang `listpw` Опция по умолчанию не работает с sudo 1.8.24 Сценарий оболочки для резервного копирования VMware VM, экспорт каждой виртуальной машины в список, а затем запрос пользователя на ввод Как перекомпилировать 2 миллиона файлов gzip, не сохраняя их дважды? Не удается просмотреть список разделов Windows в Linux печать и не выполнение результата расширения истории zsh при частичном поиске Убивать процесс, когда ПИД постоянно меняется Как проверить, соответствуют ли файлы, установленные пакетом, оригиналам?

Как создать плагины dnscrypt?

Я попытался создать плагин для DNSCrypt, но он продолжает говорить мне, что ему нужны другие файлы.

Мне нужно знать, как я могу его построить, и я никогда не собирал пакет с нуля. Я всегда мог использовать репозиторий.

Я использую Ubuntu 14.04 (64 бит) с gcc на CodeAnywhere

Вот ссылка на плагин: плагин GeoIP

Вот ссылка на dnscrypt: DNSCrypt

Вот что я получаю, когда пытаюсь скомпилировать:

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.co /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.co] Error 1 make[1]: *** [CMakeFiles/geoip-block.dir/all] Error 2 make: *** [all] Error 2 

Если вам нужна дополнительная информация, я добавлю ее как можно скорее.


Конструкция Dnscrypt была в порядке, но я все равно получаю http://pastebin.com/MeU4Q24W

Обновить

Похоже, что тердон добавил и обновил некоторые команды в рамках праздника Благодарения. Они добавляют дополнительную и / или необходимую функциональность. Я хочу поблагодарить его за их добавление.

задача

Сначала начнем с чистого листа.

 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 

Затем, если вам нужен пакет в Source Control, нам нужно добавить дополнительные инструменты. DNScrypt не нуждается в этом, но в случае, если вы когда-нибудь снова создадите элемент из источника:

 sudo apt-get install cvs subversion git-core mercurial 

Вы должны находиться в своем домашнем каталоге, так что теперь нам нужен фактический исходный архив для dnscrypt-proxy:

  • Загрузите libsodium (если у вас его нет)

     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 .. 
  • Загрузите geoip 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 .. 
  • Загрузите ldns (если у вас его нет)

     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 .. 
  • Загрузите файл tar.bz2 DNSCrypt-Proxy Version 1.4.1 . Для Ubuntu Way добавьте этот DNSCrypt-PPA. Обратите внимание, что этот PPA датирован (самая последняя версия – 1.4.0 для 13.10), поэтому мы будем устанавливать из источника

     tar -xvjpf dnscrypt-proxy-1.4.1.tar.bz2 && cd dnscrypt-proxy-1.4.1 ./configure && make && sudo make install 
    • Поскольку мы удалили плагин, нам нужно повторно загрузить Zip-файл из GitHub Repo . Создаваемый нами каталог будет называться master

      sudo apt-get install zip unzip Tar не будет извлекать молнии, поэтому нам нужны новые инструменты. Возможно, у вас уже есть эти.

      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 

Почему возникает ваша ошибка

Файл заголовка для plugin.h устанавливается только в /usr/include/dnscrypt после того, как вы /usr/include/dnscrypt скомпилируете DNSCrypt. Вы не смогли скомпилировать DNSCrypt для двух причин:

  1. У вас не было исходного архива.
  2. Cross-Make или CMake для краткости – это независимая система Build, которая не использует стандартный процесс сборки Linux. Клиенты, которые его используют, включают KDE и Poppler.

Рекомендации

  1. Пользователь Gentoo . Мы строим из Source регулярно. На самом деле все обновления.
  2. Ubuntu EasyCompilingHOWTO