我知道我的问题可能听起来很愚蠢,但过去两天我一直在努力解决一个问题。
我在 Ubuntu 服务器上安装了几个版本的 OpenSSL。
所需的一个位于/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl
我想要做的是,当我输入openssl
几乎任何目录时,它都会转到最新版本并分别执行 openssl 命令。
我该怎么做?我尝试设置一个名为的环境变量,openssl
但没有成功。
export OPENSSL=/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl
输出echo $OPENSSL
/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl
没有运气意味着每当我输入openssl
我明白了
The program 'openssl' is currently not installed. You can install it by typing:
apt-get install openssl
我知道这与 usr/openssl 配置有关。但我不记得上次是怎么做的 :(
请帮忙
提前致谢。
答案1
环境变量的工作方式并非如此。运行 时somecommand
,shell不在乎$OPENSSL
关于 $somecommand 或 $SOMECOMMAND 之类的变量。只有当您实际输入而不是 时,它才会使用环境变量openssl
。例如:
# ASDF=/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl
# $ASDF version
OpenSSL 1.1.0
(有些程序确实关心这一点 - 例如,Makefile 和“。/configure”脚本经常被编写来查找像 $PYTHON 这样的变量 - 但这不是一般情况。)
一个环境变量可以对你有帮助的是$PATH,其中包含要搜索命令的目录列表。如果将包含“openssl”的目录放在当前 $PATH 值前面,则运行openssl
将始终首先查找该目录:
PATH="/opt/cprocsp/cp-openssl-1.1.0/bin/amd64:$PATH"
例如:
# which openssl
/usr/bin/openssl
# export PATH="/opt/cprocsp/cp-openssl-1.1.0/bin/amd64:$PATH"
# which openssl
/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl