将 WSL 18.04 LTS 的 openssl 更新至 1.1.1g 后,/usr/local/ssl/bin 路径未附加到用户帐户的 $PATH

将 WSL 18.04 LTS 的 openssl 更新至 1.1.1g 后,/usr/local/ssl/bin 路径未附加到用户帐户的 $PATH

抱歉,这篇文章太长了,但这些是我遵循的步骤,并在另一台 WSL 18.04 安装(Windows 版本 1903)上复制了该问题。

环境

主机:Windows 10 版本 1909

WSL:

pacal683@PC-0079241: $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic

程序:

遵循以下步骤: 如何在 Linux 上从源代码安装最新的 OpenSSL 版本 除了替代的 openssl-1.1.1g。

观察结果:

升级完成后,用户(pacal683)已配置完整路径,可以正常操作。注销后,再次打开 bash 终端,结果路径不完整,即命令/usr/bin/which失败:

pacal683@PC-0079241:~$ which openssl
pacal683@PC-0079241:~$

如果sudo su -要提升权限,该命令有效:

root@PC-0079241:~# which openssl
/usr/local/ssl/bin/openssl
root@PC-0079241:~# 
[Text](https://stackoverflow.com)

并且,当 root 时,su - pacal683可以工作:

root@PC-0079241:~# su - pacal683
pacal683@PC-0079241:~$ which openssl
/usr/local/ssl/bin/openssl

在用户提示下(没有正确的路径),采购/etc/environment工作:

pacal683@PC-0079241:~$ source /etc/environment
pacal683@PC-0079241:~$ which openssl
/usr/local/ssl/bin/openssl

结论:

我想到了一些解决方案,并且有效。我希望该解决方案适用于所有用户:

  1. 修改 pacal683 的个人~/.bashrc来源/etc/environment(不是系统范围的)
  2. 添加代码到/etc/profile.d/apps-bin-path.sh

    # Expand $PATH to include the directory where new openssl path is located:
    openssl_bin_path="/usr/local/ssl/bin"
    if [ -n "${PATH##*${openssl_bin_path}}" -a -n "${PATH##*${openssl_bin_path}:*}" ]; then
        export PATH=$PATH:${openssl_bin_path}
    fi
    ##EOF
    
  3. 修改正确的系统文件,以使任何创建 WSL 环境的用户都能像在完整的 18.04 LTS 系统上一样继续操作。

我更喜欢#3,谁知道纠正此问题的正确位置,并可能将其推送到 WSL 发行版?

相关内容