Eu sei que minha pergunta pode parecer estúpida, mas há algum problema contra o qual tenho lutado nos últimos 2 dias.
Tenho algumas versões do OpenSSL instaladas no servidor Ubuntu.
Aquele que é desejado está localizado em/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl
O que eu quero fazer é quando digito openssl
praticamente qualquer diretório, ele vai para a versão mais recente e executa comandos openssl respectivamente.
Como faço isso? Tentei apenas definir uma variável de ambiente chamada, openssl
mas sem sorte.
export OPENSSL=/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl
Saída deecho $OPENSSL
/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl
Sem sorte significa sempre que eu digitoopenssl
eu recebo
The program 'openssl' is currently not installed. You can install it by typing:
apt-get install openssl
Eu sei que tem algo a ver com configurações usr/openssl. Mas não me lembro como fiz isso da última vez :(
Por favor ajude
Desde já, obrigado.
Responder1
Não é assim que as variáveis de ambiente funcionam. Quando você executa somecommand
, o shellnão se importasobre variáveis como $somecommand ou $SOMECOMMAND. Ele usaria a variável de ambiente somente se você realmente digitasse $OPENSSL
em vez de openssl
. Por exemplo:
# ASDF=/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl
# $ASDF version
OpenSSL 1.1.0
(Alguns programas se importam – por exemplo, scripts Makefiles e “./configure” são frequentemente escritos para procurar variáveis como $PYTHON – mas esse não é o caso geral.)
A única variável de ambiente quepoderiaajuda no seu caso é$PATH, que contém uma lista de diretórios para procurar comandos. Se você colocar o diretório que contém 'openssl' na frente do valor $PATH atual, a execução openssl
sempre procurará primeiro nesse diretório:
PATH="/opt/cprocsp/cp-openssl-1.1.0/bin/amd64:$PATH"
Por exemplo:
# 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