Ubuntu 20.04环境下运行Shopify-CLI(Ruby Gem)出现uninitialized constant Encoding::UTF_8 (NameError)错误求助
解决Shopify CLI报错
uninitialized constant Encoding::UTF_8的问题 我之前在Ubuntu 20.04上用Snap安装Ruby后,也碰到过这个一模一样的编码常量未初始化的问题!Snap的Ruby包因为做了系统隔离,会导致Ruby的核心编码模块无法正常加载,进而影响依赖它的Shopify CLI运行。下面是我亲测有效的解决步骤:
方案一:替换Ruby安装方式(推荐,彻底解决)
Snap安装的Ruby环境限制太多,换成rbenv或者rvm这类Ruby版本管理器能避免大部分环境问题:
卸载Snap版Ruby
sudo snap remove ruby安装rbenv及依赖
先安装编译Ruby需要的系统依赖:sudo apt update && sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libncurses5-dev libffi-dev libgdbm-dev然后安装rbenv:
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash配置rbenv到Shell环境
把rbenv加入你的bash配置(如果用zsh就修改~/.zshrc):echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc安装并设置Ruby 3.0.2
rbenv install 3.0.2 rbenv global 3.0.2验证Ruby版本和编码模块是否正常:
ruby -v # 应该输出ruby 3.0.2p107 ruby -e "puts Encoding::UTF_8" # 正常输出UTF-8就说明编码模块没问题了重新安装Shopify CLI
gem install shopify-cli现在再运行
shopify version,应该就能正常工作了。
方案二:临时修复(仅应急用)
如果暂时不想换Ruby安装方式,可以尝试临时设置Ruby的编码环境变量:
export RUBYOPT="-E UTF-8" shopify version
不过这个方法只是临时生效,重启终端后需要重新设置,还是推荐方案一彻底解决。
内容的提问来源于stack exchange,提问作者Mike Farley
相关产品推荐
相关产品推荐

