我在 Debian Lenny (armv4 架构) 上从 [源代码][1] 编译了 OpenSSL-1.0.1e。我按照http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssl.html编译源代码。make
,make test
,make install
已成功完成。但是,OpenSSL 显示我仍有旧版本
OpenSSL> version
OpenSSL 0.9.8g 19 Oct 2007
我该如何更新 OpenSSL?我需要用/usr/bin
新编译的二进制文件替换旧的openssl
二进制文件吗?
编辑:make test
输出:所有测试均成功。
make[1]: Leaving directory `/home/openssl-1.0.1e/test'
OPENSSL_CONF=apps/openssl.cnf util/opensslwrap.sh version -a
OpenSSL 1.0.1e 11 Feb 2013
built on: Mon Jun 10 05:08:05 UTC 2013
platform: dist
options: bn(32,32) rc4(ptr,int) des(idx,cisc,2,long) idea(int) blowfish(idx)
compiler: cc -O
OPENSSLDIR: "/usr/local/ssl"
make install
输出:
make[1]: Leaving directory `/home/openssl-1.0.1e/engines'
making install in apps...
make[1]: Entering directory `/home/openssl-1.0.1e/apps'
installing openssl
installing CA.sh
installing CA.pl
installing tsget
make[1]: Leaving directory `/home/openssl-1.0.1e/apps'
making install in test...
make[1]: Entering directory `/home/openssl-1.0.1e/test'
make[1]: Nothing to be done for `install'.
make[1]: Leaving directory `/home/openssl-1.0.1e/test'
making install in tools...
make[1]: Entering directory `/home/openssl-1.0.1e/tools'
make[1]: Leaving directory `/home/openssl-1.0.1e/tools'
installing libcrypto.a
installing libssl.a
cp libcrypto.pc /usr/local/ssl/lib/pkgconfig
chmod 644 /usr/local/ssl/lib/pkgconfig/libcrypto.pc
cp libssl.pc /usr/local/ssl/lib/pkgconfig
chmod 644 /usr/local/ssl/lib/pkgconfig/libssl.pc
cp openssl.pc /usr/local/ssl/lib/pkgconfig
chmod 644 /usr/local/ssl/lib/pkgconfig/openssl.pc
---------------------------------------------------------------------
编辑2:我已经apt-get --purge remove openssl
删除了旧版本。openssl
在终端输出上执行-bash: /usr/bin/openssl: No such file or directory
。如果我执行,/usr/local/ssl/bin/openssl
那么它会使用正确的版本运行 openssl。
我不确定要将哪些文件链接到哪里?我还是一个试图学习 Linux 的新手。由于设备处理器存在一些问题,我使用的设备不支持 squeeze 或 Wheezy,因此我必须手动编译它。我相信如果您能回答以下两个问题,问题就会解决:
/usr/local/ssl/bin/openssl
1) 如果我复制到会起作用吗/usr/bin/openssl
?但是,这会引起任何问题吗?还是我还需要将 `/usr/local/ssl/* 上的文件移动到其他地方?
或者 2) 我在文档中读到:
This will build and install OpenSSL in the default location, which is (for
historical reasons) /usr/local/ssl. If you want to install it anywhere else,
run config like this:
$ ./config --prefix=/usr/local --openssldir=/usr/local/openssl
您能告诉我我需要为 Debian 定义哪些目录(用于 --prefix 和 openssldir)吗?然后我可以再次编译源代码。我以前使用过:
./config --prefix=/usr \
--openssldir=/etc/ssl \
shared \
linux-armv4 \
zlib-dynamic
答案1
OpenSSL 通常被视为核心软件包,因为它被许多其他软件包用来提供安全功能,除非您对潜在后果有特别好的了解,否则我建议不要手动滚动核心软件包。如果您确实手动滚动它,我建议在提供的软件包上安装,而不是将其安装到/usr/local
您的用户主目录中,并编译您需要的需要更新库的任何内容,在哪里可以找到它作为其构建过程的一部分 - 这样您就不会破坏依赖于 openssl 的其他二进制包。如果您手动滚动 openssl,则每次发布更新时都需要重建它(并且可能还需要根据更改每次重建其他依赖包)。
是否可以将 Debian 安装更新到最新的稳定版本?默认情况下,它包含 v1.0.1e(请参阅http://packages.debian.org/search?suite=wheezy&searchon=names&keywords=openssl),这意味着您无需付出额外努力即可获得未来的更新。