お世話にになっております。
掲題の問題を解決したく、質問させていただきました。
###発生している問題・エラーメッセージ
業務でruby2.3.0を使用しております。
とあるgemをインストールしようとgemを実行しましたが、以下のようにエラーが発生し、失敗してしまいました。
↓bundlerで実施した例。他のgemでも同じようにエラーが出ます。
gem install bundler /Users/username/.rbenv/versions/2.3.0/lib/ruby/2.3.0/psych.rb:377: warning: failed to load encoding (UTF-16BE); use ASCII-8BIT instead ERROR: Loading command: install (LoadError) failed to load encoding (Windows-31J) ERROR: While executing gem ... (NoMethodError) undefined method `invoke_with_build_args' for nil:NilClass
その後、gem uninstall
gem list
gem search
などのコマンドを実行しましたが、全て上記のような状態になってしまいました。
また、rakeタスク(railsからunicorn起動)を実行した時も同じエラーが出ましたが、こちらは表示される文字コードが異なっています。
bundle exec rake unicorn:start /Users/username/.rbenv/versions/2.3.0/lib/ruby/2.3.0/x86_64-darwin15/json/ext/parser.bundle: warning: failed to load encoding (utf-16be); use ASCII-8BIT instead /Users/username/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/sass-3.5.1/lib/sass/util.rb:712: warning: failed to load encoding (UTF-16BE); use ASCII-8BIT instead rake aborted! Bundler::GemRequireError: There was an error while trying to load the gem 'sass-rails'. Gem Load Error is: code converter not found (UTF-8 to ASCII-8BIT)
###該当のソースコード
↑のunicornを起動するスクリプトを参考情報として以下に記載します。以下記事から拝借したものです。
https://qiita.com/Salinger/items/5350b23f8b4e0dcdbe23#unicorn-%E3%81%AE%E8%A8%AD%E5%AE%9A
ruby
1worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3) 2timeout 15 3preload_app true 4 5listen '/tmp/unicorn.sock' 6pid '/tmp/unicorn.pid' 7 8before_fork do |server, worker| 9 Signal.trap 'TERM' do 10 puts 'Unicorn master intercepting TERM and sending myself QUIT instead' 11 Process.kill 'QUIT', Process.pid 12 end 13 14 defined?(ActiveRecord::Base) and 15 ActiveRecord::Base.connection.disconnect! 16end 17 18after_fork do |server, worker| 19 Signal.trap 'TERM' do 20 puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT' 21 end 22 23 defined?(ActiveRecord::Base) and 24 ActiveRecord::Base.establish_connection 25end 26 27stderr_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT']) 28stdout_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT'])
###試したこと
- エラーメッセージで検索しましたが、有力な情報にはたどり着けませんでした。
色々調べた結果、下記が自分の症状に1番類似している状態でしたが、解答者が提示されているruby-enc-extra
が見つからない状態です。
https://github.com/openwrt/packages/issues/3454
- 試しにrubyバージョンを2.4.0に変更し、上記コマンドを実行した結果は以下のようになりました。2.3.0のときとは差異がありました。(ただ、業務で使用する2.3.0でエラーを解消する方向で対応したいです。)
gem list bundler ERROR: Loading command: list (LoadError) cannot load such file -- io/wait ERROR: While executing gem ... (NoMethodError) undefined method `invoke_with_build_args' for nil:NilClass
###補足情報(言語/FW/ツール等のバージョンなど)
各バージョンは以下の通りとなります。gemのバージョン確認時は上記エラーが表示されながらバージョン名が出力されました。
ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15] rails -v Rails 4.2.9 rbenv --version rbenv 1.1.1 gem -v /Users/username/.rbenv/versions/2.3.0/lib/ruby/2.3.0/psych.rb:377: warning: failed to load encoding (UTF-16BE); use ASCII-8BIT instead 2.6.13 # MacOSはSierra、シェルの使用言語は`ja_JP.UTF-8`です。 sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G17023 env | grep LANG LANG=ja_JP.UTF-8
また、rubyの文字コードはUTF-8でなんらか変更はしていないです。
irb irb(main):001:0> s="あいうえお" => "あいうえお" irb(main):002:0> p s.encoding #<Encoding:UTF-8> => #<Encoding:UTF-8>
色々調べてもなかなか有力な情報が出てこず、こちらで質問させていただきました。
ぜひお力をお貸しいただけますでしょうか。何卒よろしくお願い致します。
あなたの回答
tips
プレビュー