zsh环境下conda非base环境无法修改HOST环境变量如何解决
问题原因
这个问题是zsh和bash的变量逻辑差异导致的:zsh默认把HOST设为只读的内置特殊变量,不允许用户修改;而bash里的HOST是普通环境变量,可以随便改,所以你切到bash之后操作就正常了。
你激活conda的非base环境时,conda会自动把HOST赋值为当前环境的目标架构字符串,触发zsh的只读限制,之后你不管是直接赋值还是加export都改不动。
解决方案
方案1:临时生效(优先推荐,不改动全局配置)
不用改任何配置,你要执行需要适配HOST的命令时,在命令前面临时加变量声明就行,这个声明只对当前这条命令生效:
HOST=bar 你的目标命令
举个例子,如果你要跑的命令是make,直接执行:
HOST=bar make
就能满足适配要求。
方案2:永久取消HOST只读限制(可能影响其他依赖HOST的脚本,谨慎使用)
打开你的~/.zshrc文件,在**最顶部(一定要放在conda初始化代码的前面)**加一行:
typeset +r HOST
保存之后重启终端,或者执行source ~/.zshrc让配置生效,之后你在任何conda环境都可以正常修改HOST变量。
内容的提问来源于stack exchange,提问作者Thaiminhpv
相关产品推荐
相关产品推荐

