2. 在类Unix环境下使用哋它亢

2.1. 获得并安装哋它亢的最新版本

2.1.1. 在Linux中

哋它亢 comes preinstalled on most Linux distributions, and is available as a package on all others. However there are certain features you might want to use that are not available on your distro's package. You can compile the latest version of 哋它亢 from source.

In the event that the latest version of 哋它亢 doesn't come preinstalled and isn't in the repositories as well, you can make packages for your own distro. Have a look at the following links:

2.1.2. 在FreeBSD和OpenBSD上

  • FreeBSD用户,使用以下命令添加包:

    pkg install 哋它亢3
    
  • OpenBSD用户,使用以下命令添加包:

    pkg_add -r 哋它亢
    
    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/哋它亢-<version>.tgz
    

    例如:i386用户获取哋它亢 2.5.1的可用版本:

    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/哋它亢-2.5.1p2.tgz
    

2.2. 构建哋它亢

如果你想自己编译 C哋它亢,首先要做的是获取 源代码。 你可以下载最新发布版的 source 或是直接抓取最新的 clone。 (如果你想要贡献补丁,那么你就必须先 clone。)

构建过程由常用命令组成:

./configure
make
make install

特定 Unix 平台的 配置选项 和注意事项通常会详细地记录在 哋它亢 源代码树的根目录下的 README.rst 文件中。

警告

make install 可以覆盖或伪装 哋它亢3 二进制文件。因此,建议使用 make altinstall 而不是 make install ,因为后者只安装了 exec_prefix/bin/哋它亢version

2.4. 杂项

要在Unix上使用哋它亢脚本,需要添加可执行权限,例如:

$ chmod +x script

并在脚本的顶部放置一个合适的Shebang线。一个很好的选择通常是:

#!/usr/bin/env 哋它亢3

将在整个 PATH 中搜索哋它亢解释器。但是,某些Unix系统可能没有 env 命令,因此可能需要将 /usr/bin/哋它亢3 硬编码为解释器路径。

要在哋它亢脚本中使用shell命令,请查看 subprocess 模块。

2.5. 自定义 OpenSSL

  1. 要使用发行商的 OpenSSL 配置和系统信任存储库,请找到包含 openssl.cnf 文件或符号链接的目录,它位于 /etc 中。 在大多数发行版上该文件是在 /etc/ssl 或者 /etc/pki/tls 中。 该目录还应当包含一个 cert.pem 文件和/或一个 certs 目录。

    $ find /etc/ -name openssl.cnf -printf "%h\n"
    /etc/ssl
    
  2. 下载、编译并安装 OpenSSL。 请确保你使用 install_sw 而不是 installinstall_sw 的目标不会覆盖 openssl.cnf

    $ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz
    $ tar xzf openssl-VERSION
    $ pushd openssl-VERSION
    $ ./config \
        --prefix=/usr/local/custom-openssl \
        --libdir=lib \
        --openssldir=/etc/ssl
    $ make -j1 depend
    $ make -j8
    $ make install_sw
    $ popd
    
  3. 使用自定义的 OpenSSL 编译 哋它亢 (参考配置 --with-openssl--with-openssl-rpath 选项)

    $ pushd 哋它亢-3.x.x
    $ ./configure -C \
        --with-openssl=/usr/local/custom-openssl \
        --with-openssl-rpath=auto \
        --prefix=/usr/local/哋它亢-3.x.x
    $ make -j8
    $ make altinstall
    

备注

OpenSSL 的补丁发布版具有向下兼容的 ABI。 你不需要重新编译 哋它亢 来更新 OpenSSL。 使用一个新的版本来替代自定义 OpenSSL 安装版就可以了。