如何编译和安装 DNScrypt

如何编译和安装 DNScrypt

显然没有可用于安装 DNScrypt 的 .deb 软件包。因此我被迫进行编译和安装。

我从这里下载了包http://download.dnscrypt.org/dnscrypt-proxy/

按照这里的说明进行操作http://dnscrypt.org/

解压后,我使用 cd 进入目录,./configure然后输入时make得到:

No targets specified and no make file found.

发生了什么事?如何安装 dnscrypt?

答案1

我敢打赌你忘了 libsodium 库:

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

引用安装指南:

安装 libsodium。您的操作系统可能已经有一个预先构建的二进制包。

不幸的是,Ubuntu 没有 libsodium 软件包。因此,您应该libsodium按如下方式下载、构建和安装:

  1. 从以下位置下载较新的 tar 档案https://download.libsodium.org/libsodium/releases/(你也可以从https://github.com/jedisct1/libsodium)。如果您下载了 tar.gz 文件,你应该验证哈希值

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

    我们可以看到,两者都是完全相同的。您也可以使用该.sig文件。

  2. 遵循以下仪式:

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

    您应该考虑将软件包 debian 化,以便以后更轻松地卸载/更新。有很多关于此的指南。

  3. 安装完成后,您必须重新加载/重建 GNU 链接器。简单操作sudo ldconfig就够了。

  4. 现在运行./configure它应该会生成 makefile。(我假设你至少build-essentials安装了包)。

    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
    

    这些是的结束语./configure

请记住密切关注这两个软件包的更新和错误,因为可能存在漏洞这个问题需要费力才能解决。

答案2

其实,问题在于 dnscrypt.org 上的说明是错误的。在执行 ./configure 之前,您必须执行 ./autogen.sh。

  1. ./autogen.sh
  2. ./configure.sh(如上所示安装 libsodium。提示sudo apt-get install checkinstall:)
  3. make
  4. sudo checkinstall

答案3

对于以后遇到类似错误的人,可能是因为你没有libsodium-dev安装。安装后就可以dnscrypt成功编译。当然,更简单的方法是使用脚本dnscrypt-autoinstall

相关内容