"控制字符不允许在第1行第1列(Psych :: SyntaxError)"在gem安装或捆绑安装期间

时间:2015-04-13 15:12:33

标签: ruby-on-rails gem bundler

当尝试使用bundle install安装Rails gems时,我一直收到错误"第1行第1列和第34行不允许使用控制字符。当捆绑者试图gem install某些宝石时,如Nokogiri。

$ gem install nokogiri -v 1.6.6.2
Fetching: mini_portile-0.6.2.gem (100%)
Successfully installed mini_portile-0.6.2
Fetching: nokogiri-1.6.6.2.gem (100%)
ERROR:  Error installing nokogiri:
    invalid gem: package is corrupt, exception while verifying: (<unknown>): control characters are not allowed at line 1 column 1 (Psych::SyntaxError) in /var/www/.rvm/gems/ext-rbx-2.5.2@rails2/cache/nokogiri-1.6.6.2.gem

以下是一些类似的问题:

cap deploy:migrations: Error: control characters are not allowed at line 1 column 1 (Psych::SyntaxError)

(我认为我的问题不是重复,因为在这种情况下使用bundle install时发生了错误,而在上面的情况下,它发生在使用capistrano部署时,但我承认这个问题非常相似。)

Why am I getting a Psych error when trying to deploy with capistrano?

psych.rb error when deploying with Capistrano 'mapping not allowed in this context'

1 个答案:

答案 0 :(得分:0)

我的解决方案是在bundle install

之前执行此操作
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

来自sergiocampama:https://github.com/mperham/sidekiq/issues/929#issuecomment-17964326

将其添加到您的~/.bashrc~/.bash_profile以防止此问题。

免责声明:我还没有调查这些变量的作用,我也不知道它们是否适合所有人,例如非英语环境。