使用sudo执行helm servecm时提示命令选项不存在的问题
解决sudo下helm找不到servecm插件的问题
问题原因
普通用户安装的helm插件默认存放在~/.local/share/helm/plugins目录,而sudo执行命令时会切换到root用户环境,helm会读取root用户的插件目录(默认是/root/.local/share/helm/plugins),所以找不到你在普通用户下安装的servecm插件。
解决方案
方案1:sudo时指定HELM_PLUGINS环境变量
直接在sudo命令中传入普通用户的插件路径,让helm能找到servecm插件:
sudo HELM_PLUGINS=$HOME/.local/share/helm/plugins helm servecm
如果你的shell已经设置了HELM_PLUGINS环境变量(可以用echo $HELM_PLUGINS确认),也可以用-E参数让sudo继承普通用户的环境变量:
sudo -E helm servecm
注:如果没设置过HELM_PLUGINS,可以先在普通用户的.bashrc或.zshrc中添加export HELM_PLUGINS=~/.local/share/helm/plugins,然后执行source ~/.bashrc(或对应shell配置文件)生效。
方案2:给root用户单独安装插件
切换到root用户,重新安装servecm插件:
sudo su helm plugin install https://github.com/jdolitsky/helm-servecm exit
之后直接用sudo helm servecm就能正常执行。
方案3:创建符号链接共享插件
将普通用户的servecm插件目录链接到root的helm插件目录:
sudo ln -s ~/.local/share/helm/plugins/helm-servecm /root/.local/share/helm/plugins/
这样root用户的helm就能识别到这个插件,无需重复安装。
内容的提问来源于stack exchange,提问作者Francisco
相关产品推荐
相关产品推荐

