Apparently there are no .deb packages available for installing DNScrypt. So I am forced to compile and install.

I downloaded the package from here http://download.dnscrypt.org/dnscrypt-proxy/

followed the instructions from here http://dnscrypt.org/

after extracting, I cd into directory, ./configure and then when I type make I get:

No targets specified and no make file found.

What is going on? How do I get dnscrypt installed?


I bet you forgot a the libsodium library:

checking for library containing sodium_init... no
configure: error: libsodium not found

Quoting installation guide:

Install libsodium. There might be a pre-built binary package for your operating system already.

Unfortunally, there are not libsodium packages for Ubuntu. So, you should download, build and install libsodium as follows:

  1. Download the newer tar archive from https://download.libsodium.org/libsodium/releases/ (you can also get the git repository from https://github.com/jedisct1/libsodium). If you downloaded the tar.gz file, you should verify the hashsum:

    $ dig +dnssec +short txt libsodium-0.4.2.tar.gz.download.libsodium.org
    $ shasum -a 256 libsodium-0.4.2.tar.gz
    1a7901cdd127471724e854a8eb478247dc0ca67be549345c75fc6f2d4e05ed39  libsodium-0.4.2.tar.gz

    As we can see, both are identical. You can also use the .sig file.

  2. Follow the ritual:

    tar xzf libsodium-0.4.2.tar.gz
    cd libsodium-0.4.2/
    make && make check && sudo make install

    You should consider debianize the package so it's more easy for you to uninstall/update later. There are plenty guides about this.

  3. Once you have installed you have to reload/rebuild the GNU linkers. A simple sudo ldconfig is enough.

  4. Now run ./configure and it should generate the makefile. (I'm assuming you have at least build-essentials package installed).

    checking for library containing sodium_init... -lsodium
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating config.h
    config.status: executing depfiles commands
    config.status: executing libtool commands

    Those are the ending lines of the ./configure.

Remember to keep a keen eye on the updates and bugs for both packages, since there might be vulnerabilities that shall be fixed with hassle.

| improve this answer | |

Actually, the problem is that the instruction on dnscrypt.org are actually wrong. Prior to doing ./configure you have to do ./autogen.sh.

  1. ./autogen.sh
  2. ./configure.sh (with libsodium installed as above. Hint: sudo apt-get install checkinstall)
  3. make
  4. sudo checkinstall
| improve this answer | |
  • just to note - this one is important addition – silpol Feb 29 '16 at 0:37

For anyone receiving a similar error in the future, it could be the case that you do not have libsodium-dev installed. Installing it will allow dnscrypt to compile successfully. Of course, the easier route is to use the dnscrypt-autoinstall script.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.