我知道我的問題可能聽起來很愚蠢,但過去兩天我一直在努力解決一些問題。
我在 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不在乎關於 $somecommand 或 $SOMECOMMAND 等變數。只有當您實際鍵入$OPENSSL
而不是 時,它才會使用環境變數openssl
。例如:
# ASDF=/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl
# $ASDF version
OpenSSL 1.1.0
(有些程式確實關心 - 例如,經常編寫 Makefile 和“./configure”腳本來尋找像 $PYTHON 這樣的變數 - 但這不是一般情況。)
一個環境變數可以你的情況的幫助是$路徑,其中包含用於搜尋命令的目錄列表。如果將包含「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