如何禁用 devtoolset-8?

How to disable devtoolset-8?

我有一个 bash 脚本来执行命令

scl enable devtoolset-8 'echo -e "%__ld $(which ld)\n%__nm $(which nm)\n%__objcopy $(which objcopy)\n%__objdump $(which objdump)\n%__strip $(which strip)"'

组装完成后,我需要“关闭”gcc-8。

如何通过 bash 执行此操作?

您不需要在上述命令后“关闭”任何东西,它所做的只是打印主要 devtoolset 可执行文件的路径,例如

%__ld /opt/rh/devtoolset-8/root/usr/bin/ld
%__nm /opt/rh/devtoolset-8/root/usr/bin/nm
%__objcopy /opt/rh/devtoolset-8/root/usr/bin/objcopy
%__objdump /opt/rh/devtoolset-8/root/usr/bin/objdump
%__strip /opt/rh/devtoolset-8/root/usr/bin/strip

当您 运行 一个最常用的 scl enable devtoolset-8 bash 命令时,它会调用一个新的 bash 实例,您在 $PATH 环境变量中有一个额外的路径,使所有开发工具现在 运行 来自新位置:

[user@hostname ~]$ echo $PATH
/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
[user@hostname ~]$ scl enable devtoolset-8 bash
[user@hostname ~]$ echo $PATH
/opt/rh/devtoolset-8/root/usr/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
[user@hostname ~]$

“关闭”devtoolset 所需要做的就是退出此 bash 实例:

[user@hostname ~]$ exit
exit
[user@hostname ~]$ echo $PATH
/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
[user@hostname ~]$