主办:Digital Ocean 上的新 Droplet
操作系统:全新安装 CentOS 7.6.1810
问题:我使用教程从源代码安装了 OpenSSL 1.1.1,但我不明白以下两行的作用。我了解 Linux 的基础知识,但我不知道如何阅读这些内容。
:~# export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
:~# echo "export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64" >> ~/.bashrc
其次,当我检查版本时,它返回 1.1.1。
:~# openssl version
:~# OpenSSL 1.1.1 11 Sep 2018
然而,当我查看已安装的内容时,它仍然显示旧的 OpenSSL 1.0.2k。
:~# yum list installed | grep openssl
openssl.x86_64 1:1.0.2k-16.el7_6.1 installed
openssl-devel.x86_64 1:1.0.2k-16.el7_6.1 @updates
openssl-libs.x86_64 1:1.0.2k-16.el7_6.1 installed
我的感觉是,前两行与这个问题有某种联系,但我无法理解。我讨厌在不了解发生了什么的情况下机械地做某事。
答案1
ld.so(8) 手册页解释道:
LD_LIBRARY_PATH
A list of directories in which to search for ELF libraries at
execution time. The items in the list are separated by either
colons or semicolons, and there is no support for escaping
either separator.
This variable is ignored in secure-execution mode.
通过在您的环境中设置此项,您运行的程序将首先在这些目录中搜索共享库。看来您的教程作者打算用您本地安装的 OpenSSL 版本覆盖系统 OpenSSL 软件包。