bash - 如何禁用 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 ~]$
推荐阅读
- kotlin - 如何在 Koin 中提供基类?
- postgresql - 当我不知道其名称时更改默认顺序
- git - 在子模块中使用 .gitattributes 作为合并策略
- sql-server - 循环/更新结果,直到列的总和(bigint)小于指定的数字
- javascript - 如果我在 jquery 绑定中更改,为什么 html 表的顺序不会改变?
- ios - 播放视频时如何自动跳过 youtube iOS 应用中的广告?
- if-statement - 检测到 ArrayFormula 循环依赖
- java - 如何在垂直滚动视图上使用浮动按钮?
- linux - 如何在 stderr 中忽略警告
- sql - 如何根据期间复制数据记录?